Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Warning: mysql_fetch_array():
Forum PHP.pl > Forum > Przedszkole
Onimod
Witam

widziałem kilka tematów o tym tutaj na forum ale nie potrafię zastosowanych tam rozwiązań przenieść na swój problem jak to zazwyczaj robię z informacjami znalezionymi na tym forum...

Więc do rzeczy :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\WebServ\httpd\###\###\#####.php on line 74

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\WebServ\httpd\###\#####.php on line 86

Próbuję rozwiązać ten problem od kilku godzin...
O to fragment kodu, zawierający linie stwarzające mi problem
  1. function PobierzWynik()
  2. {
  3.  
  4. global $WynikZapytania;
  5.  
  6. while($wiersz = mysql_fetch_array
  7. ($WynikZapytania,MYSQL_ASSOC))
  8.  
  9. {
  10. $RezultatZapytania[] = $wiersz;
  11. }
  12. return $RezultatZapytania;
  13. }
  14.  
  15. function PobierzIlosc()
  16. {
  17. global $WynikZapytania;
  18. $IloscRekordow =
  19. mysql_num_rows($WynikZapytania);
  20. return $IloscRekordow;
  21. }
  22.  
  23.  
  24.  


Proszę o pomoc sad.gif
Skie
Problem nie tkwi w tym kodzie, lecz w zapytaniu MySQL, które jest albo błędne albo odwołuje się do bazy, tabeli lub też pola, które nie istnieje.
everth
Masz problem ze zmienną $WynikZapytania. Napisz co ci wyrzuci coś takiego
  1. var_dump($WynikZapytania);
bastard13
Dodaj sobie echo $WynikZapytania; po każdej operacji na tej zmiennej i zobacz, w którym momencie się gubi. A poza tym to lepiej jest przesyłać argumenty do funkcji, ponieważ wtedy będziesz mógł tej funkcji użyć przy innych okazjach, a jeżeli używasz global, to nawet taka drobnostka jak zmiana nazwy zmiennej zmusza cię do licznych zmian w kodzie.
Onimod
var_dump($WynikZapytania); zwrócił "NULL"
Skie
Czyli wniosek, że taka zmienna nie istnieje. Pokaż fragment kodu, w którym wykonujesz zapytanie MySQL.
Onimod
  1. if($BazaDanych == 'mysql')
  2. {
  3. $ZapytanieArtykul = 'SELECT
  4. artykul_id, artykul_tytul, artykul_wstep,
  5. artykul_autor, artykul_czytan, artykul_keyword
  6. FROM
  7. '.$PrefixTabelek. 'artykuly
  8. ORDER BY artykul_id DESC
  9. LIMIT '.addslashes($ZacznijOd).',10';
  10. }
  11.  
  12. if(!WykonajZapytanie($ZapytanieArtykul))
  13. {
  14. PokazBlad('Bład w zapytaniu',
  15. __FILE__,__LINE__,$ZapytanieArtykul);
  16. }
  17.  
  18.  
  19. $Wynik = PobierzWynik();
  20. $IleWynikow = PobierzIlosc();
  21.  
  22. for($n=0;$n<$IleWynikow;$n++)
  23. {
  24. echo '<h2><a href="artykuly.php?czytaj=tak$artykul_id=
  25. '.$Wynik[$n] ['artykul_id'].'"
  26. title="'.$Wynik[$n] ['artykul_keyword'] .'">'
  27. .stripslashes($Wynik[$n]['artykul_tytul']).'</a></h2>';
  28. echo '<p>'.$JezykModulu['artykul_autor'].
  29. stripslashes($Wynik[$n] ['artykul_autor']).',
  30. '.$JezykModulu['artykul_czytan'].
  31. stripslashes ($Wynik[$n]['artykul_czytan']).'</p>';
  32. echo '<p>'.stripslashes($Wynik[$n]['artykul_wstep']).'</p>';
  33. }
  34. }
  35. ?>
muk4
Daj
  1. echo $ZapytanieArtykuł;

wklej to ci ci wyświetliło do phpmyadmina(jeśli masz) i on ci pokaże błąd. Jak nie to chociaż pokaż tutaj.
Onimod
  1. SELECT *
  2. FROM `str_artykuly`
  3. WHERE 1
  4. SELECT artykul_id, artykul_tytul, artykul_wstep, artykul_autor, artykul_czytan, artykul_keyword
  5. FROM cmslm_artykuly
  6. ORDER BY artykul_id DESC
  7. LIMIT , 10
  8.  
  9. MySQL zwrócił komunikat:
  10.  
  11. #1064 - Something is wrong in your syntax obok 'SELECT artykul_id, artykul_tytul, artykul_wstep, artykul_autor, artykul_czytan, ' w linii 2
  12.  
  13.  
  14.  
  15.  
everth
To jest jedno zapytanie czy 3 w jednym?
Onimod
boże co ja do tego phpmyadmin wrzucilem...

tak mialo byc
  1. SELECT *
  2. FROM `str_artykuly`
  3. WHERE artykul_id, artykul_tytul, artykul_wstep, artykul_autor, artykul_czytan, artykul_keyword
  4. ORDER BY artykul_id DESC
  5. LIMIT , 10
  6.  
  7. MySQL zwrócił komunikat:
  8.  
  9. #1064 - Something is wrong in your syntax obok ' artykul_tytul, artykul_wstep, artykul_autor, artykul_czytan, artykul_keyword OR' w linii 2


everth
Bo to co wkleiłeś jest dalej bez sensu. Co robi to:
  1. WHERE artykul_id, artykul_tytul, artykul_wstep, artykul_autor, artykul_czytan, artykul_keyword

Zobacz jak pójdzie to:
  1. SELECT * FROM `str_artykuly` ORDER BY artykul_id DESC LIMIT 1, 10
bastard13
Dodaj jeszcze do LIMIT to co miałeś w zmiennej $ZacznijOd, ponieważ teraz nie brakuje ci pierwszego argumentu.
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.