MySQL - Insert-Problem

NetPerformance

Erfahrenes Mitglied
Hallo

Ich habe ein Problem mit dem Insert-Paramater.
Das Einfügen funktioniert nicht ! Ich erhalte keine Fehlermeldung. Es passiert einfach nichts.

Aso.. Das auslesen funktioniert ohne Probleme !

Wäre für jede Hilfe dankbar.. bis jetzt konnte mir nämlich niemand helfen :(

Gruß
Aaron


PHP:
<html> 
<head> 
<title>In Datenbank einfügen</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 

<body> 
<p>Geben Sie einen vollst&auml;ndigen Datensatz ein und senden Sie das Formular ab : </p> 
<form action = "<?php $PHP_SELF ?>"  method = "post"><p> 
    <input name="nachname" type="text" size="30"> Nachname<p></p> 
    <input name="vorname" type="text" size="30"> Vorname<p></p> 
    <input name="personalnummer" type="text" size="30"> personalnummer (eine ganze Zahl)<p></p> 
    <input name="gehalt" type="text" size="30"> Gehalt (Nachkommastellen mit Punkt)<p></p> 
    <input name="geburtstag" type="text" size="30"> Geburtstag (in der Form JJJJ-MM-TT)<p></p> 

      <input name="einfuegen" type="submit" value="Senden"> 
</p> 
    <p>&nbsp;</p> 
    <p>Alle Datens&auml;tze anzeigen !</p> 
    <p> 
      <input type="submit" name="anzeigen" value="Anzeigen"> 
      </p> 
</form> 

<?php 

$server = "server"; 
$user   = "us"; 
$pass   = "pw"; 
$dbname = "db"; 

$nn=strip_tags($HTTP_POST_VARS["nachname"]); 
$vn=strip_tags($HTTP_POST_VARS["vorname"]); 
$pn=strip_tags($HTTP_POST_VARS["personalnummer"]); 
$gh=strip_tags($HTTP_POST_VARS["gehalt"]); 
$gb=strip_tags($HTTP_POST_VARS["geburtstag"]); 

if($einfuegen) // einfuegen = Submit-Button 
{ 
    // Server-connection 
    $connect = mysql_connect("$server","$user","$pass") or die(mysql_error()); 
    $db  = mysql_select_db("$dbname"); 
     
    /* 
    $query = "INSERT INTO person (name, vorname, personalnummer, gehalt, geburtstag) VALUES 
    ( 
        '$nn', 
        '$vn', 
        '$pn', 
        '$gh', 
        '$gb' 
    )"; 
    */ 
     
    $sql="INSERT INTO person SET 
         name='$nn', 
         vorname='$vn', 
         personalnummer='$pn', 
         gehalt='$gh', 
         geburtstag='$gb'"; 
     
    // $result = mysql_query($sql, $connect); 
} 

if($anzeigen) 
{ 
    mysql_connect("$server","$user","$pass") or die(mysql_error()); 
    $db  = mysql_select_db("$dbname"); 
    $res = mysql_query("SELECT * FROM person"); // Liefert alle Datensätze 
    $num = mysql_num_rows($res); // Anzahl der Datensätze 
     
    echo "$num Datensätze gefunden<br><br>"; 
    // Um alle Datensätze auszugeben 
    for($i=0; $i<$num; $i++) 
    { 
        $nn = mysql_result($res, $i, "name"); 
        $vn = mysql_result($res, $i, "vorname"); 
        $pn = mysql_result($res, $i, "personamnummer "); 
        $gh = mysql_result($res, $i, "gehalt"); 
        $gb = mysql_result($res, $i, "geburtstag"); 
     
        echo "$vn, $nn, $pn, $gh, $gb<br>"; 
    } 
} 

?> 
</body> 
</html>
 
Hallo, dass kann auch nichts werden, weil PHP meines Wissens Variablen, die in einem Hochkomma stehen einfach ingnoriert und so lieißt wie es da steht, also:
PHP:
$var = "name";
echo "$var"; //gibt name aus
echo '$var' //gibt $var aus

So und du hast in deinem SQL Statement: das hier stehen:
PHP:
$query = "INSERT INTO person (name, vorname, personalnummer, gehalt, geburtstag) VALUES
    (
        '$nn',
        '$vn',
        '$pn',
        '$gh',
        '$gb'
    )";
mache da mal bitte das hier drauß:
PHP:
$query = "INSERT INTO person (name, vorname, personalnummer, gehalt, geburtstag) VALUES
    (
        '".$nn."',
        '".$vn."',
        '".$pn."',
        '".$gh."',
        '".$gb."'
    )";

Ist eh übersichtlicher. ;)
 
Möglicherweise liegt es daran, dass du die entsprechende Zeile auskommenitiert hast. Siehe Zeile &asymp; 59.
 
Was ist denn das für einen PHP Version, weil du ja noch auf die "Standartvariablen" zugreifst:
PHP:
if($einfuegen) // einfuegen = Submit-Button
 
Ersetze mal bitte:
PHP:
$query = "INSERT INTO person (name, vorname, personalnummer, gehalt, geburtstag) VALUES
    (
        '".$nn."',
        '".$vn."',
        '".$pn."',
        '".$gh."',
        '".$gb."'
    )";

    /*
    $sql="INSERT INTO person SET
         name='$nn',
         vorname='$vn',
         personalnummer='$pn',
         gehalt='$gh',
         geburtstag='$gb'";
    */
    
    // $result = mysql_query($query, $connect);
mit:
PHP:
$query = "INSERT INTO person (name, vorname, personalnummer, gehalt, geburtstag) VALUES
    (
        '".$nn."',
        '".$vn."',
        '".$pn."',
        '".$gh."',
        '".$gb."'
    )";
$result = mysql_query($query, $connect) or die(mysql_error());
if (TRUE == $result) {
echo "Datensatz eingefügt"; //will nur testen ob er den Query ausführt
}

Weil MySQL spuckt nur einen Fehler mit mysql_error() aus.
 
Zurück