Autor Zpráva
dom53
Profil
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: