Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]problem z mysql_fetch_assoc
Forum PHP.pl > Forum > Przedszkole
colinQ
Mam problem...

Potrzebuję wstawić 2 razy mysql_fetch_assoc ale gdy wstawie drugi raz wyświetla blad:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\iiws\zamien.php on line 23

Kod :
  1. <?php
  2.  
  3. $sql_conn = mysql_connect('localhost', '***', '***');
  4. $baza = mysql_select_db("ii_ws");
  5.  
  6. $wszyscy = mysql_query("select * from budynki");
  7. $ile = mysql_num_rows($wszyscy);
  8. $com['cegla'] = "cegielnia";
  9. $com['stal'] = "kopalnia_zelaza";
  10. $com['zwir'] = "zwirownia";
  11. $com['cement'] = "cementownia";
  12.  
  13.  
  14. for($i=1; $i <= $ile; $i++) {
  15. $feth = mysql_fetch_assoc($wszyscy);
  16. $a = $com['cegla'];
  17.  
  18. if( $a == 'cegielnia' ) {
  19. $poziom = $feth['poziom'];
  20. $poziom2 = $poziom * 100;
  21. $login = $feth['user'];
  22. $cep = mysql_query("select from users where log='$login'");
  23. $zeka = mysql_fetch_assoc($cep);
  24. $exit = $zeka['cegla'] + $poziom2;
  25. $ul = "update users set cegla='$exit' where log='$login'";
  26. $zetor = mysql_query($ul);
  27. if($zetor)
  28. echo 'ok';
  29. } else 
  30. echo 'lol';
  31.  
  32. }
  33.  
  34.  
  35. ?>
mild
  1. <?php
  2. $cep = mysql_query("select from users where log='$login'");
  3. $zeka = mysql_fetch_assoc($cep);
  4. ?>


To zwraca błąd?
Zapytanie ma błąd składni. Brakuje *
colinQ
  1. <?php
  2.  
  3. $sql_conn = mysql_connect('localhost', '***', '***');
  4. $baza = mysql_select_db("ii_ws");
  5.  
  6. $wszyscy = mysql_query("select * from budynki");
  7. $ile = mysql_num_rows($wszyscy);
  8. $com['cegla'] = "cegielnia";
  9. $com['stal'] = "kopalnia_zelaza";
  10. $com['zwir'] = "zwirownia";
  11. $com['cement'] = "cementownia";
  12.  
  13. function dodaj($co) {
  14.  
  15. for($i=1; $i <= $ile; $i++) {
  16. global $com;
  17. $feth = mysql_fetch_assoc($wszyscy);
  18. $a = $com[$co];
  19.  
  20. if( $a ) {
  21. $poziom = $feth['poziom'];
  22. $poziom2 = $poziom * 100;
  23. $login = $feth['user'];
  24. $cep = mysql_query("select * from users where log='$login'");
  25. $zeka = mysql_fetch_assoc($cep);
  26. $exit = $zeka[$co] + $poziom2;
  27. $ul = "update users set $co='$exit' where log='$login'";
  28. $zetor = mysql_query($ul);
  29. if($zetor)
  30. echo 'ok';
  31. } else 
  32. echo 'lol';
  33.  
  34. }
  35.  
  36. }
  37.  
  38. dodaj('cegla');
  39.  
  40. ?>


Dlaczego to nie zmienia wartości pola cegła :/ questionmark.gif
Cienki1980
W funkcji dodaj() wykorzystujesz zmienną $wszyscy .. której nie przekazujesz do funkcji, ani nie masz jej ustawionej jako global.
colinQ
  1. <?php
  2.  
  3. $sql_conn = mysql_connect('localhost', 'root', 'jakubek');
  4. $baza = mysql_select_db("ii_ws");
  5.  
  6. $wszyscy = mysql_query("select * from budynki");
  7. $ile = mysql_num_rows($wszyscy);
  8. $com['cegla'] = "cegielnia";
  9. $com['stal'] = "kopalnia_zelaza";
  10. $com['zwir'] = "zwirownia";
  11. $com['cement'] = "cementownia";
  12.  
  13. function dodaj($co) {
  14. global $wszyscy;
  15. global $ile;
  16. global $com;
  17. for($i=1; $i <= $ile; $i++) {
  18. $feth = mysql_fetch_assoc($wszyscy);
  19. $a = $com[$co];
  20.  
  21. if( $feth[$a] ) {
  22. $poziom = $feth['poziom'];
  23. $poziom2 = $poziom * 100;
  24. $login = $feth['user'];
  25. $cep = mysql_query("select * from users where log='$login'");
  26. $zeka = mysql_fetch_assoc($cep);
  27. $exit = $zeka[$co] + $poziom2;
  28. $ul = "update users set $co='$exit' where log='$login'";
  29. $zetor = mysql_query($ul);
  30.  
  31. }
  32.  
  33. }
  34.  
  35. }
  36.  
  37. dodaj(cegla);
  38. ?>


Czemu to nie zmienia ;/
pewnie znowu jakiś głupi błąd...
Cienki1980
Idąc tym samym tropem co poprzednio.

W funkcji wykorzystujesz zapytania do bazy, ale nie łączysz się z bazą wewnątrz funkcji, tylko poza nią. Jak dla mnie to to może być przyczyną. Sprawdź co zwraca baza za pomocą mysql_error();
colinQ
Nie działa po dodaniu global $sql_conn i global $baza ;/
Cienki1980
No to może taki tok działania:
1. wywal funkcję i spróbuj wykonać kod bez funkcji .. sprawdź czy zadziała ...
- jeżeli działa, znaczy że coś sie psuje przy przekazywaniu parametrów do funkcji .. patrz niżej
- jeżeli nie działa szukasz błędów czyli:
* wyswietlasz zapytania które wykonujesz do bazy
* sprawdzasz czy zmienne mają takie wartości jakie powinny mieć
2. Jeżeli działało poza funkcją a nie działa w funkcji to robisz takie same kroki jak przy sprawdzaniu poza funkcją czyli:
- wyświetlasz zapytania
- wyświetlasz zmienne

A no i warto byłoby sprawdzić na początku czy zapytania są poprawne ( czyli albo mysql_error() albo wyświetlić zapytanie i wykonać w bazie )
colinQ
znalazłem już błąd...

było
if( $feth[$a] ) {
jest
if($feth['nazwa'] == $a) {
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.