Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Vložení více řádků do tabulky v databázi z formuláře

Každý príkaz, ktorý si pripravíš, musíš aj vykonať. Keď vykonáš len prvý, tak sa do databázy uloží len jeden riadok:

mysql_query("INSERT INTO st_aaa_tabulka VALUES('$id','$nazev','$kategorie','$kanal','$den','$datum','$cas','$recnik','$sub','$status','$poznamka')", $id_spojeni) or die(mysql_error());
if (isset($_POST['datum2'])) {
	$datum = $_POST['datum2'];
	mysql_query("INSERT INTO st_aaa_tabulka VALUES('$id','$nazev','$kategorie','$kanal','$den','$datum','$cas','$recnik','$sub','$status','$poznamka')", $id_spojeni) or die(mysql_error());
}
if (isset($_POST['datum3'])) {
	$datum = $_POST['datum3'];
	mysql_query("INSERT INTO st_aaa_tabulka VALUES('$id','$nazev','$kategorie','$kanal','$den','$datum','$cas','$recnik','$sub','$status','$poznamka')", $id_spojeni) or die(mysql_error());
}
if (isset($_POST['datum4'])) {
	$datum = $_POST['datum4'];
	mysql_query("INSERT INTO st_aaa_tabulka VALUES('$id','$nazev','$kategorie','$kanal','$den','$datum','$cas','$recnik','$sub','$status','$poznamka')", $id_spojeni) or die(mysql_error());
}
V prípade MySQL môžeš jedným príkazom vložiť viacero riadkov a keď si tie dátumové polia nazveš datum1..datum4, tak to môže vyzerať napríklad takto:
$sql_values = array();
for ($i = 1; $i <= 4; ++$i)
	if (isset($_POST["datum$i"])) {
		$datum = $_POST["datum$i"];
		$sql_values[] = "'$id','$nazev','$kategorie','$kanal','$den','$datum','$cas','$recnik','$sub','$status','$poznamka'";
	}
if ($sql_values)
	mysql_query('INSERT INTO st_aaa_tabulka VALUES (' . implode('), (', $sql_values) . ')', $id_spojeni) or die(mysql_error());
Nemáš tam vôbec ošetrené SQL injection, ale na to si už asi zvyknutý. A písal som to z hlavy, takže tam môžu byť chyby.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny