Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z mysql_fetch_array
Forum PHP.pl > Forum > PHP
macek
mam funkcję, która sprawdza i zapisuje do bazy pozycję danej strony pdo danym słowem na google.com do bazy:
  1. <?php
  2. function UruchomSprawdzanie() {
  3. $q = "SELECT id, url FROM statStrona WHERE status = '1'";
  4. $db = sql( $q );
  5. while ( $s = mysql_fetch_array( $db ) ) {
  6. $idStrona = $s[0];
  7. $url = $s[1];
  8. $q2 = "SELECT id, slowo FROM statSlowo WHERE status = '1' AND idStrona = '". $idStrona ."'";
  9. $db2= sql( $q2 );
  10. while ( $sl = mysql_fetch_array( $db2 ) ) {
  11. $idSlowo = $sl[0];
  12. $fraza = $sl[1];
  13. $slowo = str_replace( ' ', 'abs0987123', $fraza );
  14. $curlPoz = curl_init( POPRAWNYadresFunkcjiSprawdzajacej );
  15. curl_setopt( $curlPoz, CURLOPT_RETURNTRANSFER, 1 );
  16. $poz = curl_exec( $curlPoz );
  17. curl_close( $curlPoz );
  18.  
  19. $q = "INSERT INTO statArchiwumPoz (
  20. `id`, 
  21. `data`, 
  22. `idStrona`, 
  23. `idSlowo`, 
  24. `pozycja`
  25. ) VALUES (
  26. '', 
  27. NOW(), 
  28. '". $idStrona ."', 
  29. '". $idSlowo ."', 
  30. '". $poz ."'
  31. )";
  32. $db = sql( $q );
  33. }
  34. }
  35. }
  36. ?>


funkcja sql wykonuje zapytanie of cors winksmiley.jpg problem jest następujący: gdy wyświetlam inserta, lecz go nie wykonuję wszystko mi ładnie leci, pokazują się inserty, ale kiedy owe inserty chcę wykonać zwraca mi błąd:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in plik.php on line 835

fragment
  1. <?php
  2. $curlPoz = curl_init( POPRAWNYadresFunkcjiSprawdzajacej );
  3. curl_setopt( $curlPoz, CURLOPT_RETURNTRANSFER, 1 );
  4. $poz = curl_exec( $curlPoz );
  5. ?>

zwraca do $poz pozycję strony ( to działa na 100% )

wiem że zamiast dwóch zapytań można było użyć jednego, jednak dla kalrowności kody celowo rozbiłem na dwa
..
linia 835 to pierwszy while ( 3 linijka ciała funkcji ) .. chyba jednak moja wyobraźnia jest ograniczona ;/ help ..
1010
Według mnie musisz mieć jakiś błąd w zapytaniu...
thornag
Zrob:
  1. <?php
  2. $db2= sql( $q2 ) or die(mysql_error());
  3. ?>

W ten sposob sprawdzisz czy zapytanie zwraca poprawny wynik - komunikat Twojego bledu sugeruje ze argument przekazany mysql_fetch_array nie jest prawidlowym wynikiem.
siemakuba
W lini 5 używasz zmiennej $db jako wynik zapytania mysql i na niej opierasz działanie pętli while.
W lini 32, wewnątrz pętli nadpisujesz tę zmienną, co powoduje błąd. Użyj tu innej nazwy zmiennej i powinno być OK.

pozdr.
macek
udało uporać mis ię z problemem w nocy smile.gif @siemakuba ma rację, pierwsze zapytanie oznaczone jest jako $q ( $db ), drukie jako $q2 ( $db2 ) , w trzecim nie zwróciłem na to uwagi, dlatego się wysypywało winksmiley.jpg


dzięki za sugestie smile.gif
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.