Hi,
ich bin ein ziemlicher PHP/SQL Neuling.
Ich habe eine einfache SQL Tabelle mit 5 Spalten (ID, Ident, Ort, Prio, Datum).
Die Tabelle fülle ich mit unten stehenden Formular.
Nun soll bevor ein Eintrag in die SQL-Tabelle erfolgt, zuerst die Spalte "Ident" mit dem Wert aus $ident verglichen werden. Bei Übereinstimmung soll zuerst die vorhandene Zeile der SQL-Tabelle gelöscht und anschließend der neue Eintrag in die Tabelle eingetragen werden.
Wer kann hier helfen?
Grüße
Schmakus
ich bin ein ziemlicher PHP/SQL Neuling.
Ich habe eine einfache SQL Tabelle mit 5 Spalten (ID, Ident, Ort, Prio, Datum).
Die Tabelle fülle ich mit unten stehenden Formular.
Nun soll bevor ein Eintrag in die SQL-Tabelle erfolgt, zuerst die Spalte "Ident" mit dem Wert aus $ident verglichen werden. Bei Übereinstimmung soll zuerst die vorhandene Zeile der SQL-Tabelle gelöscht und anschließend der neue Eintrag in die Tabelle eingetragen werden.
Wer kann hier helfen?
Grüße
Schmakus
PHP-Code:
<?php
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "livetracking";
if (isset( $_POST['eintragen'] ))
{
// Maskierende Slashes aus POST entfernen
$_POST = get_magic_quotes_gpc() ? array_map( 'stripslashes', $_POST ) : $_POST;
// Inhalte der Felder aus POST holen
$ort = $_POST['ort'];
$ident = $_POST['ident'];
$prio = isset( $_POST['prio'] ) ? 1 : 0;
$date = 'NOW()';
/* ************************************************************************************************ */
/* *** Hier sollten und MUESSEN die Benutzereingaben geprueft werden um Schadcode abzufangen!!! *** */
/* ************************************************************************************************ */
// Sind alle Eingaben durch die Validierung gekommen werden sie in die DB geschrieben
// Verbindung oeffnen und Datenbank ausweahlen
$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
if ($conID)
{
mysql_select_db( $db_name, $conID );
}
// Anfrage zusammenstellen der an die DB geschickt werden soll
$sql = "INSERT INTO `tracking`
(`ident`, `ort`, `prio`, `datum`)
VALUES(
'" .mysql_real_escape_string( $ort ). "',
'" .mysql_real_escape_string( $ident ). "',
" .$prio. ",
NOW()
)";
// Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle
mysql_query( $sql );
// Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde
if (mysql_affected_rows() == 1)
{
echo "<h3>Der Datensatz wurde hinzugefügt!</h3>";
// Hier kann weiterer Code stehen der ausgefuehrt werden soll
// wenn ein Eintrag erfolgreich war. z.B. Email an den Admin schicken
// der ueber den neuen Eintrag informiert
}
else
{
echo "<h3>Der Datensatz konnte <strong>nicht</strong> hinzugefügt werden!</h3>";
// Hier koennen Massnahmen ergriffen werden die ueber den Misserfolg informieren
// wie z.B. den Benutzer darueber zu informieren, dem Admin eine Mail schicken
// damit er sich um den Fehler kuemmern kann, etc pp
}
}
?>
<!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" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formularinhalt in eine Datenbank schreiben</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" id="formular">
Ort: <input type="text" name="ort" id="ort" /><br />
Prüfling: <input type="text" name="ident" id="ident" /><br />
Fast Lane: <input type="checkbox" name="prio" id="prio" /><br />
<input type="submit" name="eintragen" id="eintragen" value="Abschicken" />
</form>
</body>
</html>
Kommentar