Witam. Wiem, że do mysql_num_rows należy przekazać wynik zapytania MySQL np. "SELECT", jednak nie wiem jak to zrobić, a mój kod:
$result=http://www.php.net/mysql_query("SELECT name FROM $tabela"); //w poniższej linii jest błąd $ilosc=http://www.php.net/mysql_num_rows($result); http://www.php.net/echo $ilosc;
Od kiedy to nazwy pól dajemy w apostrofach?
cycofiasz, będę uważał na składnię. Ale to nie rozwiązuje mojego problemu. Składnia, którą zastosowałem w innych skryptach nie powoduje błędów. Chodzi mi o to, jak przekazać wynik zapytania MySQL dla funkcji mysql_num_rows.
Przekazujesz dobrze ale widocznie nadal coś jest źle w zapytaniu skoro problem nie rozwiązał się po usunięciu apostrofów. Czy teraz jest jakiś błąd?
A może najpierw zastosować mysql_error?
Spróbuj najpierw zapisać wynik w tablicy, a dopiero później zliczyć elementy.
http://www.php.net/mysql_fetch_assoc($result)
Zastosowałem mysql_error. Funkcja zwróciła pusty ciąg, czyli błędu nie było. Dla pewności wyświetliłem dane za pomocą mysql_fetch_assoc + echo.
Zapisywałem dane w mysql_fetch_assoc, ale wynik jest ten sam.
Błąd jest nadal w mysql_num_rows. Komunikat oznacza, że przekazuję mu błędny zasób.
Sprawdziłem tabele i pola tabeli pod względem poprawności. Wszystko jest w porządku. Wrzucę cały kod, być może błąd jest spowodowany czymś wcześniej:
<?php if(is_logged()) { if($lvl==1){ $pob=http://www.php.net/mysql_query("SELECT prod FROM $gry"); while($po=http://www.php.net/mysql_fetch_assoc($pob)){ $po[prod]=http://www.php.net/trim($po[prod]); $spr=http://www.php.net/mysql_query("SELECT nazwa FROM $firma WHERE nazwa=$po[prod]"); if(http://www.php.net/mysql_num_rows($spr)>0){ http://www.php.net/echo 'Było<br />'; } else{ $dodaj=http://www.php.net/mysql_query("INSERT INTO $firma SET nazwa=$po_pw[prod]"); if($dodaj==TRUE){ http://www.php.net/echo 'Dodano <br />'; } else{ http://www.php.net/echo 'Nie dodano<br />'; } } } } }
Kręcisz coś.
Daj echo "SELECT nazwa FROM $firma WHERE nazwa=$po[prod]"; i odpal to zapytanie przez phpMyAdmina i sprawdź czy zwraca błąd
Jak na moje to tu brakuje ciapków powinno być tak:
$po['prod']=http://www.php.net/trim($po['prod']);
w zapytaniach widze zmienne, masz te zmienne gdzieś zdeklarowane?
czy tak po prostu zapisujesz nazwy tabel?
ogolnie zapytanie tak wyglada
SELECT pole FROM tabela
Wróciłem po jakimś czasie do skryptu i rzeczywiście błąd był w zapytaniu. Niestety moja pewność nad sprawdzeniem czy zapytanie jest poprawne:
$ret = http://www.php.net/mysql_query("SELECT pole FROM tabela WHERE pole=wartosc) or die(mysql_error());
Unknown column 'Kolumna' in 'where clause'
$ret = http://www.php.net/mysql_query("SELECT pole FROM tabela WHERE pole=wartosc) or die(mysql_error());
Unknown column 'Kolumna' in 'where clause'
nie: pole=wartosc
a: pole='wartosc'
Czemu nie zaczynacie od podstaw tylko od razu skaczecie na środek jeziora?? Potopić się chcecie??
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)