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>
 
          

Comment