Datensätze einfügen (insert) Problem

BladeNeo

Erfahrenes Mitglied
Hi Leute..

Ich hab jetzt schon die ganze Zeit irgendein Problem Datensätze in eine Datenbank einzufügen... kann mir bitte jemand helfen?
Ich stell euch mal den Code zur Verfügung.. leider tut sich nichts wenn ich auf den Button zum versenden klicke.. keine Fehlermeldung, einfach nichts.. und natürlich auch keine neuen Datensätze in der DB.

insert.php
PHP:
<html>
<head>
<?php
   if ($gesendet)
   {
      $db = mysql_connect("localhost", "root");

      $sqlab = "insert personen";
      $sqlab .= "(name, vorname, personalnummer,";
      $sqlab .= " gehalt, geburtstag) values ";
      $sqlab .= "('$na', '$vn', $pn, $ge, '$gt')";

      mysql_db_query("db", $sqlab);

      $num = mysql_affected_rows();
      if ($num>0)
         echo "Es wurde 1 Datensatz hinzugefügt<p>";
      else
      {
         echo "Es ist ein Fehler aufgetreten, ";
         echo "es wurde kein Datensatz hinzugefügt<p>";
      }
      mysql_close($db);
   }
?>
</head>

<body>
Geben Sie einen vollständigen Datensatz ein und senden Sie das 
Formular ab:
<form action = "insert.php" method = "post">
    <input name="na"> Name<p>
    <input name="vn"> Vorname<p>
    <input name="pn"> Personalnummer (eine ganze Zahl)<p>
    <input name="ge"> Gehalt (Nachkommastellen mit Punkt)<p>
    <input name="gt">
                 Geburtsdatum (in der Form JJJJ-MM-TT)<p>
    <input type="submit" name="gesendet">
    <input type="reset">
</form>

Alle Datensätze <a href="index2.php">anzeigen</a>
</body>
</html>

MfG,
BladeNeo
 
Meiner Meinung nach fehlt da ein INTO im SQL String.

Es müsste doch INSERT INTO Personen .... heissen?
 
Hi!

Danke für die Hilfe, aber leider bringt das INTO auch nichts ;(
Hab's mal versucht mit dem hier:

if (isset($_POST['gesendet']) ==" OK ") {
und unten noch dem Button die value " OK " gegeben.. hier bringt er wenigstens die Fehlermeldung: Es ist ein Fehler aufgetreten,
es wurde kein Datensatz hinzugefügt

hab jetzt auch versucht so zu connecten:
$dbname="db";
$dbhost="localhost";
$dbuser="root";
$dbpass="";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);

bringt aber nix.. immer noch kein Meldung

[EDIT]

Ich denke mal, dass es an der Zeile hier liegt:
$sqlab .= "('$na', '$vn', '$pn', '$ge', '$gt')";
Mit Hochkomma u.s.w.. kann da jemand mal nachschauen und mir des bitte erklären wie des da mit den hochkommas abläuft?

MfG,
BladeNeo
 
Zuletzt bearbeitet:
Original geschrieben von BladeNeo
Ich hab jetzt schon die ganze Zeit irgendein Problem Datensätze in eine Datenbank einzufügen... kann mir bitte jemand helfen?
Also, erstens: Verwende Doch bitte nicht die veraltete Funktion mysql_db_query()

Anmerkung: Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden.

Quelle: http://de2.php.net/mysql_db_query

Dann, zweitens: Verwende Doch bitte mal bei allen Formular-Werten das $_POST-Array, auch innerhalb der SQL-Anweisung.

Drittens: Wenns dann immer noch nicht klappt, lass Dir doch bitte mal den Inhalt der SQL-Anweisung ausgeben. Alternativ kannst Du Dir mittles mysql_error() die genaue SQL-Fehlermeldung ausgeben lassen.
 
Hi Chino.. danke für den Tipp..

jetzt funktioniert es endlich..

Kann es mit meiner index.php ausgeben, jedoch klappt es nicht mit der index2.php (gleiche Funktion wie index.php, soll jedoch tabellen erstellen und Datensätze einfügen).
Diese Meldung kommt:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\programme\wamp\homepages\db5\index2.php on line 17

2x und darunter auch 2 Einträge (die ich in die DB eingefügt habe).

Line 17 wäre:
PHP:
	$nn = mysql_result(§res, $i, "name");

[EDIT]

Bin wohl ziemlich müde heute ;) der Fehler ist ja klar, muss man nur die augen aufmachen :rolleyes: soll natürlich $res anstatt §res heißen. sry.. trotzdem danke für die schnelle Hilfe!


MfG,
BladeNeo
 
Zuletzt bearbeitet:
Zurück