Einträge funzen net ...
Jens
- datenbank
0 wahsaga0 Thomas Meinike0 ronny
Also,
ich habe das Problem, das ich mir eine Eingabemaske gebaut hab, um Einträge wie sollte es anders sein in eine DB zu speichern.
Aber leider schreib der mir immer nichts in die DB.
Quellcode:
<?
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db);
mysql_query("insert into tabelle
(datum,cocktailart,glaeser,erste,mengenangabe_erste,zweite,mengenangabe_zweite,dritte,mengenangabe_dritte,vierte,mengenangabe_vierte,likoere_erste,likoere_menge_erste,likoere_zweite,likoere_menge_zweite,sirup_erste,sirup_menge_erste,sirup_zweite,sirup_menge_zweite,saefte_erste,saefte_menge_erste,saefte_zweite,saefte_menge_zweite,saefte_dritte,saefte_menge_dritte,saefte_vierte,saefte_menge_vierte,saefte_vierte,saefte_menge_vierte,pic,beschreibung,eis,machart)
values
('$_POST[datum]','$_POST[cocktailart]','$_POST[glaeser]','$_POST[erste]','$_POST[mengenangabe_erste]','$_POST[zweite]','$_POST[mengenangabe_zweite]','$_POST[dritte]','$_POST[mengenangabe_dritte]','$_POST[vierte]','$_POST[mengenangabe_vierte]','$_POST[likoere_erste]','$_POST[likoere_menge_erste]','$_POST[likoere_zweite]','$_POST[likoere_menge_zweite]','$_POST[sirup_erste]','$_POST[sirup_menge_erste]','$_POST[sirup_zweite]','$_POST[sirup_menge_zweite]','$_POST[saefte_erste]','$_POST[saefte_menge_erste]','$_POST[saefte_zweite]','$_POST[saefte_menge_zweite]','$_POST[saefte_dritte]','$_POST[saefte_menge_dritte]','$_POST[saefte_vierte]','$_POST[saefte_menge_vierte]','$_POST[pic]','$_POST[beschreibung]','$_POST[eis]','$_POST[machart]')
");
?>
Sieht jemand einen Fehler ???
MfG
Jens
hi,
Aber leider schreib der mir immer nichts in die DB.
die allerersten und elementarsten debugging-schritte in so einem fall sind:
gruss,
wahsaga
das Problem ist halt, das der Quellcode, so wie ich ihn gepostet hab ... halt mit weniger feldern so funktioniert. ich habe ihn nur erweitert um die fehlenden felder. und nun trägt er nix ein.
MfG
Jens
das Problem ist halt, das der Quellcode, so wie ich ihn gepostet hab ... halt mit weniger feldern so funktioniert. ich habe ihn nur erweitert um die fehlenden felder. und nun trägt er nix ein.
ja dann ist mysql_error() und echo wohl die einfachste lösung das rauszufinden
lass dir einfach per
echo $variable;
das anzeigen, was eingetragen werden soll.
kannste mir mal beispiel dazz geben ... anhand von meinem quellcode
MfG
Jens
hi,
kannste mir mal beispiel dazz geben ... anhand von meinem quellcode
definiere deine query nicht innerhalb von mysql_query, sondern vorher in einer variablen.
$query = "INSERT ...";
echo $query; // die kontrollausgabe
mysql_query($query) oer die(mysql_error()); // die detailierte ausgabe von DB-fehlern
gruss,
wahsaga
hi,
mysql_query($query) oer die(mysql_error());
-^-
sorry, tippfehler, muss or die(mysql_error()); heissen.
gruss,
wahsaga
also ... ich hab mir jetzt jede variable per mysql_error ausgeben und anzeigen lassen ... er zeigte immer was an. also übernimmt er die einträge auch. da er sie ja anzeigt. kann es sein das in meiner db zu viele felder sind ??? das der provider da ne begrenzung drin hat ??? bin bei hosteurope
MfG
Jens
hi,
also ... ich hab mir jetzt jede variable per mysql_error ausgeben und anzeigen lassen ... er zeigte immer was an.
wie jetzt?
mysql_error soll keine variablen ausgeben, sondern die fehlermeldung der DB.
kam eine? wie lautet die?
und was hat die kontrollausgabe der query mit echo ergeben?
gruss,
wahsaga
Hallo,
Aber leider schreib der mir immer nichts in die DB.
...
values
('$_POST[datum]','$_POST[cocktailart]','$_POST[glaeser]','$_POST[erste]','$_POST
Array-Element-Inhalte werden in "..." nur in der Form {$xyz} uebernommen. Also schreibe values('{$_POST[datum]}',...).
Praktikabler faende ich das vorherige Zuweisen zu separaten Variablen und deren weitere Verwendung, also etwa:
$datum=$_POST["datum"]; // Bezeichner sollten in Anfuehrungszeichen stehen, um nicht als Konstanten zu gelten
im String: values('$datum',...) usw.
MfG, Thomas
Moin!
Praktikabler faende ich das vorherige Zuweisen zu separaten Variablen und deren weitere Verwendung, also etwa:
$datum=$_POST["datum"]; // Bezeichner sollten in Anfuehrungszeichen stehen, um nicht als Konstanten zu gelten
Ich weiß nicht, ob das wirklich schlau ist. Da schreibt man sich (gerade in diesem Fall) ziemlich tot, nur um einen Effekt zu erreichen, der mit zusätzlichen geschweiften Klammern um die Variablen auch funktioniert - und immerhin ist der SQL-String schon nahezu komplett vorhanden.
- Sven Rautenberg
Hallo,
Ich weiß nicht, ob das wirklich schlau ist. Da schreibt man sich (gerade in diesem Fall) ziemlich tot, nur um einen Effekt zu erreichen, der mit zusätzlichen geschweiften Klammern um die Variablen auch funktioniert - und immerhin ist der SQL-String schon nahezu komplett vorhanden.
Wenn man konsequent ist, werden auch in den eckigen Klammern weitere Anfuehrungszeichen faellig und dann wird das ein muehsames Unterfangen mit dem sowieso schon langen String. Auch das spaetere Aendern von Parametern ist beim Arbeiten mit separaten Variablen weniger fehleranfaellig und ueberschaubarer.
Deshalb nannte ich meinen Vorschlag "praktikabler".
MfG, Thomas
<?
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db);
mysql_query("insert into tabelle
(datum,cocktailart,glaeser,erste,mengenangabe_erste,zweite,
mach es in dieser art:
$conn = mysql_connect($dbserver,$dbusername,$dbpasswort);
$SQLString = "INSERT INTO tabelle (datum, cocktailart ,...usw
$Ergebnis = mysql_db_query($deineDatenbank, $SQLString, $conn);
if ($Ergebnis === FALSE) {
echo "diese Abfrage ist gescheitert:<br>";
echo $SQLString."<br>";
echo "Die MySQL-Fehlermeldung lautet: ".mysql_error();
exit; // Ausführung des Scriptes beenden
}
die if anweisung habe ich hier aus dem forum, hat sich bewährt!!
schönen abend
ronny
ps nicht weitersagen, die meisten hier, haben es nicht gern, wenn man beim quellcode hilft, stimmt auch, durch selber lernen wird man schlau, deswegen habsch nur den schnipsel geschrieben...viel spaß