Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
PHP

Klasa SqlUtil

php

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
8 odpowiedzi w tym temacie

#1 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 17.03.2012 17:27

Cześć, przedstawiam wam klasę, której zadaniem jest ułatwienie pracy na bazach danych w php. Dopiero się uczę, więc proszę o wyrozumiałość.

Oto klasa:
Spoiler


Metoda Connect

Opis:

Łączy z bazą danych.


Argument 1:

Host bazy danych, z którą chcemy się połączyć.

Argument 2:

Login do użytkownika MySQL.

Argument 3:

Hasło do użytkownika MySQL.

Argument 4:

Nazwa bazdy danych, z którą zamierzamy się połączyć.


Metoda Disconnect

Opis:

Zrywa połączenie z bazą danych.


Metoda Select

Opis:

Wykonuje zapytanie służace do odczytu danych (SELECT).


Argument 1:

Nazwy pól, których wartości chcemy odczytać, jeżeli wszystkie to daj "*".

Argument 2:

Nazwa tabeli, z której będziemy wczytywać dane.

Argument 3 (Niewymagany):

Dodatkowa część zapytania, która zostanie dopisana po formule "SELECT * FROM x ". Stworzone, aby można było lepiej ograniczyć wczytywane dane.


Metoda Insert

Opis:

Dopisuje nowy rekord do tabeli (INSERT).


Argument 1:

Nazwa tabeli, do której dopiszemy rekord.

Argument 2:

Tablica array z nazwami pól tabeli

array(
"pistol",
"playerid"
//...
);

Argument 3:

Tablica array z wartościami pól

array(
"2322",
"Fili:P"
//...
);


Metoda Update

Opis:

Nadpisuje określone dane (UPDATE).


Argument 1:

Nazwa tabeli, w której będziemy nadpisywać dane.

Argument 2:

Tablica array z nazwą pola i wartością, która zostanie przypisana.

array(
"wartość która będzie przypisana", "nazwa pola",
"wartość która będzie przypisana", "nazwa pola"
);

Argument 3 (Niewymagany):

Dodatkowa część zapytania, która zostanie dopisana po formule "UPDATE x SET y". Stworzone, aby można było lepiej ograniczyć nadpisywane dane.


Zwraca uchwyt do


Metoda TabelInfo

Opis:

Wyświetla tabelkę z informacjami o tabeli podanej w 1. argumencie.

Argument 1:

Nazwa tabeli, o której chcemy się czegoś dowiedzieć.


Metoda MysqlInfo

Opis:

Wyświetla informację o kliencie, hoście, protokole i serwerze Mysql.


Jeżeli w tym poście wypowiadałem się w 2 lub więcej czasach to przepraszam. Mam nadzieję, że klasa komuś się przyda. Mile widziane propozycje i uzasadnione uwagi.

Pozdrawiam.
  • +
  • -
  • 0

#2 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 17.03.2012 19:58

brakuje mi fetch'ow i zliczania recordów przez COUNT'a + opis co zwracają dane metody i gdzie

jestem tez ciekawy po co ci $handle i $Connect_Handle

dodatkowo pytanie probowales stworzyc 2 obiekty klasy i polączyć sie do 2 roznych baz czy nie ma problemów ?

no i zamiast if'ow to powinna byc obsluga wyjątków xD

brakuje mi tu tez konstruktorów/destruktorów
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#3 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 17.03.2012 20:05

jestem tez ciekawy po co ci $handle i $Connect_Handle

$handle to uchwyt od mysql_query ustawiany w metodach Insert,Update i Select,
a Connect_Handle to uchwyt od mysql_connect

dodatkowo pytanie probowales stworzyc 2 obiekty klasy i polączyć sie do 2 roznych baz czy nie ma problemów ?

Tak, nie miałem z tym żadnych problemów.
  • +
  • -
  • 0

#4 ZepA***

    Zaawansowany

  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 18.03.2012 19:29

Przydatne. na pewno to wykorzystam tylko brakuje tutaj funkcji mysql_fetch_array().
Juz probowalem to zrobic ale nie udalo mi sie. Zrobisz taką funkcje?
  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#5 ZepA***

    Zaawansowany

  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 21.03.2012 16:08

Udało mi sie zrobic taka funkcje do fetcha. Jak ktos by chciał to daje.

 public function Fetch()
{
$wyniki = array();
$ilosc = mysql_num_rows($this -> Handle);
$ilosc++;
$wyniki[0] = $ilosc;
$r=1;
while($row = mysql_fetch_assoc($this -> Handle))
{
$arr_row=array();
$c=0;
while ($c < mysql_num_fields($this -> Handle))
{
$col = mysql_fetch_field($this -> Handle, $c);
$arr_row[$col -> name] = $row[$col -> name];
$c++;
}
$wyniki[$r] = $arr_row;
$r++;
}
return $wyniki;
}


Jak uzywać?
tworzymy zmienna:
$cos = $this -> Fetch();

$cos[0] to liczba wyników + 1
pozniej uzywamy to tak: $cos[1]['nazwa']...

Np w petli:
 for($i=1; $i<$cos[0]; $i++)
{
echo $cos[$i]['nazwa'];
}

  • +
  • -
  • 1

Dołączona grafika
------------------------------------
Dołączona grafika


#6 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 24.03.2012 15:54

Przecież Handle jest po to żeby obejść się bez tej funkcji
  • +
  • -
  • 0

#7 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 24.03.2012 16:22

a mozesz podac przyklad jak obejsc sie bez tej funkcji ?
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#8 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 24.03.2012 17:09


<?php
$test = new SqlUtil();
$test -> Connect(/*...*/);
$test -> Select("*", "bf2ranks");
$wyniki = array();
$ilosc = mysql_num_rows($test -> Handle);
$ilosc++;
$wyniki[0] = $ilosc;
$r=1;
while($row = mysql_fetch_assoc($test -> Handle))
{
$arr_row=array();
$c=0;
while ($c < mysql_num_fields($test -> Handle))
{
$col = mysql_fetch_field($test -> Handle, $c);
$arr_row[$col -> name] = $row[$col -> name];
$c++;
}
$wyniki[$r] = $arr_row;
$r++;
}

$test -> Disconnect();
?>

  • +
  • -
  • 0

#9 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 24.03.2012 17:45

no wlasnie a robiąc metode od tego i tablice jako pole funkcji albo nawet jako parametr/kontener na wynik to kodu jest mniej i uzycie jest prostsze xD
  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D





Również z jednym lub większą ilością słów kluczowych: php

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych