ugrás a tartalomhoz

Php sql (num rows count) - megoldva!

DaWe35 · 2014. Aug. 4. (H), 21.11
Üdv!
A következő php kód nem működik, pedig mindenhol ezt írják (még w3c-n is):
  1. <?php  
  2. $connect = mysql_connect(localhost, user, password, db);  
  3. $connect;  
  4.     
  5.   $sql="SELECT ip FROM data WHERE ip='psg.servegame.com:33333'";  
  6. $qry=mysql_query($sql);  
  7. $num_rows = mysql_num_rows($qry);   
  8.   
  9. if($num_rows > 0)   
  10. {  
  11. echo '  
  12. van';  
  13. }  
  14.   
  15. else   
  16. {  
  17. echo 'nincs';  
  18. }  
  19.   
  20.   
  21. mysql_close($connect);  
  22. ?>  
A kód minden esetben azt írja ki, hogy "nincs", még akkor is, ha az adat (ip cím) már szerepel az adatbázisban, akkor is, ha nem. Error log:
PHP Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/coolhdhu/public_html/craft/test.php on line 7


Megoldás: picit gondolkoztam a kódon, és ez már működik:
  1. <?php  
  2. $connect = mysqli_connect(localhost, user, password, db-name);  
  3.     
  4. $sql="SELECT ip FROM data WHERE ip='psg.servegame.com:33333'";  
  5. $qry=mysqli_query($connect,$sql);  
  6. $num_rows = mysqli_num_rows($qry);   
  7.   
  8. if($num_rows > 0)   
  9. {  
  10. echo '  
  11. van';  
  12. }  
  13.   
  14. else   
  15. {  
  16. echo 'nincs';  
  17. }  
  18.   
  19. mysqli_close($connect);  
  20. ?>  
 
1

Kapcsolódás

Poetro · 2014. Aug. 4. (H), 22.19
Nem sikerült kapcsolódnod az adatbázishoz, vagy hibás a lekérdezés, ezért nem kapsz megfelelő választ.
5

Csatlakozik

DaWe35 · 2014. Aug. 5. (K), 08.28
De, csatlakozik, mert ebbe az adatbázisba már tudtam írni adatokat, ugyanezekkel az adatokkal. A lekérdezést meg leteszteltem phpmyadminban.
2

Érdemes elolvasni a

Hidvégi Gábor · 2014. Aug. 4. (H), 22.38
Érdemes elolvasni a kézikönyvet. A mysql_connect() negyedik paramétere például biztosan nem az adatbázis azonosítója.
3

w3c?

bamegakapa · 2014. Aug. 4. (H), 23.28
A w3c biztos nem ír ilyet, semmi köze a phphoz. Amire gondolsz, az a w3schools, aminek semmi köze a w3chez. Valójában a w3schools csak egy igen gyatra, elavult referencia/tananyag oldal, jó seo-val, a helyedben messzire kerülném.

A hivatalos php leírást böngészd inkább, ott is inkább felejtsd el a mysql_ függvényeket, már kifutóban vannak. Tanulj inkább mysqli-t vagy pdo-t, ha már tanulni szeretnél.
7

Kösz

DaWe35 · 2014. Aug. 5. (K), 08.34
Köszönöm, már összevissza írogatta mysql_-t és mysqli_-t, de akkor ezentúl csak mysqli_-t fogok használni.
4

a lekérdezés nem működik

Akron · 2014. Aug. 5. (K), 08.16
A mysql_connect negyedik paramétere egy logikai érték. Nem tudom nálad a "db" mit hordoz.

A harmadik sor az mi akar lenni?

Azután van-e "data" táblád és annak van-e "ip" mezője?
A 6. sor után szúrj be egy echo mysql_error(); sort. Abból talán többet megtudsz.
6

Pontosítás:

DaWe35 · 2014. Aug. 5. (K), 08.33
Igen, "data" tábla, és "ip" az egyik oszlop, amivel akarok dolgozni. A csatlakozásnál a 4. érték (db-nek írtam át), a data, az adatbázistábla neve. Ez így működik, még akkor is ha nem ismeritek. Azt, hogy helyes-e, azt nem tudom.
A 3. sornál csatlakozik, mert "valahol csak kell rá csatlakozni", de nem volt jobb ötletem, mint az elejére behívni a kódot. Nem tudom, hol kellene csatlakozni...
8

Úgy emlékszem, a mysqli

Vilmos · 2014. Aug. 5. (K), 08.42
Úgy emlékszem, a mysqli esetén adható meg bejelentkezésnél az adatbázis. Mysql esetén külön parancs a kiválasztása.
Remélem hasznát veszed, adok egy mintát sql hibakezelésre.
  1. <?php  
  2.    $conn = mysql_connect( 'localhost','user','password');  
  3.   
  4.    if (! is_resource$conn ){  
  5.       echo 'connect?';  
  6.       die; }  
  7.   
  8.    if (! mysql_select_db( $db ){  
  9.       echo 'db?';{  
  10.       die; }  
  11.   
  12.    $res = mysql_query( 'SELLECT ...');  
  13.   
  14.    if (! $res ){  
  15.       echo 'query?';  
  16.       die; }  
  17.   
  18.    $rows = mysql_num_rows( $res );  
  19.    echo $rows;  
  20. ?>