Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql]Błąd Zapytania
Forum PHP.pl > Forum > PHP
zaba12
Witam mam taki kod a wnim jest bład
Kod
<?
if($co == "edytuj") {
$wynik = mysql_query("select * from menu where nr = $id");
while ($rzad = mysql_fetch_array($wynik))
echo "<FORM METHOD=post action=\"?s=admin/menu&co=zmien\">
<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=" .$id . ">
<table width=300 border=0 align=center>
<tr><td align=center><b>Tytuł:</b><br><input type=text name=tytul value=\"".$rzad[1]."\" size=42><br></td></tr>
<tr><td align=center><b>Treść Długa:</b><textarea name=tresc rows=10 cols=50>".$rzad[2]."</textarea><br></td></tr>
<tr><td align=center><input type=submit value=wyslij class=\"input\"></td></tr></form></table><br>";
}
elseif($co == "zmien") {
$query = "UPDATE menu SET tytul='$tytul', tresc='$tresc' WHERE nr='$id'";
$wynik = mysql_query ($query);
echo"<CENTER>News został zmodyfikowany!<BR> Klinij <A HREF=\"edytuj.php\">tutaj</A> aby powrócić do menu admina :)</CENTER>";
}
$wynik = mysql_query ("SELECT * FROM menu;");
echo("
<table cellpadding=2 border=1 width=400 align=center>
<tr>
<td><b>Data</b></td>
<td><b>Temat</b></td>
<td><b>Edytuj</b></td>
</tr>
");
while ($rekord = mysql_fetch_array ($wynik)) {
$id = $rekord[0];
$tytul = $rekord[1];
$tresc = $rekord[2];
echo("
<tr>
<td>$tytul</td><td>$tresc</td>
<td>
<a href=?s=admin/menu&co=edytuj&id=$id><b>edytuj</b></a>
</td>
</tr>
");
}
echo "</table>";
?>

Bład
Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in G:\apache2triad\htdocs\sqltsp\html\admin\menu.php on line 4
netzah
wg blegu zapytanie nie wykonalo sie poprawnie. dlaczego? np. mozesz nie byc polaczony z baza.
sf
Usuń średnik na końcu w zapytaniu i naucz się pisać czytelnie kod :-/
carman
niejaki sf napisal:

" Usuń średnik na końcu w zapytaniu i naucz się pisać czytelnie kod :-/ "

nie wiem o co Ci chodzi z tym srednikiem, pierwsze slysze, zeby srednik na koncu zapytania w czymkolwiek przeszkadzal.

Kod
$wynik = mysql_query("select * from menu where nr = $id");

Blad jest tutaj.
podejrzewam, ze zmienna $id nie jest ustawiona i dlatego zapytanie do bazy idzie w nastepujacej formie:
Kod
"select * from menu where nr = "

co oczywiscie jest bledne.
wyswietl sobie zmienna $id przed zapytaniem, jesli nic sie nie pojawi, to znaczy, ze wlasnie tu jest blad.

pozdrawiam.
sf
Chodziło mi o zapytanie w kolejnej tam linijce ;]

  1. <?php
  2. $wynik = mysql_query (&#092;"SELECT * FROM menu;\");
  3. ?>


Cytat("manual php mnie popiera!")
Notatka:  Zapytanie nie powinno kończyć się znakiem średnika.


Poprostu szybko spojrzałem na kod i odrazu wyłapałem jakiś błąd nie sprawdzając, w której linijce skarży nam się kolega :}
zaba12
sory ale w lini 4 jest bład to jest ta linia

Kod
while ($rzad = mysql_fetch_array($wynik))
sf
My to wiemy zabo :} Kolega Ci napisal co masz najprawdopodobniej zle.
zaba12
ok działa ale teraz nieda sie zmienic zawartosci jak edytuje se menu to sie niezmienia zawartosc
sf
$_GET['id'] zamiast $id powinno pomóc, ale nie wiem bo nie wiem jak zmieniłeś ten swój kod
zaba12
Kod
<?
if($co == "edytuj") {
$wynik = mysql_query ("SELECT * FROM menu;");
while ($rzad = mysql_fetch_array($wynik))
echo "<FORM METHOD=post action=\"?s=admin/menu&co=zmien\">
<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=" .$id . ">
<table width=300 border=0 align=center>
<tr><td align=center><b>Tytuł:</b><br><input type=text name=tytul value=\"".$rzad[1]."\" size=42><br></td></tr>
<tr><td align=center><b>Treść Długa:</b><textarea name=tresc rows=10 cols=50>".$rzad[2]."</textarea><br></td></tr>
<tr><td align=center><input type=submit value=wyslij class=\"input\"></td></tr></form></table><br>";
}
elseif($co == "zmien") {
$query = "UPDATE menu SET tytul='$tytul', tresc='$tresc' WHERE nr='$id'";
$wynik = mysql_query ($query);
echo"<CENTER>News został zmodyfikowany!<BR> Klinij <A HREF=\"edytuj.php\">tutaj</A> aby powrócić do menu admina :)</CENTER>";
}
$wynik = mysql_query ("SELECT * FROM menu;");
echo("
<table cellpadding=2 border=1 width=400 align=center>
<tr>
<td><b>Data</b></td>
<td><b>Temat</b></td>
<td><b>Edytuj</b></td>
</tr>
");
while ($rekord = mysql_fetch_array ($wynik)) {
$id = $rekord[0];
$tytul = $rekord[1];
$tresc = $rekord[2];
echo("
<tr>
<td>$tytul</td><td>$tresc</td>
<td>
<a href=?s=admin/menu&co=edytuj&id=$id><b>edytuj</b></a>
</td>
</tr>
");
}
echo "</table>";
?>
sf
ROTFL tongue.gif

Stary, czytaj to co piszemy. Nie to miałeś zmienić.
zaba12
ten kod co podales nic nie pomogl zobacz sam


TU EDYCJA
sf
  1. <?
  2. if($_GET['co'] == &#092;"edytuj\") {
  3. $wynik = mysql_query(sprintf(&#092;"select * from menu where nr = %d\", $_GET['id']);
  4. while ($rzad = mysql_fetch_array($wynik))
  5. echo &#092;"<FORM METHOD=post action=\"?s=admin/menu&co=zmien\">
  6. <INPUT TYPE=&#092;"hidden\" NAME=\"id\" VALUE=\" .$id . \">
  7. <table width=300 border=0 align=center>
  8. <tr><td align=center><b>Tytuł:</b><br><input type=text name=tytul value=&#092;"\".$rzad[1].\"\" size=42><br></td></tr>
  9. <tr><td align=center><b>Treść Długa:</b><textarea name=tresc rows=10 cols=50>&#092;".$rzad[2].\"</textarea><br></td></tr>
  10. <tr><td align=center><input type=submit value=wyslij class=&#092;"input\"></td></tr></form></table><br>\";
  11. }
  12. elseif($_GET['co'] == &#092;"zmien\") {
  13. $query = sprintf(&#092;"UPDATE menu SET tytul = '%s', tresc = '%s' WHERE nr = %d\", $_POST['tytul'], $_POST['tresc'], $_POST['id']);
  14. $wynik = mysql_query ($query);
  15. echo&#092;"<CENTER>News został zmodyfikowany!<BR> Klinij <A HREF=\"edytuj.php\">tutaj</A> aby powrócić do menu admina :)</CENTER>\";
  16. }
  17. $wynik = mysql_query (&#092;"SELECT * FROM menu\");
  18. echo(&#092;"
  19. <table cellpadding=2 border=1 width=400 align=center>
  20. <tr>
  21. <td><b>Data</b></td>
  22. <td><b>Temat</b></td>
  23. <td><b>Edytuj</b></td>
  24. </tr>
  25. &#092;");
  26. while ($rekord = mysql_fetch_array ($wynik)) {
  27. $id = $rekord[0];
  28. $tytul = $rekord[1];
  29. $tresc = $rekord[2];
  30. echo(&#092;"
  31. <tr>
  32. <td>$tytul</td><td>$tresc</td>
  33. <td>
  34. <a href=?s=admin/menu&co=edytuj&id=$id><b>edytuj</b></a>
  35. </td>
  36. </tr>
  37. &#092;");
  38. }
  39. echo &#092;"</table>\";
  40. ?>
zaba12
Kod
Parse error: syntax error, unexpected ';' in G:\apache2triad\htdocs\sqltsp\html\admin\menu.php on line 3
sf
Bosze, widzisz, że brakuje jednego nawiasu. Daruj sobie programowanie skoro trzeba każdy drobny błąd poprawiać za Ciebie.

  1. <?php
  2. $wynik = mysql_query(sprintf(&#092;"select * from menu where nr = %d\", $_GET['id']));
  3. ?>
zaba12
a no tak zeczywiscie sorka za problemy
sf
Odezwij sie na gg : 948843 bo szkoda zasmiecac forum.

Zamist id pisał nr w zapytaniu i stąd te problemy (rotfl).
carman
dobra od poczatku.
zmienna $id w zapytaniu jest potrzebna!!!
wiadomo, ze jesli chcesz edytowac rekord to musisz podac ktory to ma byc rekord wlasnie przez identyfikator.
ja tylko sugeruje, ze $id jest nieustawione na wartosc ( moze miec to cos wspolnego z tym ze register_globals = off , co oczywiscie jest poprawne). tak jak kolega powyzej podpowiada uzyj tablicy globalnej $_GET. Ale to chyba dla co niektorych wyzsza szkola jazdy. proponowalbym umijetne debugowanie errorow. musisz sprawdzic, czy dobrze przeazujesz zmienna $id i to wszystko. wyswietlic ja sobie mozesz przez funkcje echo badz print (lub whatever:), multum tego jest) przed zapytaniem.
zaba12
Juz zrobilem wszystko działa dzieki wam THX
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.