Autor | Zpráva | ||
---|---|---|---|
negr Profil |
#1 · Zasláno: 13. 12. 2011, 08:24:53
Zdravím prosím o radu kde je chyba :-/ Udělal jsem si script na editaci novinek (snad dobře :D ) a když ji chci upravit tak to všechno proběhne akorat se nic nezmění a ani v db :-/ tady je kód:
<?php include "header.php"; include "config.php"; $id_clanku = $_GET["id_clanku"]; if(isset($_POST['submit'])) { $predmet = $_POST['predmet']; $uvod = $_POST['uvod']; $zprava = $_POST['zprava']; $result = mysql_query("UPDATE clanky SET predmet='$predmet', uvod='$uvod', zprava='$zprava' WHERE id='$id_clanku', ;"); echo "<b>Novinka byla upravena!<br>Nyní budeš za (4) Sekundy přesměrován na hlavní stránku!"; echo "<meta http-equiv=Refresh content=4;url=index.php>"; } elseif($id_clanku) { $result = mysql_query("SELECT * FROM clanky WHERE id='$id_clanku' ;"); while($myrow = mysql_fetch_assoc($result)) { $id_clanku = $myrow["id"]; $predmet = $myrow["predmet"]; $uvod = $myrow["uvod"]; $zprava = $myrow["zprava"]; ?> <br> <h3>Upravit Novinku</h3> <form method="post" action="<?php echo $PHP_SELF ?>"> <input type="hidden" name="id" value="<? echo $id_clanku; ?>"> Předmět: <input name="predmet" size="40" maxlength="255" value="<? echo $predmet; ?>"> <br> Úvod: <textarea name="uvod" rows="7" cols="30"><? echo $uvod; ?></textarea> <br> Zpráva: <textarea name="zprava" rows="7" cols="30"><? echo $zprava; ?></textarea> <br> <input type="submit" name="submit" value="Upravit novinku!"> </form> <? }//konec while }//konec elseif include "footer.php"; ?> |
||
Taps Profil |
#2 · Zasláno: 13. 12. 2011, 09:33:48
negr:
co píše mysql_error ? $result = mysql_query("UPDATE clanky SET predmet='$predmet', uvod='$uvod', zprava='$zprava' WHERE id='$id_clanku'") or die (mysql_error()); |
||
negr Profil |
#3 · Zasláno: 13. 12. 2011, 10:46:08
píše tohle:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 |
||
Bertram Profil |
#4 · Zasláno: 13. 12. 2011, 11:36:34
Ahoj, ty středníky tam nepatří a int, což $id_clanku asi je, do apostrofů dávat také nemusíš.
$result = mysql_query("UPDATE clanky SET predmet='$predmet', uvod='$uvod', zprava='$zprava' WHERE id=$id_clanku"); $result = mysql_query("SELECT * FROM clanky WHERE id=$id_clanku"); |
||
Ugo Profil |
#5 · Zasláno: 13. 12. 2011, 11:36:47
$result = mysql_query("UPDATE clanky SET predmet='$predmet', uvod='$uvod', zprava='$zprava' WHERE id='$id_clanku'");
|
||
negr Profil |
#6 · Zasláno: 13. 12. 2011, 11:51:49
no tak středníky jsou pryč a hláška nikde, ale to ovšem nemění nic na tom že mi to nemění obsah novinky v db ani na webu :-/
|
||
nemeja Profil |
#7 · Zasláno: 13. 12. 2011, 11:58:06 · Upravil/a: nemeja
Zkus si vypsat
$uvod, $zprava zda ti posílaj nějaké údaje,. Máš zadané správné názvy sloupců? zkus kdyžtak napsat sloupec='".$promenna."'
// ne máš tam chybu, to mysql_query(...) nesmíš mít v proměnné nech tam jen mysql_query("UPDATE clanky SET predmet='$predmet', uvod='$uvod', zprava='$zprava' WHERE id='$id_clanku'"); |
||
Bertram Profil |
#8 · Zasláno: 13. 12. 2011, 12:04:08
negr:
„nemění obsah novinky v db“ Zatím byla zmínka jen o tabulce clanky, myslel jsi, že se ta změna neprojeví v ní? |
||
negr Profil |
#9 · Zasláno: 13. 12. 2011, 12:13:58
Bertram:
„Zatím byla zmínka jen o tabulce clanky, myslel jsi, že se ta změna neprojeví v ní?“ no jo...jsou to články a někdy tomu řeknu novinka/y tak jsem se špatně vyslovil :-/ nemeja: „mysql_query(...) nesmíš mít v proměnné“ oddělal jsem proměnnou a furt nic :-/ , vypíše mi predmet, uvod i zpravu jen ten update mi nejede :-/ |
||
Bertram Profil |
#10 · Zasláno: 13. 12. 2011, 12:21:34
negr:
Docela dobře si to můžeš ověřit tak, že z UPDATE uděláš SELECT a musí se ti vypsat záznam, který chceš editovat. A pokud potom po příkazu UPDATE nedojde ke změně, tak předáváš stejný obsah, který je už v db uložen. |
||
negr Profil |
#11 · Zasláno: 13. 12. 2011, 12:28:16
ještě mě napadlo tohle :-) a funguje to tak na půl :D dal jsem na začátek thole:
$dotaz = mysql_query("SELECT id FROM clanky"); while($zaznam = mysql_fetch_array($dotaz)){ $id_clanku = $zaznam["id"]; } |
||
Bertram Profil |
#12 · Zasláno: 13. 12. 2011, 12:48:19
Nevím, jestli jsi zkoušel #10, ale možná v $id_clanku není to co tam má být.
Také bych na to id s $_GET použil toto: $id_clanku = intval($_GET["id_clanku"]); |
||
negr Profil |
#13 · Zasláno: 13. 12. 2011, 13:01:24
#10 jsem udělal a vypsalo mi to co jsem změnil, ale v db se to nezměnilo ani na webu jen v tom výpisu což je logické :D
$id_clanku = intval($_GET["id_clanku"]); to taky nepomohlo :-/
To je zoufalé nebo spíš já jsem zoufalý :-/ Asi to pak zkusím někdy přepsat znova ale pořád nevím kde je chyba, takže nevím co tam budu přepisovat :-( |
||
Taps Profil |
#14 · Zasláno: 13. 12. 2011, 13:28:51 · Upravil/a: Taps
negr:
zkus toto $id_clanku = intval($_GET["id"]); |
||
Bertram Profil |
#15 · Zasláno: 13. 12. 2011, 13:51:31 · Upravil/a: Bertram
negr:
„#10 jsem udělal a vypsalo mi to co jsem změnil, ale v db se to nezměnilo ani na webu jen v tom výpisu což je logické :D“ To jsme se nepochopili :) pokud ti : mysql_query("SELECT seznam_sloupců FROM clanky WHERE id=$id_clanku"); Ještě poddotaz, je sloupec id autoincrement? |
||
jenikkozak Profil |
#16 · Zasláno: 13. 12. 2011, 14:05:51
Taps:
„$id_clanku = intval($_GET["id"]);“ Myslíš $_POST["id"] , že?
Z adresy se dá získat (jestli vůbec) $_GET["id_clanku"]. |
||
negr Profil |
#17 · Zasláno: 13. 12. 2011, 19:22:38
už jsem to opravil :-) chyba byla v tom $id_clanku měl jsem to všude a v update jsem měl mít jen $id a ještě ve formuláři
jinak děkuji všem za odpovědi a za to že chtěli pomoct :-) Moc díky. |
||
Časová prodleva: 12 let
|
0