Autor | Zpráva | ||
---|---|---|---|
kuzmic Profil * |
#1 · Zasláno: 24. 11. 2009, 00:33:50
Dobrý večer,
chtěl bych Vás poprosit, jak jen to půjde, jestli by mi někdo neporadil jak docílit pomocí formuláře updatování konkrétního záznamu v databázi. Mám kod: <html> <head> <title>UPDATE</title> </head> <body> <?php include "connect.php"; $nazev_pojistovny = $_POST['nazev']; $kod_pojistovny = $_POST['kod']; if($_POST['update']) { mysql_query("UPDATE pojistovna SET nazev_pojistovny = '".$nazev_pojistovny."', kod_pojistovny = '".$kod_pojistovny."'"); } $sql = mysql_query("SELECT * FROM pojistovna")or die(mysql_error()); while($row = mysql_fetch_array($sql)) { echo "<form method='post'>"; echo "<input type='text' name='nazev' value=".$row['nazev_pojistovny'].">"; echo "<input type='text' name='kod' value=".$row['kod_pojistovny'].">"; echo "<input type='submit' name='update'>"; echo "</form>"; } ?> </body> </html> Bohužel se mi po editování například první položky, přepíšou na stejnou hodnotu všechny ostatní. Nevíte jak docílit toho, aby se u každého řádku měnili hodnoty samostatně?předem moc děkuji. |
||
Medvídek Profil |
#2 · Zasláno: 24. 11. 2009, 00:47:33
kuzmic:
Chybi ti tam napsat jeste ktera polozka se ma upravovat, takto se upraví všechny. Nejlépe je vytvořit sloupec s názvem třeba id a dát mu auto_increment. Při upravování pak budeš mít: $nazev_pojistovny = $_POST['nazev']; $kod_pojistovny = $_POST['kod']; $id_pojistovny=$_POST['kod']; mysql_query("UPDATE pojistovna SET nazev_pojistovny = '".$nazev_pojistovny."', kod_pojistovny = '".$kod_pojistovny."' WHERE id = '".$id_pojistovny."' "); |
||
kuzmic Profil * |
#3 · Zasláno: 24. 11. 2009, 00:59:43
Provedl jsem změny jak jste napsal, vytvořil jsem si ještě sloupec v databázi s názvem id_pojistovny a nastavil mu auto_increment, akorát že s tímto nastavením, se už hodnoty neupdatují vůbec, jen se to refrešne a načtou se tam hodnoty co jsou v databázi původně před upravou:-/. Nevíte kde je chyba?
<html> <head> <title>UPDATE</title> </head> <body> <?php include "connect.php"; $nazev_pojistovny = $_POST['nazev']; $kod_pojistovny = $_POST['kod']; $id_pojistovny=$_POST['kod']; if($_POST['update']) { mysql_query("UPDATE pojistovna SET nazev_pojistovny = '".$nazev_pojistovny."', kod_pojistovny = '".$kod_pojistovny."' WHERE id_pojistovny = '".$id_pojistovny."' "); } $sql = mysql_query("SELECT * FROM pojistovna")or die(mysql_error()); while($row = mysql_fetch_array($sql)) { echo "<form method='post'>"; echo "<input type='text' name='nazev' value=".$row['nazev_pojistovny'].">"; echo "<input type='text' name='kod' value=".$row['kod_pojistovny'].">"; echo "<input type='submit' name='update'>"; echo "</form>"; } ?> </body> </html> ještě přidám jak vypadá položka v databázi CREATE TABLE IF NOT EXISTS `pojistovna` ( `id_pojistovny` int(10) NOT NULL AUTO_INCREMENT, `nazev_pojistovny` varchar(30) CHARACTER SET utf8 COLLATE utf8_czech_ci DEFAULT NULL, `kod_pojistovny` varchar(30) CHARACTER SET utf8 COLLATE utf8_czech_ci DEFAULT NULL, PRIMARY KEY (`id_pojistovny`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ; |
||
Kacko Profil |
#4 · Zasláno: 24. 11. 2009, 01:11:42
kuzmic:
"UPDATE pojistovna SET nazev_pojistovny = '".$nazev_pojistovny."', kod_pojistovny = '".$kod_pojistovny."' WHERE kod_pojistovny = '".$kod_pojistovny."' " Pokud je kod_pojistovny unikatni(mel by byt), je id_pojistovny zbytecne. |
||
Medvídek Profil |
#5 · Zasláno: 24. 11. 2009, 01:26:46 · Upravil/a: Medvídek
kuzmic:
To bude asi tímto: $id_pojistovny=$_POST['kod']; Ale pokud máte kód pojišťovny unikátní a nikde se neopakuje, tak to lze řešit jak psal Kacko, ale v každym případě bych mu nastavil unique. |
||
kuzmic Profil * |
#6 · Zasláno: 24. 11. 2009, 10:50:29
neporadili by jste prosím jak na ten unique?zkoušel jsem to jako přidat k proměnné $_POST['kod'], ale nepomohlo to:-(. V obou případech jak přes kod_lekarny tak před id_lekarny to pořád neupdatuje ani jednu položku, a načte to hodnotu z databáze co tam už je:-(.
|
||
retro Profil * |
#7 · Zasláno: 24. 11. 2009, 13:32:54
kuzmic:
while($row = mysql_fetch_array($sql)) echo "<form method='post'>"; echo "<input type='text' name='nazev' value=".$row['nazev_pojistovny'].">"; echo "<input type='text' name='kod' value=".$row['kod_pojistovny'].">"; echo "<input type='submit' name='update'>"; ... Přidejte skryté políčko s id pojistovny, zhruba nejak takhle echo "<input type='hidden' name='id' value=".$row['id_pojistovny'].">"; a $id_pojistovny=$_POST['kod']; přepište na $id_pojistovny=$_POST['id']; |
||
kuzmic Profil * |
#8 · Zasláno: 24. 11. 2009, 14:23:17
Všem moc děkuju, tohle bylo ono. Mějte se
|
||
Časová prodleva: 16 let
|
0