Datenfelder leer
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgabe
bestimmen
code
dank
datenbank
datum
eintrag
ende
fehler
grund
host
methode
moderator
page
post
server
start
tester
verbindung
versuchen
-
Gutn Tag,
ich habe mich jetzt etwas in PHP eingearbeitet, doch klappt jetzt mal wieder etwas nicht.
Bitte schaut euch das mal an:
Das Eingeabeformular:
<form action="sql_mods.php"> <p>Tester:<br><input name="tester" type="text" size="30" maxlength="30" value="Tester"></p> <p>Abwesend von:<br><input name="von" type="text" size="30" maxlength="99" value="Von"></p> <p>Bis:<br><input name="bis" type="text" size="30" maxlength="99" value="Bis"></p> <p>Begründung (freiwillig):<br><textarea name="begruendung" cols="50" rows="7"></textarea></p> <input type="submit" value=" Absenden "> <input type="reset" value=" Abbrechen"> </form>
sql_mods.php
<?php /* Variablen aus dem Forumlar bestimmen */ $tester = $HTTP_POST_VARS["tester"]; $von = $HTTP_POST_VARS["von"]; $bis = $HTTP_POST_VARS["bis"]; $begruendung = $HTTP_POST_VARS["begruendung"]; include("include_config2.inc.php"); $db = @mysql_pconnect($host, $user, $pass) or die ("Verbindung mit MySQL-Server fehlgeschlagen!"); @mysql_select_db($database, $db) or die ("Verbindung zur Datenbank fehlgeschlagen!"); $sql = "INSERT INTO $table (id, tester, von, bis, begruendung) VALUES ('', '$moderator', '$von', '$bis', '$begruendung')"; $result = mysql_query($sql, $db); if($result) { echo "Eintrag erfolgreich!"; } else { echo "FEHLER!"; }; ?>
Ausgabe:
<?php include("include_config2.inc.php"); $db = @mysql_pconnect($host, $user, $pass) or die ("Verbindung mit MySQL-Server fehlgechlagen!"); @mysql_select_db($database, $db) or die ("Verbindung zur Datenbank fehlgeschlagen!"); $sql = "SELECT * FROM $table"; $result = mysql_query($sql,$db); $number = mysql_num_rows($result); $seiten=floor($number/$proseite); $start=$page * $proseite; $sql = "SELECT * FROM $table ORDER BY id DESC LIMIT $start,$proseite"; $result = mysql_query($sql,$db); $ende = $start + $proseite; if ($ende>$number) { $ende = $number; } echo "Zur Zeit sind $number News vorhanden."; while ($row = mysql_fetch_array($result)) { $tester= $row['tester']; $von = $row['von']; $bis = $row['bis']; $begruendung = $row['begruendung']; echo "<br><br> <table width=\"600\"> <tr> <td width=\"400\">".$tester."</td> <td width=\"100\">".$von."</td> <td width=\"100\">".$bis."</td> </tr> </table> <table width=\"600\"> <tr> <td width=\"600\"><b>".$begruendung."</b></td> </tr> </table> <br>"; ?>
Also an der Ausgabe kann es nicht liegen, da in der Datenbank nur leere Felder erscheinen!
Bei den ersten beiden versuchen wurde nur das Datum "bis" in die Datenbank geschrieben!
Es kommt leider auch keine Fehlermeldung.
Lg ferana -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wenn die ID autoincrement ist, dann brauchst du da gar nix mit machen, das passiert automatisch.
Ansonsten lasse doch mal die Variablen, welche du in die Datenbank schreiben lassen willst per echo $variablenname ausgeben und schau, ob da was drin steht.
Sollte aber auch eher so aussehen dein Code:
$tester =$_POST["tester"]; $von =$_POST["von"]; $bis=$_POST["bis"]; $begruendung=$_POST["begruendung"];
$sql = "INSERT INTO $table (tester, von, bis, begruendung) VALUES ( '" . $moderator . "', '" . $von . "', '" . $bis . "', '" . $begruendung . "')";
Fragen tu ich mich auch noch, was die Variable $moderator hier soll, die finde ich sonst nirgends.
Beitrag zuletzt geändert: 17.11.2009 14:37:34 von karpfen -
Versuche es so: So solle es funktionieren!
sql_mods.php
<?php include("include_config2.inc.php"); /* Variablen aus dem Forumlar bestimmen */ $moderartor = $_POST["tester"]; $von = $_POST["von"]; $bis = $_POST["bis"]; $begruendung = $_POST["begruendung"]; $id = 01; $sql = "INSERT INTO $table (id, tester, von, bis, begruendung) VALUES ('$id', '$moderator', '$von', '$bis', '$begruendung')"; $result = mysql_query($sql); if($result) { echo "Eintrag erfolgreich!"; } else { echo "FEHLER!"; }; ?>
In der Datei include_confic2.php muss sein:
$db = @mysql_pconnect($host, $user, $pass) or die ("Verbindung mit MySQL-Server fehlgeschlagen!"); //folgende Variablen müssen angegeben sein: $table = ""; $host $user $pass
jetzt müsste es funktionieren.
achja, schreibe beim html <form action="sql_mods.php" method="get">
dann gehst du auf nummer sicher
Beitrag zuletzt geändert: 17.11.2009 14:57:01 von aklasse -
Wenn man die Daten mit GET übergibt, muss man sie aber auf der anderen Seite auch anders verarbeiten.
Also bleib mal lieber bei der Methode POST, die ist schon OK.
$_POST['variablenname'] ist meines Wissens der neuere Stand der Dinge als das komische $HTTP_POST_VARS
Bin aber noch am Fehler suchen.
Mich stören bei der verarbeitenden Dateien die vielen Leerzeichen bei der Zuweisung. Vielleicht klappt es deshalb nicht.
Gebe doch mal mit echo $_POST['von'] aus :)
Beitrag zuletzt geändert: 17.11.2009 15:02:19 von karpfen -
ich weiß jetzt nciht, aber von der Syntax her sehen meine includes so ais
<?php
include "./path/dateiname.bla";
?>
oder ist das eine andere include-Funktion?
Beitrag zuletzt geändert: 17.11.2009 15:09:09 von sebulon -
sebulon schrieb:
ich weiß jetzt nciht, aber von der Syntax her sehen meine includes so ais
<?php
include "./path/dateiname.bla";
?>
oder ist das eine andere include-Funktion?
Das Includieren geht sowohl als auch Man kann ja auch echo ("Test") schreiben anstelle von echo "Test". Ist vielleicht syntaktisch korrekter. Da aber die Variablen beim Ausgeben leer scheinen muss der Fehler eigentlich beim Zuweisen der Variablen liegen und ich vermute die 10 Leerzeichen nach dem = als Fehlerursache.
Beitrag zuletzt geändert: 17.11.2009 15:12:42 von karpfen -
oh shit. natürlich nicht get. wäre idiotisch. method="post" natürlich
EDIT by karpfen: Was aklasse meint ist, dass du die Methode zur Übergabe der Daten vergessen hast, folgende Codezeile:
<form action="sql_mods.php" method="POST">
Beitrag zuletzt geändert: 17.11.2009 15:23:28 von karpfen -
<?php /* Variablen aus dem Forumlar bestimmen */ $moderator = $_POST["moderator"]; $von = $_POST["von"]; $bis = $_POST["bis"]; $begruendung = $_POST["begruendung"]; { echo "$moderator <br> $von <br> $bis <br> $begruendung"; } ?>
Weiße Seite.
Das "moderator" war die eigentliche Variable, wurde aber nur für das Forum in Tester umgeändert!
Lg ferana -
Versuche mal folgenden Code:
<?php /* Variablen aus dem Forumlar bestimmen */ $moderator = $_POST["moderator"]; $von = $_POST["von"]; $bis = $_POST["bis"]; $begruendung = $_POST["begruendung"]; echo $moderator . "<br>" . $von . " <br>" . $bis . "<br>" . $begruendung; ?>
Und wie gesagt, beim Formular die Methode method="POST" muss angegeben sein.
<form action="sql_mods.php" method="POST">
EDIT: Vielleicht kannst du von all deinen Dateien nochmal die aktuelle Version posten, damit wir sehen, welche Fehler du schon behoben hast.
Beitrag zuletzt geändert: 17.11.2009 15:56:40 von karpfen -
Hey,
dort war noch ein fehler drin hier die berrichtigung
<?php include("include_config.inc.php"); /* Variablen aus dem Forumlar bestimmen */ $moderartor = $_POST["tester"]; $von = $_POST["von"]; $bis = $_POST["bis"]; $begruendung = $_POST["begruendung"]; $id = 01; $sql = "INSERT INTO $table (id, tester, von, bis, begruendung) VALUES ('$id', '$moderator', '$von', '$bis', '$begruendung')"; $result = mysql_query($sql); if($result) { echo "Eintrag Erfolgreich!"; } else { echo "Fehler!"; }; ?>
Beitrag zuletzt geändert: 17.11.2009 16:52:24 von tobitk -
Jipiee,
danke, ich habe es geschafft!
Und der Fehler war so simpel wie einfach! In der Conifurationsdatei war erstens die noch meine alte Tabelle drinnen und dann fehlte mir, wie ihr mir glücklicherweise sagtet, das method="POST".
Aber nun klappts super und ich bin erstmal happy!
Danke
Beitrag zuletzt geändert: 17.11.2009 18:03:25 von ferana -
Du solltest dennoch die ID nicht manuell befüllen sondern auf autoincrement setzen in der Datenbank. Weil momentan wird laut deinem Skript jeder Datensatz mit dem Wert "01" befüllt und das ist sicher nicht Sinn der Sache
-
nein, das mit den ID habe ich rausgenommen und uf Primärschlüssel geändert!
Hier vllt nochmal der fertige Code, falls ein anderer das selbe Problem hat!
Eingabe der Daten:
<form method="post" action="sqlmods.php"> <p>Moderator:<br><input name="moderator" type="text" size="30" maxlength="30" value="Moderator"></p> <p>Abwesend von:<br><input name="von" type="text" size="30" maxlength="99" value="Von"></p> <p>Bis:<br><input name="bis" type="text" size="30" maxlength="99" value="Bis"></p> <p>Begründung (freiwillig):<br><textarea name="grund" cols="50" rows="7">gjhgjf</textarea></p> <input type="submit" value=" Absenden "> <input type="reset" value=" Abbrechen"> </form>
Verarbeitung:
<?php /* Variablen aus dem Forumlar bestimmen */ $moderator = $HTTP_POST_VARS["moderator"]; $von = $HTTP_POST_VARS["von"]; $bis = $HTTP_POST_VARS["bis"]; $grund = $HTTP_POST_VARS["grund"]; include("config2.php"); $db = @mysql_pconnect($host, $user, $pass) or die ("Verbindung mit MySQL-Server fehlgeschlagen!"); @mysql_select_db($database, $db) or die ("Verbindung zur Datenbank fehlgeschlagen!"); $sql = "INSERT INTO $table (id, moderator, von, bis, grund) VALUES ('', '$moderator', '$von', '$bis', '$grund')"; $result = mysql_query($sql, $db); if($result) { echo "Eintrag erfolgreich!"; } else { echo "FEHLER!"; }; ?>
Config:
<?php $host = "mysql.lima-city.de"; $user = "USERxxxxxxx"; $pass = "xxxxxxxx"; $database = "dbxxxxxxxxx"; $table = "xxxxxxxxxx"; $proseite = "99999999"; ?>
Ausgabe der Daten
<?php include("config2.php"); $db = @mysql_pconnect($host, $user, $pass) or die ("Verbindung mit MySQL-Server fehlgechlagen!"); @mysql_select_db($database, $db) or die ("Verbindung zur Datenbank fehlgeschlagen!"); $sql = "SELECT * FROM $table"; $result = mysql_query($sql,$db); $number = mysql_num_rows($result); $seiten=floor($number/$proseite); $start=$page * $proseite; $sql = "SELECT * FROM $table ORDER BY id DESC LIMIT $start,$proseite"; $result = mysql_query($sql,$db); $ende = $start + $proseite; if ($ende>$number) { $ende = $number; } echo "Zur Zeit sind $number News vorhanden."; while ($row = mysql_fetch_array($result)) { $moderator = $row['moderator']; $von = $row['von']; $bis = $row['bis']; $grund= $row['grund']; echo "<br><br> <table width=\"600\"> <tr> <td width=\"400\">".$moderator."</td> <td width=\"100\">".$von."</td> <td width=\"100\">".$bis."</td> </tr> </table> <table width=\"600\"> <tr> <td width=\"600\"><b>".$grund."</b></td> </tr> </table>
Nochmals danke für eure große Hilfe! -
Gern geschehen. Da Problem gelöst, mach ich mal zu. Bei Rückfragen PN an mich!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage