Autor | Zpráva | ||
---|---|---|---|
dom53 Profil |
#1 · Zasláno: 29. 11. 2015, 18:12:46
Dobrý den, chtěl bych si vytvořit seznam například filmů, které budu mít uložené v databázi a budou se mi vypisovat a zároveň bych chtěl mít možnost je editovat možnosti Hodnocení, Název atd...
Výpis z databáze mám vyřešený ale nevím si rady s editací, jelikož mi to přepíše všechny data podle posledního. VÝPIS Z DATABÁZE <form action="editace.php" method="post"> <input name="nameE" type="text"/> <input name="submit" type="submit" value="Odeslat"/> </form> <?php $server='localhost'; $uzivatel='root'; $heslo=''; $db='animelist'; $tb='kip'; $name = $_POST['name']; $nameE = $_POST['nameE']; $mysqli = new mysqli($server, $uzivatel, $heslo, $db); if ($mysqli->connect_error) { die('Nepodařilo se připojit k MySQL serveru (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); } $vysledek = $mysqli->query("SELECT `name`, `id` FROM `kip` WHERE id"); echo 'Z databáze jsme získali ' . $vysledek->num_rows . ' uživatelů.'; echo "<form action=\"editace.php\" method=\"post\">"; while ($uzivatel = $vysledek->fetch_assoc()) { printf("ID je: ".$uzivatel['id'].", Název je: ".$uzivatel['name']."<input name=\"nameE\" type=\"text\" value=\"".$uzivatel['name']."\"<br /><br />"); $name = $uzivatel['name']; } echo "<input name=\"submit\" type=\"submit\" value=\"Odeslat\"/><br /></from>"; //echo "<input name=\"submit\" type=\"submit\" value=\"Odeslat\"/><br /></from>"; $vysledek->free_result(); $mysqli->close(); ?> KÓD PRO EDITACI <?php $server='localhost'; $uzivatel='root'; $heslo=''; $db='animelist'; $tb='kip'; $name = $_POST['name']; $nameE = $_POST['nameE']; echo $nameE; $spojeni = mysql_connect($server, $uzivatel, $heslo); mysql_select_db($db, $spojeni); $zmena=mysql_query("UPDATE `$tb` SET `name` = '$nameE' WHERE `id` = `id`", $spojeni); //$spojeni->close(); ?> |
||
Fisir Profil |
Reaguji na doma53:
Funkce ve druhém skriptu mají začínat mysqli_ . V SQL dotazu máš naprosto zbytečnou podmínku `id` = `id` , ta vždy projde a změní tak všechny záznamy. Musíš si s formulářem posílat také ID záznamu a to pak použít v podmínce.
Ve skriptu máš bezpečnostní díru. Je třeba escapovat vstupy do databáze! Možná si myslíš, že se tě to netýká, jelikož to chceš sám pro sebe, ale schválně si vyzkoušej, co by se stalo, kdybys chtěl zadat název „ Naruto 'Shippuuden “.
|
||
dom53 Profil |
#3 · Zasláno: 29. 11. 2015, 18:36:36
Fisir:
S tím "Naruto 'Shippuuden" máš pravdu, vůbec mi to tam nezapisuje. Jinak děkuji za radu zkusím to podle tebe pořešit a kdyby něco napíši. |
||
Časová prodleva: 7 let
|
0