Problem mit Einträge in Datenbänken

Alles, was PHP betrifft, kann hier besprochen werden.

Problem mit Einträge in Datenbänken

Postby enne87 » 28. December 2005 19:36

Hi!

Ich habe versucht ein Programm zu schreiben, welches Schülerdaten in meine Datenbank speichert.
Leider funktioniert es nicht:
Code: Select all
<html>
<head>

</head>

<body>
<h1>Formular zur Eingabe von Sch&uuml;lerdaten</h1>

    <form action="eingabe.php" method="post" enctype="text/plain">
     <table border="3" cellpadding="0" cellspacing="4">
          <tr>
          <td align="left">Vorname:</td>
          <td><input name="vorname" stype="text" size="30" maxlength="40"></td></tr>
         
          <tr>
          <td align="left">Nachname:</td>
          <td><input name="zuname" type="text" size="30" maxlength="40"></td></tr>
     
          <tr>
          <td align="left">Klassenname:</td>
          <td><input name="klassenname" type="text" size="30" maxlength="40"></td></tr>
     
          <tr>
          <td align="left">Notennummer:</td>
          <td><input name="notennummer" type="text" size="30" maxlength="40"></td></tr>
     
          <tr>
          <td align="left">Laborname:</td>
          <td><input name="laborname" type="text" size="30" maxlength="40"></td></tr>
     
       <tr>
         <td><input type="submit" value="Speichern"></td></tr>
       <tr>
         <td><input type="reset" value="Löschen"></td></tr>

   
</table>
</form>

<?php

$server="localhost";
$user  ="root";
$pass  ="root";
$datenbank="w02b";

$q=mysql_connect($server,$user,$pass);
mysql_select_db($datenbank,$q);

mysql_query("INSERT INTO schüler VALUES ('vorname','$zuname','$klassenname','$notennummer','$laborname')");

?>

</body>
</html>

Wisst ihr zufällig, was ich da falsch gemacht habe?

mfg
enne87
 
Posts: 14
Joined: 01. December 2005 21:51

Postby Wiedmann » 28. December 2005 20:06

Ohne mir das Script jetzt genauer anzuschauen...

a) du setzt auf "register_globals=on"?
b) setze dein error_reporting auf E_ALL.
c) überprüfe Fehlermeldungen von MySQL (und lass diese ausgeben).
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby enne87 » 28. December 2005 20:11

ok, ich werds versuchen, thx :)
enne87
 
Posts: 14
Joined: 01. December 2005 21:51

Postby enne87 » 28. December 2005 20:32

Hm, ich bekomm dauern die Fehlermeldung "Duplicate entry '0' for key 1", weiß aber nicht warum.
enne87
 
Posts: 14
Joined: 01. December 2005 21:51

Postby enne87 » 28. December 2005 20:46

Mein Programm schaut jetzt so aus:

Code: Select all
 
<html>

<body>
<h1>Formular zur Eingabe von Sch&uuml;lerdaten</h1>

    <form action="eingabe.php" method="post" enctype="text/plain">
     <table border="3" cellpadding="0" cellspacing="4">
          <tr>
          <td align="left">Vorname:</td>
          <td><input name="vorname" stype="text" size="30" maxlength="40"></td></tr>
         
          <tr>
          <td align="left">Nachname:</td>
          <td><input name="zuname" type="text" size="30" maxlength="40"></td></tr>
     
          <tr>
          <td align="left">Klassenname:</td>
          <td><input name="klassenname" type="text" size="30" maxlength="40"></td></tr>
     
          <tr>
          <td align="left">Notennummer:</td>
          <td><input name="notennummer" type="text" size="30" maxlength="40"></td></tr>
     
          <tr>
          <td align="left">Laborname:</td>
          <td><input name="laborname" type="text" size="30" maxlength="40"></td></tr>
     
       <tr>
         <td><input type="submit" value="Speichern"></td></tr>
       <tr>
         <td><input type="reset" value="Löschen"></td></tr>

   
</table>
</form>

<?php

$server="localhost";
$user  ="root";
$pass  ="root";
$datenbank="w02b";

$q=mysql_connect($server,$user,$pass);
mysql_select_db($datenbank,$q);

mysql_query("INSERT INTO schüler VALUES

('$_POST[vorname]','$_POST[zuname]','$_POST[klassenname]','$_POST[notennummer]','$_POST[laborname]')") or die
(mysql_error());
error_reporting(E_ALL ^ E_NOTICE);

?>

</body>
</html>

Last edited by enne87 on 28. December 2005 21:36, edited 1 time in total.
enne87
 
Posts: 14
Joined: 01. December 2005 21:51

Postby Wiedmann » 28. December 2005 21:02

Mein Programm schaut jetzt so aus:

Und es tut jetzt? Ansonsten:

"Duplicate entry '0' for key 1"

Das dürfte daran liegen, dass das Query immer ausgeführt wird. Also auch schon beim Aufrufen des Formulares ohne Abschicken.

Hättest du dein error_reporting, wie oben geschrieben, anders eingestellt, hättest du das aber auch durch mehrere andere Meldungen schon bemerkt...
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby enne87 » 28. December 2005 21:23

Aja, das mit dem error_reporting hab ich ganz vergesssen. Ich weiß im Moment nur noch nicht , wie das geht.
Das Programm macht das gleiche wie vorher, sobald ich die Daten wegschicke und in der Datenbank nachschaue, steht da nur ein leerer Datensatz ohne Inhalt.
enne87
 
Posts: 14
Joined: 01. December 2005 21:51

Alle Fehler anzeigen

Postby Micha1975 » 01. January 2006 15:50

Der Code sollte so aussehen, damit die Fehleranzeige funktioniert:
Code: Select all
<?php

error_reporting( E_ALL );

$server="localhost";
$user  ="root";
$pass  ="root";
$datenbank="w02b";

$q=mysql_connect($server,$user,$pass);
mysql_select_db($datenbank,$q);

mysql_query("INSERT INTO schüler VALUES

('$_POST[vorname]','$_POST[zuname]','$_POST[klassenname]','$_POST[notennummer]','$_POST[laborname]')") or die
(mysql_error());

?>


Ansonsten fehlen in der Insertanweisung die Spaltennamen, in die die Werte eingetragen werden sollen. Normalerweise sieht das in der Form aus:
Code: Select all
INSERT INTO tabellenname (spaltenname, spaltename, ... ) VALUES ( wert, wert, ... );

Letzlich bin ich jemand, der zum Testen einen Server auf "register-globals = on" stellt, und erst das funktionierende Script zum Veröffentlichen anpasst. Aber das ist meine persönliche Ansicht, die muss nicht jeder teilen.
cu Micha
Ich denke, dass es einen Weltmarkt für vielleicht fünf Computer gibt. – Thomas Watson, Vorsitzender von IBM, 1943
Micha1975
 
Posts: 25
Joined: 29. December 2005 15:28


Return to PHP

Who is online

Users browsing this forum: No registered users and 12 guests