PHP Formular Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
bemerkung
bild
code
dank
date
datenbank
datum
eintrag
eintragen
ergebnis
fehler
formular
gerte
http
raum bemerkung
tabelle
url
verbindung
zeile
-
Hi all,
Also hier mein Problem,
Also... Und zwar habe ich ein Formular erstellt Hier ein Screenshot: [IMG]http://img293.imageshack.us/img293/2208/formularxb8.th.png[/IMG]
Nur wie ihr seht ist das bei Überblick der Daten so komisch verschoben und alles. Hier mein Script und ich hoffe ihr könnt mir helfen ;)
<?php
mysql_connect(\"localhost\",
\"root\",\"\") or die
(\"Keine Verbindung moeglich\");
mysql_select_db(\"leihsystem\")or die
(\"Die Datenbank existiert nicht\");
?>
<body bgcolor=\"#663333\" text=\"#FFCC99\" link=\"#FF9966\" vlink=\"#FF9900\" alink=\"#FFFFFF\">
<h1 align=\"center\"><u>Geräte Reservierung</u></h1>
<h3 align=\"left\"> Bitte folgendes Formular ausfüllen!!</h3>
<Form action=\"Leihsystem2.php\"Method=\"POST\">
<br> Name
<input name=\"Name\" size=\"30\" maxlength=\"100\">
<br>
<p> Von Datum: <input name=\"Datum1\" size=\"30\" maxlength=\"30\"> Von Zeit: <input name=\"Zeit1\" size=\"30\" maxlength=\"30\"> Aktuelles Datum und Uhrzeit:</h4>
<?php
$timestamp = time();
?>
<?php
$datum = date(\"d.m.Y\",$timestamp);
$uhrzeit = date(\"H:i\",$timestamp);
echo $datum.\" - \".$uhrzeit.\" Uhr\";
?>
<br>
<br>
<p> Bis Datum: <input name=\"Datum2\" size=\"30\" maxlength=\"30\"> Bis Zeit: <input name=\"Zeit2\" size=\"30\" maxlength=\"30\">
<br>
<br>Geraet:
<select name=\"Geraet\" size=\"1\">
<option>Bitte wählen sie ein Gerät aus..</option>
<option>Beamer</option>
<option>Laptop</option>
</select>
<br>
<br> Raum:
<input name=\"Raum\" size=\"30\" maxlength=\"30\">
<br>
<br>Bemerkung:
<input name=\"Bemerkung\" size=100\" maxlength=\"100\">
<br>
<br>
<br>
<p><input type=\"submit\" value=\"Absenden\"> <input type=\"reset\" value=\"Zurücksetzen\">
<p><input type=\"hidden\" name=\"hidden\" value=\"hidden\">
<br><br><br>
<?php
$Name = $_POST[\"Name\"];
$Datum1 = $_POST[\"Datum1\"];
$dat1 = explode (\".\", $Datum1);
$Zeit1 = $_POST[\"Zeit1\"];
$time1 = explode (\":\", $Zeit1);
$Datum2 = $_POST[\"Datum2\"];
$dat2 = explode (\".\", $Datum2);
$Zeit2 = $_POST[\"Zeit2\"];
$time2 = explode (\":\", $Zeit2);
$Geraet = $_POST[\"Geraet\"];
$Raum = $_POST[\"Raum\"];
$Bemerkung = $_POST[\"Bemerkung\"];
?>
<?php
if ($_POST[hidden] == \"hidden\")
{
$Name = $_POST[\"Name\"];
$Datum1 = $_POST[\"Datum1\"];
$dat1 = explode (\".\", $Datum1);
$Zeit1 = $_POST[\"Zeit1\"];
$time1 = explode (\":\", $Zeit1);
$Datum2 = $_POST[\"Datum2\"];
$dat2 = explode (\".\", $Datum2);
$Zeit2 = $_POST[\"Zeit2\"];
$time2 = explode (\":\", $Zeit2);
$Geraet = $_POST[\"Geraet\"];
$Raum = $_POST[\"Raum\"];
$Bemerkung = $_POST[\"Bemerkung\"];
?>
<h2 align =\"left\"><u>Überblick der Daten</u></h2>
<br>
<table border=\"1\" align=\"left\">
<tr>
<th>Name</th>
<th>Datum1</th>
<th>Zeit1</th>
<th>Datum2</th>
<th>Zeit2</th>
<th>Geraet</th>
<th>Raum</th>
<th>Bemerkung</th>
</tr>
<?php
$eintrag = \"INSERT INTO leihdb (Name, vomts,
bists, Geraet, Raum, Bemerkung) VALUES (\'$Name\',\'$timestamp1\',\'$timestamp2\',\'$Geraet\',\'$Raum\',\'$Bemerkung\')\";
$eintragen = mysql_query($eintrag);
$abfrage = \"SELECT * FROM leihdb\";
$ergebnis = mysql_query($abfrage)or die (mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
echo \"<tr><td>\";
echo $row->Name.\"</td><td>\";
echo date(\"d.m.Y\",$row->vomts).\"</td><td>\";
echo date(\"H:i\",$row->vomts).\"</td><td>\";
echo date(\"d.m.Y\",$row->bists).\"</td><td>\";
echo date(\"H:i\",$row->bists).\"</td><td>\";
echo $row->Geraet.\"</td><td>\";
echo $row->Raum.\"</td><td>\";
echo $row->Bemerkung.\"</td><td>\";
}
}
else
{
$error =\"\";
if($Name == \"\")
{
$error.= \"Bitte geben Sie ihren Namen ein!<br>\";
echo \"test\";
}
?> <br>
<?php
if($Datum1 == \"\")
{
$error.= \"Bitte geben Sie das Ausleihdatum ein!<br>\";
}
?><br>
<?php
if($Zeit1 == \"\")
{
$error.= \"Bitte geben sie die Ausleihzeit an! <br>\";
}
?><br>
<?php
if($Datum2 == \"\")
{
$error.= \"Bitte geben sie Das Rückgabedatum an!<br>\";
}
?><br>
<?php
if($Zeit2 == \"\")
{
$error.= \"Bitte geben Sie die Rückgabezeit an!<br>\";
}
?><br>
<?php
if($Geraet == \"Bitte wählen sie ein Gerät aus..\")
{
$error.= \"Bitte wählen sie ein Gerät aus!<br>\";
}
?><br>
<?php
if($Raum == \"\")
{
$error.= \"Bitte geben Sie einen Raum an!<br>\";
}
if ($error == \"\")
{
echo \"Es wurden alle Felder richtig angegeben.\";
}
{
echo $error;
}
}
?>
<?php>
$timestamp1 = mktime($time1[0],$time1[1],0,$dat1[1],$dat1[0],$dat1[2]);
$timestamp2 = mktime($time2[0],$time2[1],0,$dat2[1],$dat2[0],$dat2[2]);
?>
<h2 align =\"left\"><u>Überblick der Daten</u></h2>
<br>
<table border=\"1\" align=\"left\">
<tr>
<th>Name</th>
<th>Datum1</th>
<th>Zeit1</th>
<th>Datum2</th>
<th>Zeit2</th>
<th>Geraet</th>
<th>Raum</th>
<th>Bemerkung</th>
</tr>
<?php
$eintrag = \"INSERT INTO leihdb (Name, vomts,
bists, Geraet, Raum, Bemerkung) VALUES (\'$Name\',\'$timestamp1\',\'$timestamp2\',\'$Geraet\',\'$Raum\',\'$Bemerkung\')\";
$eintragen = mysql_query($eintrag);
$abfrage = \"SELECT * FROM leihdb\";
$ergebnis = mysql_query($abfrage)or die (mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
echo \"<tr><td>\";
echo $row->Name.\"</td><td>\";
echo date(\"d.m.Y\",$row->vomts).\"</td><td>\";
echo date(\"H:i\",$row->vomts).\"</td><td>\";
echo date(\"d.m.Y\",$row->bists).\"</td><td>\";
echo date(\"H:i\",$row->bists).\"</td><td>\";
echo $row->Geraet.\"</td><td>\";
echo $row->Raum.\"</td><td>\";
echo $row->Bemerkung.\"</td><td>\";
}
?>
Wieso sind da üeberall smileys o.0? wenn ihr mit sagt wie ich das als code schreibe poste
ich nochmal
Beitrag geändert: 14.4.2008 10:53:22 von bratwurstmitkruste -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
1. Code geht mit [code*] [/code*] natürlich ohne die *
2. Du trägst deine Daten zweimal in die MySQL Tabelle ein und gibts sie auch zweimal aus... Das sieht da alles etwas verschoben aus, weil du eine HTML Tabelle in einer Zelle der anderen Startest...
Falls die doppelte ausgabe gewünscht ist, solltest du die erste Tabelle erst schliessen und dann die neue anfangen...
3. Du musst strings innerhalb von Klammern nicht mit ;) abschliessen...
die(\"Die Datenbank existiert nicht\";); //das ist unnötig ... die(\"Die Datenbank existiert nicht\"); //reicht völlig aus
-
Dank dir hab das Problem zwar schon vorher gleöst aber trotzdem danke ;)
Jetzt habe ich jedoch noch eine andere Frage... Ich habe ein\"GEräte hinzufügen\" Formular erstellt wo neue Geräte eingetragen können in eine tabelle. Mit MySQL und tabelle klappt alles, nur ich will neben JEDEM NEUEN HINZUGEFÜGTEN GERÄT IN DER TABELLE einen Deletebutton als Bild haben hier hab ich schon so ein Bild:[URL]=http://imageshack.us]http://img362.imageshack.us/img362/6228/lschbuttonab1.png[/URL]
und wenn man da drauf drückt soll das jewilige Gerät was neben dem Button steht deletet werden in etwa so:
Laptop ---> Delentbutton
Beamer----> Deletebutton
Gameboy xD ---->Deletebutton
und anstatt pfeile sol das MIT in der tabelle sein und wenn ich zb der button neben Beamer klicke.. Soll Deamer deletet werden und dann soll es so aussehen anchdem Deletet wurde:
Laptop ---> Delentbutton
Gameboy xD ---->Deletebutton
ICh hoffe du weißt was ich meine und ich kriege schnell eine Lösung ;) dank dir schonmal :D
Beitrag geändert: 14.4.2008 12:25:12 von bratwurstmitkruste -
Also einträge aus der MYSQL-Tabelle entfernst du mit DELETE FROM `tabelle` WHERE `ID` = \'1\'; natürlich mit deinen Daten...
Musst du nur dein Bild mit ner entsprechenden PHP Datei verlinken, die das ausführt mit dem richtigen Parameter -
Also einträge aus der MYSQL-Tabelle entfernst du mit DELETE FROM `tabelle` WHERE `ID` = \'1\'; natürlich mit deinen Daten...
Musst du nur dein Bild mit ner entsprechenden PHP Datei verlinken, die das ausführt mit dem richtigen Parameter
Ist das der richtige Befehl und was muss in die \'1\' rein?? -
ich weiß nicht wie du deine MYSQL-Tabelle aufgebaut hast, wo du deine Geräte speicherst, aber normalerweise hat man ne ID um eine Zeile eindeutig identifizieren zu können...
Musst halt ein eindeutiges Feld aussuchen und dann den ensprechenden Wert übergeben, sonst löscht er zuviel... -
Ja danke ich habs hinbekommen
Nur ist da jetzt noch ein Problem..und zwar wenn jmd F5 also aktualisieren drückt dann passiert das:
Vor F5:
Laptop---(Deletebutton)
Beamer---(Deletebutton
BIldschrim---(Deletebutton
Nach F5 drücken:
Laptop---(Deletebutton)
Beamer---(Deletebutton
BIldschrim---(Deletebutton)
[NICHTS]---(Deletebutton)
Nach erneuten F5 drücken:
Laptop---(Deletebutton)
Beamer---(Deletebutton
BIldschrim---(Deletebutton)
[NICHTS]---(Deletebutton)
[NICHTS]---(Deletebutton)
Es wird immer eine neue Zeile dazugeschoben und in die Datenbank eingetragen..Ich glaube man kann das mit If machen wenn ihr wisst wie dann schreibts mir bitte und hier noch mein Script:
<?php mysql_connect(\"localhost\", \"root\",\"\") or die (\"Keine Verbindung moeglich\"); mysql_select_db(\"leihsystem\")or die (\"Die Datenbank existiert nicht\"); ?> <body bgcolor=\"#663333\" text=\"#FFCC99\" link=\"#FF9966\" vlink=\"#FF9900\" alink=\"#FFFFFF\"> <h1 align=\"center\"><u>Hinzufügen neuer Geräte</u></h1> <Form action=\"Geraete.php\"Method=\"POST\"> Neues Gerät hier eintragen: <br> <p><input name=\"Geraete\" size=\"30\" maxlength=\"30\"> <input type=\"submit\" value=\"Hinzufügen\"> <input type=\"reset\" value=\"Löschen\"> <input type=\"hidden\" value=\"hidden\"> <br><br><br> <table border=\"1\" align=\"left\"> <tr> <th colspan=\"2\"> Vorhandene Geräte </th> <?php $Geraete = $_POST[\"Geraete\"]; if (hidden == \"hidden\") { if ($Geraete == \"\") { echo \"Bitte geben sie ein Gerät ein\"; } $eintrag = \"INSERT INTO geraete (Geraete) VALUES (\'$Geraete\')\"; $eintragen = mysql_query($eintrag); $abfrage = \"SELECT * FROM geraete\"; $ergebnis = mysql_query($abfrage) or die (mysql_error()); if (isset($_GET[delete]) && is_numeric($_GET[delete]) && $_GET[delete] > 0) { $del = \"DELETE FROM `geraete` WHERE `id` = $_GET[delete]\"; $delete = mysql_query($del) or die (mysql_error()); } while($row = mysql_fetch_object($ergebnis)) { echo \"<tr><td>\"; echo $row->Geraete.\"</td><td>\"; $deletebutton = \"<a href = http://localhost/Geraete.php?delete=\".$row->id.\"><img src = http://www.vaks-ev.de/bilder/navig/b_loesch.gif></a>\"; echo $deletebutton.\"</td>\"; } } ?> </tr>
-
eine einfache Lösung wäre es, wenn du das hinzufügen in eine andere Datei ausgliederst und dann nach dem INSERT einfach per header(\"Location:...\"); auf deine Übersicht weiterleitest, dann kann man auch F5 drücken wie man will
-
also so wie es aussieht hast du nicht sehr viel ahrnung von php machst aber eine geschäftliche seite.
Tipp: lass das dann leiber jemand mit erfahrung machen ;)
So Tipp zur problemlösung:
entweder du erstellst eine zahl die nur 1x gültig ist und fragst diese ab und wenn diese nicht = der des formulars ist dann lösche sie.
oder:
if(!isset($_POST[\'submit\']) { //Code für den Teil VOR dem Buttondrücken } else { //Code zum Auswerten des Formulars... }
-
Naja hab auch erst vor ein paar tagen angefangen damit und ich mache Praktikum in einem Betrieb das ist meine Aufgabe deswegen kann ich nicht sagen ich kann das nicht ich bin hier ums zu ernen ;) ich hoffe dann mal es klappt..
-
Nein..
Ich habs so eingesetzt also
<?php
If isset blabla
{
der ganze rest mit MySQL connect seitenaufbau und design blabla
}
else
{
Hier alles was passiert zum auswerten also $Abfrage $eintragen usw
}
?>
Jedoch zeit er Unexspectet \'{\' in Lin 4 also die 1. klammer. Demnach funzt es nich.. -
Das muss ein Tippfehler sein, wenn Unexpected { kommt... hast du bestimmt eine Klammer zu bei der IF Anweisung vergessen...
-
Das muss ein Tippfehler sein, wenn Unexpected { kommt... hast du bestimmt eine Klammer zu bei der IF Anweisung vergessen...
Ja ich habs ausprobiert jedoch wieder fehler wieder das gleiche hier, damit du es dir besser vorstellen kannst.
<?php mysql_connect(\"localhost\", \"root\",\"\") or die (\"Keine Verbindung moeglich\"); mysql_select_db(\"leihsystem\")or die (\"Die Datenbank existiert nicht\"); if(!isset($_POST[\'submit\']) { ?> <body bgcolor=\"#663333\" text=\"#FFCC99\" link=\"#FF9966\" vlink=\"#FF9900\" alink=\"#FFFFFF\"> <h1 align=\"center\"><u>Hinzufügen neuer Geräte</u></h1> <Form action=\"Geraete.php\"Method=\"POST\"> Neues Gerät hier eintragen: <br> <p><input name=\"Geraete\" size=\"30\" maxlength=\"30\"> <input type=\"submit\" value=\"Hinzufügen\"> <input type=\"reset\" value=\"Löschen\"> <input type=\"hidden\" value=\"hidden\"> <br><br><br> <table border=\"1\" align=\"left\"> <tr> <th colspan=\"2\"> Vorhandene Geräte </th> <?php $Geraete = $_POST[\"Geraete\"]; } else { if ($Geraete == \"\") { echo \"Bitte geben sie ein Gerät ein\"; } $eintrag = \"INSERT INTO geraete (Geraete) VALUES (\'$Geraete\')\"; $eintragen = mysql_query($eintrag); $abfrage = \"SELECT * FROM geraete\"; $ergebnis = mysql_query($abfrage) or die (mysql_error()); if (isset($_GET[delete]) && is_numeric($_GET[delete]) && $_GET[delete] > 0) { $del = \"DELETE FROM `geraete` WHERE `id` = $_GET[delete]\"; $delete = mysql_query($del) or die (mysql_error()); } while($row = mysql_fetch_object($ergebnis)) { echo \"<tr><td>\"; echo $row->Geraete.\"</td><td>\"; $deletebutton = \"<a href = http://localhost/Geraete.php?delete=\".$row->id.\"><img src = http://www.vaks-ev.de/bilder/navig/b_loesch.gif></a>\"; echo $deletebutton.\"</td>\"; } </tr> } ?>
Und hier die Fehlermeldung:
http://img132.imageshack.us/img132/931/fehlervg2.jpg
Wenn du weißt wo der Fehler leigt würd ich dich bieten den Code umzustellen und mir wieder zu posten.
ICh wäre dir SEHR dankbar :D
ty -
du hast die beiden geschleiften klammern vom if (!isset...) durch ein Schließen und wieder Öffnen des PHP-Teils getrennt, ich bin mir zwar nicht sicher, ob das der Fehler ist, da ich selber noch ein Anfänger bin, aber versuch das mal aus:
<?php mysql_connect(\"localhost\", \"root\",\"\") or die (\"Keine Verbindung moeglich\"); mysql_select_db(\"leihsystem\")or die (\"Die Datenbank existiert nicht\"); if(!isset($_POST[\'submit\']) { \'<body bgcolor=\"#663333\" text=\"#FFCC99\" link=\"#FF9966\" vlink=\"#FF9900\" alink=\"#FFFFFF\"> <h1 align=\"center\"><u>Hinzufügen neuer Geräte</u></h1> <Form action=\"Geraete.php\"Method=\"POST\"> Neues Gerät hier eintragen: <br> <p><input name=\"Geraete\" size=\"30\" maxlength=\"30\"> <input type=\"submit\" value=\"Hinzufügen\"> <input type=\"reset\" value=\"Löschen\"> <input type=\"hidden\" value=\"hidden\"> <br><br><br> <table border=\"1\" align=\"left\"> <tr> <th colspan=\"2\"> Vorhandene Geräte </th>\' $Geraete = $_POST[\"Geraete\"]; } else { if ($Geraete == \"\") { echo \"Bitte geben sie ein Gerät ein\"; } $eintrag = \"INSERT INTO geraete (Geraete) VALUES (\'$Geraete\')\"; $eintragen = mysql_query($eintrag); $abfrage = \"SELECT * FROM geraete\"; $ergebnis = mysql_query($abfrage) or die (mysql_error()); if (isset($_GET[delete]) && is_numeric($_GET[delete]) && $_GET[delete] > 0) { $del = \"DELETE FROM `geraete` WHERE `id` = $_GET[delete]\"; $delete = mysql_query($del) or die (mysql_error()); } while($row = mysql_fetch_object($ergebnis)) { echo \"<tr><td>\"; echo $row->Geraete.\"</td><td>\"; $deletebutton = \"<a href = http://localhost/Geraete.php?delete=\".$row->id.\"><img src = http://www.vaks-ev.de/bilder/navig/b_loesch.gif></a>\"; echo $deletebutton.\"</td>\"; } \'</tr>\' } ?>
-
Schonmal danke für die Antwort, aber ich hab dein code einegsetzt und die html sachen wie <input> waren komplett grau. Und er zeigt wieder den Fehler mit der Klammer an.
Hast du vielleicht noch ne 2. Lösung??? -
das der html-teil grau angezeigt wird, ist schon richtig da ich ihn mit \' und . in phpteil eingebunden habe. tut mir leid das es trotzdem nicht geht, aber ich kann leider nich daran rumprobieren, weil ich dazu erst ne datenbank und co. erstellen müsste.
wenn ich doch noch was finde melde ich mich ;) -
if(!isset($_POST[\'submit\'])
Das ist die Zeile mit dem Fehler, da fehlt einfach ne schließende Klammer ;)
edit: Das ist im übrigen Codezeile 9 in deinem Beitrag
Beitrag geändert: 16.4.2008 11:52:43 von cs2001 -
if(!isset($_POST[\'submit\'])
Das ist die Zeile mit dem Fehler, da fehlt einfach ne schließende Klammer ;)
edit: Das ist im übrigen Codezeile 9 in deinem Beitrag
Beitrag geändert: 16.4.2008 11:52:43 von cs2001
Ist die schließende Klammer nicht auf Reihe \'29\' ??
Könntest du den Code eielleicht mal abkopieren und nochmal richtig posten, dann bräuchte ich als Anfänger nicht lange suchen
Danke im vorraus -
nein cs2001 hat den fehler schon richtig erkannt, er meint damit, dass bei
if(!isset($_POST[\'submit\'])
ne klammer hinten dran muss so:
if(!isset($_POST[\'submit\']))
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage