Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php+MySQL] mysql_fetch_array()
Forum PHP.pl > Forum > PHP
Kreton
Mam tutaj sobie skrypcik. Nie stety nie mam hostingu zeby wam to zobrazować w sposób graficzny.

  1. <? 
  2.  
  3. $baza = mysql_connect (localhost, Marcin, macia33no);
  4. $id = $_GET['id'];
  5. if(mysql_connect (localhost, Marcin, macia33no)) {
  6. echo "OK. Zalogowany do bazy <br>";}
  7. mysql_create_db(marcin2);
  8. mysql_select_db(marcin2);
  9. $zapytanie = "SELECT * FROM `nba` WHERE `id` = $id ORDER BY `id` ASC ";
  10. $wykonaj = mysql_query($zapytanie);
  11.  
  12. while($wiersz = mysql_fetch_array($wykonaj))
  13. {
  14. print "<table width=\"100%\" align=\"center\" border=\"1px\">
  15. <tr><td><b>Nazwisko: </b>".$wiersz['nazwisko']."</td><td><a href=\"index.php?go=oceny&id=".$wiersz['id']."&z=z\">Zmień oceny</a></td>
  16. <tr><td><b>Matematyka: </b>".$wiersz['Matematyka']."
  17. <tr><td><b>Historia: </b>".$wiersz['Historia']."</td></tr>
  18. <tr><td><b>Polski: </b>".$wiersz['Polski']."</td></tr>
  19. </table>";
  20. }
  21.  
  22. if(isset ($_GET['z'])) {
  23. $zapytanie2 = "SELECT * FROM `nba` WHERE `id` = $id ORDER BY `id` ASC ";
  24. $wykonaj2 = mysql_query($zapytanie2);
  25. while ($wiersz = mysql_fetch_array($wykonaj2))
  26. { 
  27. print "<form action=\"oceny.php\" method=\"post\">
  28. Matematyka: <input type=\"text\" name=\"matematyka\" value=\"".$wiersz['Matematyka']."\" size=\"\">
  29. Historia: <input type=\"text\" name=\"historia\" value=\"".$wiersz['Historia']."\" size=\"\">
  30. Polski: <input type=\"text\" name=\"polski\" value=\"".$wiersz['Polski']."\" size=\"\">
  31. <input type=\"submit\" value=\"Wyślij\">
  32. </form>" 
  33. ;} ;}
  34.  
  35. if(isset($_POST['matematyka'])) {print $_POST['matematyka'];}
  36.  
  37. ?>


Wszystko jest dobrze aż do czasu. Jezeli uruchamiam dziennik ( plik oceny.php ) i nie jest ustawiona zmienna $_GET['z'] to jest okej. Jezeli wybiorę zamień oceny (wtedydodaje sie zmienna $GET_['z'] i wyświetla inputy. to tez jest OK, wszystko sie ładuje, a liczby zastają wpisane do pól input. Jezeli jednak wyślę używając buttona " Wyślij" dostaję taki oto nieprzyjemny komunikat.

Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\marcin\oceny.php on line 12
Linia 12, no ale nie mogę sie dopatrzyć błędu. Co ciekawe ten błąd wyskakuje ale ostatnia konstrukcja z wyswietleniem zmiennej $_POST['matematyka'] jest wykonywana poprawnie ...
tenetos
co to robisz za programik zrób kilka zrzutów
wrzasq
poniewaz gdy przesylasz formularz nie masz ustawionej zmiennej $_GET['id'] i wtedy po podstawieniu do zapytania wychodzi
Kod
WHERE `id` =  ORDER BY
, przez co zapytanie juz nie jest poprawne. masz dwie mozliwosci, a ja radze wykonac obydwa kroki:

1. sprawdzaj czy $_GET['id'] jest ustawione i albo ustawiaj wartosc domyslna, albo pokazuj jakis komunikat.
2. do jako URL docelowy formularza podaj action=\"oceny.php?id={$wiersz['id']}\"

postu tenetos'a komentowac juz mi sie nie chce
tenetos
wiesz ja chciałem zobaczyć efekt końcowy tego programu. i nikt cię nie prosił o jakiekolwiek opinie na temat mojego postu.
thornag
Wrzasku nie zgodze sie z Toba. Blad sie pojawia gdy ustawiony jest GET a GET prowadzi do <a href=\"index.php?go=oceny&id=".$wiersz['id']."&z=z\">. Takze Kreton pokaz plik oceny.php.

Jesli to jest plik oceny.php to jako ze blad wyskakuje w lini 12 znaczy ze gdzies w deklaracji petli moze wystapic blad czyli w liniach 12-22

  1. <?php
  2. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:&#092;usr\krasnal\www\marcin\oceny.php on line 12
  3. ?>


Blad ten wskazuje na to ze mogles zle wpisac nazwy pol tabeli. Zobacz czy nie maja byc wszystkie z malych liter.

Zeby sprawdzicz czy zapytanie zwraca jakis wynik sprobowalbym po wykonaniu zapytania napisac

  1. <?php
  2.  
  3. $wynik = mysql_num_rows($wykonaj);
  4. echo $wynik;
  5.  
  6. ?>


Jezli zwroci wartosc 0 znaczy to ze zapytanie jest zle skonstruowane.

Pomoglem ile mi sie wydaje, jesli sie gdzies pomylilem to mi wytknijcie zebym sie nauczyl 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.