hilfdirselbst.ch
Facebook Twitter gamper-media
Anonym
Beiträge: 22827
29. Sep 2003, 11:07
Beitrag #1 von 4
Bewertung:
(510 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Problem beim Eintrag in die Datenbank


bei diesem PHP script trägt er mir nichts in die Datenbank ein:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<!-- php/joblist/input.php -->
<html>
<head>
<title>Eintragung in die Datenbank</title>
</head>
<body>
<?php

include("./mysql_connectinfo.inc.php");
// Verbindung zur Datenbank herstellen
$link = @mysql_pconnect($mysqlhost, $mysqluser, $mysqlpasswd);
if ($link == FALSE)
{
echo "<p><b>Leider kann keine Verbindung zur Datenbank hergestellt werden.
Daher können die Eregebnisse zurzeit nicht angezeigt werden.
Bitte versuchen Sie es später noch einmal.
</body></html>\n";
exit();
}
mysql_select_db($mysqldbname);

// falls Formulardaten zur Verfügung stehen:
// auswerten + speichern
if($submitbutton=="Eintragen")
{
if($Mitarbeiter>=1 && $Mitarbeiter<=3)
{
mysql_query(
"INSERT INTO JobTimeDate
(MitarbeiterID, FirmaID, Job, Time, Date)
VALUES ($Mitarbeiter, $Firma, '$Job', $Time, $Date)");

echo "<P><B>Die Eingabe war erfolgreich</B>";
}
else
{
echo "<p>Keine gültige Wahl. Bitte wählen Sie noch einmal.
Zurück zum <a href=\"./job.html\">Eingabeformular</a>.
</body></html>\n";
exit();
}
}

// Eingabebestätigung

?>
<p>Zum <a href="show.html">Stundenabfrageformular</a>.
</body>
</html>


in die IF-Schleife des INSERT INTO befehls kommt er auch rein, da immer dasteht das der Eintrag erfolgreich war...

Top
 
X
Miro Dietiker
Beiträge: 699
29. Sep 2003, 11:22
Beitrag #2 von 4
Beitrag ID: #52670
Bewertung:
(510 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Problem beim Eintrag in die Datenbank


Hi!

mysql_query() antwortet bei Erfolg NON-FALSE laut handbuch. Die
Richtige überprüfung über Erfolg der Datenbankabfrage sollte also
nach JEDEM query gemacht werden!

if(!mysql_query(.....)) // als eine Mögliche korrekte überprüfung
{ echo "IRGENDEINFEHLER"; }

Wenn dich jetzt noch interessiert, wieso es nicht gegangen ist,
und du die Textuelle Fehlermeldung von mysql haben willst, verwende:

if(!mysql_query(.....)) // als eine Mögliche korrekte überprüfung
{ echo "FEHLER(".mysql_errno()."): ".mysql_error(); }

Und schon steht dein Fehler auf dem Bildschirm!

PS: Date- und Time-Felder sollen in Quotes (wie 'datumsfeld'
oder "datumsfeld") stehen!

GrEeZ: Miro Dietiker
als Antwort auf: [#52662] Top
 
Peshay
Beiträge: 1
29. Sep 2003, 11:34
Beitrag #3 von 4
Beitrag ID: #52675
Bewertung:
(510 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Problem beim Eintrag in die Datenbank


ich versteh noch nicht ganz wie du des meinst mit "mögliche korrekte überprüfung"
soll ich also nur hinter mein query des mit dem echo Fehler reinschreiben?
oder brauch ich noch ne extra schleife zur überprüfung des querys?
übrigens ist mein Timefeld nur als ne zahl gespeichert.. also keine uhrzeit oder so.. sondern stundendauer
bin leider ziemlicher anfänger was des angeht.. also wärs nicht schlecht wenn du bei dem was bei mir steht (also nur der zuverändernde teil) so umschreibst wies halt aussehen soll
als Antwort auf: [#52662]
(Dieser Beitrag wurde von Peshay am 29. Sep 2003, 11:42 geändert)
Top
 
Miro Dietiker
Beiträge: 699
29. Sep 2003, 11:46
Beitrag #4 von 4
Beitrag ID: #52679
Bewertung:
(510 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Problem beim Eintrag in die Datenbank


Re..

Also es ist so:
Wenn eine Funktion "false" zurückgibt, wenn sie ein Fehler
meldet, so kann man auf sehr viele Arten die IF-Abfrage machen,
die prüft ob denn nun ein Fehler passiert ist oder nicht!

Als eine möglichkeit habe ich dir den Code...
<?PHP
if(!mysql_query(.....))
{ echo "MYSQL_MELDET_IRGENDEIN_FEHLER"; }
?>
... angegeben

Dass ich da auch noch eine Blocksignatur {} mache, auch wenn es eine
einzelne Zeile ist, ist reine Notationsangewohnheit von mir.
Natürlich geht auch:
<?PHP
if(!mysql_query(.....)) echo "MYSQL_MELDET_IRGENDEIN_FEHLER";
?>

Damit wir auch vom gleichen Reden: IF ist eine Bedingung und kann
nur einmal ausgeführt werden, wohingegen eine Schleife mit bsp.
FOR oder WHILE eingeleitet wird. Dabei wird ein Block {} dann meist
mehrmals durchgegangen, weshalb man ihm Schleife sagt.

GrEeZ: Miro Dietiker
als Antwort auf: [#52662] Top
 
X