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
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
<?php
class SqlUtil
{
public $ConnectHandle="SqlUtil - Not Connected"; // uchwyt do laczenia z sql
public $dbname; // nazwa bazy danych
public $Handle; // uchwyt
public function Connect($host="localhost", $login="root", $password="", $dbnames="bf2stats")
{
/*if($this -> ConnectHandle == "SqlUtil - Not Connected")
{*/
$this -> ConnectHandle = mysql_connect($host, $login, $password);
mysql_select_db($dbnames, $this -> ConnectHandle);
$this -> dbname = $dbnames;
/*}
else
{*/
//echo "[SqlUtil] Jestes juz polaczony z Sql.";
//}
}
public function Disconnect()
{
if($this -> ConnectHandle != "SqlUtil - Not Connected")
mysql_close($this -> ConnectHandle);
}
public function Select($what="*", $from, $bonus=0)
{
$query;
if(empty($from))
{
echo "[SqlUtil] Wpisz nazwe tabeli w wywolaniu metody Select!";
exit;
}
$query = "SELECT " . $what . "FROM " . $from;
if($bonus)
$query .= " ".$bonus;
$this -> Handle = mysql_query($query) or die ("[Sqlutil] Nie moge wykonac zapytania (Method: Select): ".mysql_error());
}
public function Insert($into, $input_name, $input_value)
{
$query;
if(empty($into) || empty($input_name) || empty($input_value))
{
echo "[SqlUtil] Wpisz wszystkie argumenty w wywolaniu metodzy Insert.";
exit;
}
$query = "INSERT INTO " . $into . " (";
$obieg=0;
foreach($input_name as $klucz => $wartosc)
{
$count = count($input_name);
$obieg++;
if($count == $obieg)
$query .= "`".$wartosc."`";
else
$query .= "`".$wartosc."`,";
}
$query .= ") VALUES (";
$obieg=0;
foreach($input_value as $klucz => $wartosc)
{
$count = count($input_name);
$obieg++;
if($count == $obieg)
$query .= "`".$wartosc."`";
else
$query .= "`".$wartosc."`,";
}
$query .= ")";
$this -> Handle = mysql_query($query) or die ("[Sqlutil] Nie moge wykonac zapytania (Method: Insert): ".mysql_error());
}
public function Update($table, $set, $bonus=0)
{
$query;
if(empty($table) || empty($set))
{
echo "[SqlUtil] Uzupelnij wymagane argumenty w wywolaniu metody Update!";
exit;
}
$obieg=0;
$query="UPDATE " . $table . " SET ";
foreach($set as $klucz => $wartosc)
{
$count = count($set);
$obieg++;
if($count == $obieg)
$query .= "`".$wartosc."` = '".$klucz."'";
else
$query .= "`".$wartosc."` = '".$klucz."',";
}
if($bonus)
$query .= " ".$bonus;
$this -> Handle = mysql_query($query) or die ("[Sqlutil] Nie moge wykonac zapytania (Method: Update): ".mysql_error());
}
public function TableInfo($table)
{
$this -> Select("*", $table, "LIMIT 1");
$fields = mysql_list_fields($this->dbname, $table, $this -> ConnectHandle);
$columns = mysql_num_fields($fields);
echo "<table background:'#c0c0c0'>";
echo "<tr><th>Numer pola</th><th>Tabela pola</th><th>Nazwa pola</th><th>Typ pola</th><th>Flagi pola</th></tr>";
for ($i = 0; $i < $columns; $i++)
{
echo "<tr><td>".$i."</td><td>".$table."</td><td>".mysql_field_name($this->Handle, $i)."</td><td>".mysql_field_type($this->Handle, $i)."</td><td>".mysql_field_flags($this->Handle, $i)."</td><td>";
}
echo "</table>";
}
public function MysqlInfo()
{
echo "<table background='#c0c0c0'><tr><td><b>Informacje o kliencie MySQL: </b></td><td>".mysql_get_client_info()."</td></tr><tr><td><b>Informacje o hoscie MySQL:</b></td><td>".mysql_get_host_info()."</td></tr><tr><td><b>Informacje o protokole MySQL: </b></td><td>".mysql_get_proto_info()."</td></tr><tr><td><b>Informacje o serwerze MySQL: </b></td><td>".mysql_get_server_info()."</td></tr></table>";
}
}
?>
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.
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
brakuje mi tu tez konstruktorów/destruktorów
0
Manual ponad wszystko, konsola ponad manual :&
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)
Przydatne. na pewno to wykorzystam tylko brakuje tutaj funkcji mysql_fetch_array().
Juz probowalem to zrobic ale nie udalo mi sie. Zrobisz taką funkcje?
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 :&
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)
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
1
Manual ponad wszystko, konsola ponad manual :&
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)