helmuthelmut2000
Goto Top

Mit PHP Formular in DB schreiben funktioniert nicht

Hallo,

Ich habe ein Problem mit mienem ersten Formular wo ich Daten in eine
MySql DB schreiben will, kann mir da jemand helfen?

Wenn ich das Formular abschicke dann werden die Felder wieder leer gemacht
und es wird nichts in die DB geschrieben.
Weis jemand warum??

<html>
<head>
<?php
   if  (isset($gesendet))
   {
  mysql_connect();
  mysql_select_db("firma");  
  
  $sqlab  = "insert personen";  
  $sqlab .= "(name, vorname, personalnummer,";  
  $sqlab .= " gehalt, geburtstag) values ";  
  $sqlab .= "('$na', '$vn', $pn, $ge, '$gt')";  
    
  mysql_query($sqlab);
  
  $num = mysql_affected_rows();
  if ($num>0)
     echo "Es wurde 1 Datensatz hinzugef&uuml;gt<p>";  
  else
  {
     echo "Es ist ein Fehler aufgetreten, ";  
     echo "es wurde kein Datensatz hinzugef&uuml;gt<p>";  
   }
 }
?>
</head>
<body>
Geben Sie einen vollst&auml;ndigen Datensatz ein und senden Sie das formular ab:
<form action = "ud13.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&auml;tze <a href="ud07.php">anzeigen</a>  
</body>
</html>

Wenn mir da jemand den Fehler finden würde wäre ich sehr Dankbar.

Gruß
Helmut

Content-Key: 36421

Url: https://administrator.de/contentid/36421

Ausgedruckt am: 29.03.2024 um 11:03 Uhr

Mitglied: Dani
Dani 20.07.2006 um 20:21:04 Uhr
Goto Top
Hi,
probier es mal so:
<html>
<head>
<?php

define ('MYSQL_HOST','localhost');  
define ('MYSQL_USER','BENUTZER');  
define ('MYSQL_PASS','PASSWORT');  
define ('MYSQL_DATABASE','DATENBANK');  

$db_link=mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS);
$select=mysql_select_db(MYSQL_DATABASE);

if (isset($gesendet))
{

$sql="INSERT INTO personen (name, vorname, personalnummer, gehalt, geburtstag)  
		  VALUES (NULL , '".$_POST['na']."', '".$_POST['vn']."', '".$_POST['pn']."', '".$_POST['ge']."', '".$_POST['gt']."');";  
mysql_query($sql);

$num = mysql_affected_rows();
if ($num > 0)
echo "Es wurde 1 Datensatz hinzugef&uuml;gt<p>";  
else
{
echo "Es ist ein Fehler aufgetreten, ";  
echo "es wurde kein Datensatz hinzugef&uuml;gt<p>";  
}
}
?>
</head>
<body>
Geben Sie einen vollst&auml;ndigen Datensatz ein und senden Sie das formular ab:
<form action = "ud13.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&auml;tze <a href="ud07.php">anzeigen</a>  
</body>
</html>

Gruß
Dani
Mitglied: helmuthelmut2000
helmuthelmut2000 20.07.2006 um 22:35:34 Uhr
Goto Top
Hallo,

Erstmal danke für die schnelle Antwort.
Aber das funktioniert leider auch nicht.
Also wenn ich Daten ins Formular eingebe,
und dann auf Anfrage senden gehe dann löscht
es nur meine Daten wieder raus und nichts wird in die
DB geschrieben,
Es gibt auch keine Fehlermeldung.

Woran könnte das noch liegen??

Danke.

Gruß
Helmut
Mitglied: Dani
Dani 20.07.2006 um 22:41:35 Uhr
Goto Top
Hi,
du solltest erst mal ganz oben deine Daten angeben für den MySQL Server. Danach vergewissern, dass es die Datenbank gibt. Daraufhin überprüfen, ob die Tabelle mit genau den angegebenen Spalten vorhanden ist!


Gruß
Dani
Mitglied: helmuthelmut2000
helmuthelmut2000 20.07.2006 um 22:47:37 Uhr
Goto Top
Hallo,

Ja klar das hab ich gemacht,
Ich habe den Benutzername und das Passwort geändert.
Ich habe die dB gelöscht und auch neu angelegt und mit
<a href="ud07.php">  
anzeigen, kann ich auf die DB zugreifen.
ud07.php sieht so aus:

<html>
<body>
<?php
  mysql_connect();
  mysql_select_db("firma");  
  $res = mysql_query("select * from personen");  
  $num = mysql_num_rows($res);
  
  //Tabellenbeginn
  echo "<table border>";  
  
  //Ueberschrift
  echo "<tr><td>Lfd.  
Nr.</td><td>Name</td>";  
  echo "<td>Vorname</td>  
        <td>Personal-
nummer</td>";  
  echo "<td>Gehalt</td> <td>Geburtstag</td> </tr>";  
  
  $lf = 1;
  
  while ($dsatz = mysql_fetch_assoc($res))
  {
     echo "<tr>";  
     echo "<td>$lf</td>";  
     echo "<td>" . $dsatz["name"] . "</td>";  
     echo "<td>" . $dsatz["vorname"] . "</td>";  
     echo "<td>" . $dsatz["personalnummer"] . "</td>";  
     echo "<td>" . $dsatz["gehalt"] . "</td>";  
     echo "<td>" . $dsatz["geburtstag"] . "</td>";  
     echo "</tr>";  
     $lf = + 1;
  }            
  //Tabellenende
  echo "</table>";  
?>
</body>
</html>

Gruß
Helmut
Mitglied: Dani
Dani 20.07.2006 um 22:51:17 Uhr
Goto Top
Hi,
probier wirklich mal meins. Ich habe es grad probiert! => Es geht.


Gruß
Dani
Mitglied: helmuthelmut2000
helmuthelmut2000 20.07.2006 um 23:04:41 Uhr
Goto Top
Hallo,

Hab ich schon, aber geht nicht.
Habe ich da ein fehler in der DB?

Gruß
Helmut

P.S. Oder liegt es an verschiedene versionen.
Ich mach das mit PHP5 und Mysql 5

Mit welchen Versionen hast du das Probiert?
Mitglied: helmuthelmut2000
helmuthelmut2000 21.07.2006 um 21:46:35 Uhr
Goto Top
Hallo,

Jetzt hab ich das mal mit MySql4.1 versucht da geht es auch nicht.
Da gibt es doch einen Befehl den man mit reinschreibt, wo man dann
sieht in welcher Zeile der Fehler ist.
Weis den vielleicht jemand?


Gruß
Helmut
Mitglied: Xaero1982
Xaero1982 22.07.2006 um 00:12:40 Uhr
Goto Top
Lad dir mal den MySQL Query Browser runter.
Starte die MySQL Konsole und zeig mal den dump. Also die sicherung wie deine dp aussieht.
Mitglied: helmuthelmut2000
helmuthelmut2000 22.07.2006 um 10:03:01 Uhr
Goto Top
Hallo,

Ich habe das PHPMyadmin installiert geht das da auch?

Ich habe schon in der DB nur mit zwei Spalten das probiert,
also nur mit Name und Vorname. Das geht auch nicht.
Mich wunder nur das ich die Daten aus der DB lesen kann wenn
ich die mit PHPMyadmin reinschreibe.
Liegt es vielleicht an den Berechtigungen?
Ich habe aber alle Hacken drin also volle berechtigung.

Gruß
Helmut
Mitglied: Dani
Dani 22.07.2006 um 11:13:50 Uhr
Goto Top
Hi,
sry, ich hab dir den falschen Code gepostet! face-wink
Der hier geht:
<html>
<head>
<?php

define ('MYSQL_HOST','localhost');  
define ('MYSQL_USER','root');  
define ('MYSQL_PASS','test');  
define ('MYSQL_DATABASE','helmut');  

$db_link=mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS);
$select=mysql_select_db(MYSQL_DATABASE);

if (isset($_POST['gesendet']))  
{

$sql="INSERT INTO personen (id, name, vorname, personalnummer, gehalt, geburtstag)  
          VALUES (NULL , '".$_POST['na']."', '".$_POST['vn']."', '".$_POST['pn']."', '".$_POST['ge']."', '".$_POST['gt']."');";  
mysql_query($sql);

$num = mysql_affected_rows();
if ($num > 0)
echo "Es wurde 1 Datensatz hinzugef&uuml;gt<p>";  
else
{
echo "Es ist ein Fehler aufgetreten, ";  
echo "es wurde kein Datensatz hinzugef&uuml;gt<p>";  
}
}
?>
</head>
<body>
Geben Sie einen vollst&auml;ndigen Datensatz ein und senden Sie das formular ab:
<form action = "<? echo $PHP_SELF; ?>" 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&auml;tze <a href="ud07.php">anzeigen</a>  
</body>
</html>

Gruß
Dani
Mitglied: helmuthelmut2000
helmuthelmut2000 22.07.2006 um 21:41:50 Uhr
Goto Top
Hallo,

Danke,

Ich komme weiter, aber mit einer neuen Fehlermeldung:

Forbidden
You don't have permission to access /< on this server.  

Apache/2.0.55 (Win32) PHP/5.1.4 Server at localhost Port 80

Sagt dir die Fehlermeldung was?
Ich habe natürlich Passwort und DB name geänder.

Gruß
Helmut
Mitglied: Dani
Dani 22.07.2006 um 23:09:26 Uhr
Goto Top
Hi,
hört sich so an, als die Datei nicht die nötigen Rechte hat. Mach mal chmod 755 DATEINAME.


Gruß
Dani
Mitglied: helmuthelmut2000
helmuthelmut2000 23.07.2006 um 12:37:53 Uhr
Goto Top
Hallo,

Jetzt bekomme ich die Fehlermeldung:

Es ist ein Fehler aufgetreten, es wurde kein Datensatz hinzugefügt


Gibt es das noch???

Gruß
Helmut
Mitglied: helmuthelmut2000
helmuthelmut2000 23.07.2006 um 13:31:00 Uhr
Goto Top
Hallo,

Jetzt hab ich noch folgendes Probiert.

Ich habe den Befehl
if (mysql_errno()) die ("MySQL-Error:" . mysql_error());  

nach der Zeile
mysql_query($sql);

eingefügt.

Jetzt bekomme ich die Fehlermeldung:

MySQL-Error:Unknown column 'id' in 'field list'  

Ist das richtig so??

Gruß
Helmut
Mitglied: helmuthelmut2000
helmuthelmut2000 23.07.2006 um 13:57:24 Uhr
Goto Top
Hallo,,,,


Ich habs es funtzt.


Ich habe in der Zeile
personen (id, name, vorname...    das id entfernt,

und in der Zeile
VALUES (NULL , '".$_POST[....     das NULL  entfernt.  

Dann gehts.

Aber ist das richtig?
Was bedeutet das id und NULL braucht man das?
Muß ich da eine Spalte dafür hinzufügen?

Gruß
Helmut
Mitglied: Xaero1982
Xaero1982 23.07.2006 um 14:20:52 Uhr
Goto Top
Also aus deinem Eingangspost lese ich, dass du schon mit DB gearbeitet hast.

Kommt mir nicht so vor :/

Du solltest schon wissen wie deine Tabelle "personen" aufgebaut ist. Ob du da nen PKey hast und wie der heißt und welchen Typ dieser hat. Vielleicht ne PersonenId die du manuell eingibst oder eine Fortlaufende .. DAS musst du wissen, deswegen bat ich dich uns mal deine Tabelle zu posten.

bzw. aus dem Post konnt ich das lesen: Mit einem PHP-Formular in eine MSSQL-DB schreiben
Mitglied: helmuthelmut2000
helmuthelmut2000 23.07.2006 um 19:48:53 Uhr
Goto Top
Hallo,

Ja alles klar,
Jetzt weis ichs.
Ich habe immer nur mit MSSQL2000 gearbeitet.
PHPmyadmin ist total neu für mich,
aber wo du das jetzt schreibst leuchtet mirs ein.

Danke nochmal für alles.

Gruß
Helmut
Mitglied: Xaero1982
Xaero1982 23.07.2006 um 19:52:07 Uhr
Goto Top
Fein fein .. auch wenn du noch nicht auf meine Bitte eingegangen bist.