Autor | Zpráva | ||
---|---|---|---|
janvoz Profil * |
#1 · Zasláno: 19. 1. 2011, 14:41:48
Mám vytvořený výpis článků z databáze. Každý článek má svoje ID. Podle id potom vybírám informace z tabulky o článku, které dosazuji do formuláře na stránce edit.php, kde se má po odeslání formuláře provést update. Update dat se však nikdy neprovede.
edit.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> <title></title> </head> <body> <h1>Editace</h1> <a href="member-index.php">Přehled</a> | <a href="member-stranky.php">Statické stránky</a> | <a href="member-profile.php">Napsat novinky</a> | <a href="member-nastaveni.php">Nastavení</a> | <a href="logout.php">Logout</a> <br> <script type="text/javascript" src="./tiny_mce/tiny_mce.js"></script> <script type="text/javascript"> tinyMCE.init({ // General options language : "cs", mode : "textareas", theme : "advanced", plugins : "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview, media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars, nonbreaking,xhtmlxtras,template,imagemanager,filemanager", // Theme options theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,| ,styleselect,formatselect,fontselect,fontsizeselect", theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,| ,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor", theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell ,media,advhr,|,print,|,ltr,rtl,|,fullscreen", theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,| ,cite,abbr,acronym,del,ins,attribs,| ,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_statusbar_location : "bottom", theme_advanced_resizing : true, // Example content CSS (should be your site CSS) content_css : "css/example.css", // Drop lists for link/image/media/template dialogs template_external_list_url : "js/template_list.js", external_link_list_url : "js/link_list.js", external_image_list_url : "js/image_list.js", media_external_list_url : "js/media_list.js", // Replace values for the template plugin template_replace_values : { username : "Some User", staffid : "991234" } }); </script> <? require_once('auth.php'); include"db.php"; $id=$_GET['id']; echo $id; $edit = MySQL_Query("SELECT nadpis, zprava, datim, id FROM clanky WHERE id ='$id'"); while ($editace = MySQL_Fetch_Array($edit)) { ?> <form method="post" action="edit.php?id=<? echo $editace["id"];?>"> <input type="input" name="nadpis" value="<? echo $editace["nadpis"];?>"> <input type="input" name="id" value="<? echo $editace["id"];?>"> <textarea name="zprava" style="width:50%"><? echo $editace["zprava"];?></textarea> <input type="submit" value="odeslat"></td></form> <?}?> </form> </body> </html> <? $nadpis = $_POST['nadpis']; $zprava = $_POST['zprava']; $datum = StrFTime("%Y/%m/%d %H:%M:%S", Time()); $id = $_POST['id']; if($zprava=="") {} else{ $update= mysql_query("UPDATE clanky SET nadpis = '$nadpis', zprava ='$zprava', datim='$datum', id='$id'"); } ?> část - index.php print "<a href='edit.php?id=$zaznam[id]' title='upravit'>upravit</a>"; Kde je chyba? Děkuji |
||
janvoz Profil * |
#2 · Zasláno: 19. 1. 2011, 14:55:10
Teda vlastně se úprava provede, ale aktualizují se mi všechny zápisy v tabulce, a ne jenom ten jeden požadovaný...
|
||
janvoz Profil * |
#3 · Zasláno: 19. 1. 2011, 15:01:37
OK, Děkuji za pomoc.
Správné řešení: <? $nadpis = $_POST['nadpis']; $zprava = $_POST['zprava']; $datum = StrFTime("%Y/%m/%d %H:%M:%S", Time()); $id2 = $_POST['id']; if($zprava=="") {} else{ $update= mysql_query("UPDATE clanky SET nadpis = '$nadpis', zprava ='$zprava', id='$id2' WHERE id ='$id'"); } ?> Prosím SMAZAT |
||
BuGeR Profil |
#4 · Zasláno: 19. 1. 2011, 15:03:48 · Upravil/a: BuGeR
Všechny data se ti aktulizují, protože v tom příkazu nevybíráš (WHERE) žádný řádek, takže to bere všechno..
zkus: $update= mysql_query("UPDATE clanky SET nadpis = '$nadpis', zprava ='$zprava', datim='$datum' WHERE id='$id'"); edit: pozdě :( |
||
janvoz Profil * |
#5 · Zasláno: 19. 1. 2011, 15:09:51
To nevadí, stejně děkuji. Mám ale pocit, že by ten tvůj příklad nefungoval, protože ve formuláři mám možnost editovat i ID a podmínka by se tedy nesplina protože v $id by byla nová hodnota z formuláře :-). Mám pravdu?
|
||
BuGeR Profil |
#6 · Zasláno: 19. 1. 2011, 15:12:49
ano, moc jsem si ten tvůj html kód neprohlížel, spíš jsem se zaměřil na ten příkaz :-) .. jinak myslíš si že je moudré měnit ID článku?
|
||
janvoz Profil * |
#7 · Zasláno: 19. 1. 2011, 15:14:05
Asi ne...
|
||
candiess Profil |
#8 · Zasláno: 19. 1. 2011, 15:39:43
a je třeba to ošetřit proti SQL Injection, například funkcí mysql_real_escape_string();.. ;)
|
||
janvoz Profil * |
#9 · Zasláno: 19. 1. 2011, 15:43:01
candiess:
No dobře, zjistím si, co to je :-) |
||
Časová prodleva: 13 let
|
0