Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] error
Forum PHP.pl > Forum > PHP
3miel
co oznacza taki bład:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/gsm/public_html/admin/viewa.php on line 22
czachor
tiredsmiley.gif Podany argument nie jest poprawnym zasobem MySQL w pliku ..... linii... -> to tak mniej więcej...
Punkt 2d regulaminu ->
Cytat
Zadając pytanie, postarajmy się dostarczyć naszym rozmówcom maksimum informacji. Jeśli piszemy o komunikatach błędów, zacytujmy je w całości. Jeśli mamy błąd w kodzie, cytujemy odpowiedni jego fragment, plus kilka linii przed i po linii powodującej błąd.
q
fakt, informacji jak na lekarstwo :|

jednakze najczestrzym powodem takiego komunikatu, jezeli oczywiscie zaden inny nie pojawil sie wczesniej, jest zero rekordow pobranych przez polecenie "SELECT ... " , do ktorego odnosi sie mysql_fetch_array, proponyuje najpierw sprawdzic czy jakikolwiek rekord odowiadal zapytaniu
anas
Hej.

Sprawdz tez czy Twoje zapytanie jest poprawnie zapisane: jesli nie jestes pewien to wklej je tutaj to zweryfikujemy je wspolnie. Czesto blad w skladni powoduje takie bledy, chyba ze tak jak wspomnial przedmowca, mysql nie zwrocil innych komunikatow o bledach.

pozdrawiam

anas
Parti
Cytat(q @ 2004-09-10 23:57:23)
jednakze najczestrzym powodem takiego komunikatu [...] jest zero rekordow pobranych przez polecenie "SELECT ... "

Z tym się zgodzić nie mogę. Jeśli zapytanie jest poprawne i zwróci zero rekordów, to nie ma żadnego błędu. Znaczy to tyle, że żaden rekord nie spełnia warunków zapytania, albo np. tabela jest pusta.

Ten błąd pojawia się wtedy, jeśli zapytanie jest błędne. Aby tego uniknąć najlepiej pisać:
  1. <?php
  2. $result = mysql_query($sql) or die(mysql_error());
  3. ?>

Albo jeszcze lepiej napisać sobie taką funkcje:
  1. <?php
  2. function my_query($sql)
  3. {
  4.  $result = mysql_query($sql);
  5.  
  6.  if (mysql_errno())
  7.  {
  8. echo mysql_errno() . &#092;": \" . mysql_error() . \"<br>SQL: \" . $sql;
  9. exit();
  10.  }
  11.  
  12.  return $result;
  13. }
  14.  
  15. ?>
q
Parti masz racje, przed chwila to sprawdzilem, faktycznie, mysql_fetch_array przy poprawnym zapytaniu, jezeli wybrane zostalo zero rekordow, nie wywali bledow

w takim przypadku inna mozliwosc takiego komunikatu to bledne zapytanie. pisalem o tym wczesniej:

Cytat
jezeli oczywiscie zaden inny (komunikat) nie pojawil sie wczesniej


a tak wogole to mozemy sobie pisac, dyskutowac, a nawet nie ma o czym, bo autor postu przecenil troche forum i pomysal, ze kod jest zbedny winksmiley.jpg
Vertical
Krótko, zwięźle i na temat: ten error wyskakuje wtedy, kiedy jest niepoprawne zapytanie.
BartekR
Uściślając, taki błąd występuje wówczas, gdy argumentem funkcji mysql_fetch_array() nie jest mysql result resource. Jedną z przyczyn może być niepoprawne zapytanie, inną np. literówka w nazwie zmiennej. ;)

Zapytanie może być semantycznie poprawne, ale odwoływać się do nie istniejących pól lub tabel - wówczas również otrzymamy taki błąd.

Żeby ktokolwiek mógł wskazać Ci dokładnie błąd, musisz wkleić wszystkie linijki od wywołania mysql_query() do mysql_fetch_array() oraz strukturę wszystkich tabel, które wykorzystywane są w zapytaniu (najlepiej wklepując w kliencie mysql: SHOW CREATE TABLE nazwa_tabeli).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.