Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z mysql_fetch_array
macek
post
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 17.08.2006
Skąd: łódź

Ostrzeżenie: (0%)
-----


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 ..

Ten post edytował macek 5.10.2006, 19:03:13


--------------------
Bez takich avatarów - moderator
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
1010
post
Post #2





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

Ostrzeżenie: (0%)
-----


Według mnie musisz mieć jakiś błąd w zapytaniu...


--------------------
Go to the top of the page
+Quote Post
thornag
post
Post #3





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

Ostrzeżenie: (0%)
-----


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.


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post
siemakuba
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
macek
post
Post #5





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 17.08.2006
Skąd: łódź

Ostrzeżenie: (0%)
-----


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


--------------------
Bez takich avatarów - moderator
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:23