Antworten auf deine Fragen:
Neues Thema erstellen

formulardaten werden nicht in mysql datenbank gespeichert

ogart

will_besser_werden

hallo, zur zeit versuche ich mich mit php und mysql.
ich habe folgendes problem:ich möchte formulardaten mittels php in eine tabelle (datenbank) einfügen
ich bekomme keine fehlermeldung aber es wird auch nichts in die datenbank gespeichert. was läuft hier falsch? ich danke für eure antworten.
der code ist aus einem beispiel-tutorial, leider weiss ich nicht mehr woher. ich hoffe das mir hier geholfen wird
hier mein code :
HTML:
<html>

<body>

<?PHP

if ($button==" OK ") {

 include("XXXXX.php");

 mysql_query("INSERT INTO
`cds` (titel,interpret)VALUES('$titel','$interpret')");

 mysql_close();

 ?>

 Die Daten wurden eingetragen<br>

 <a href="insert.php">neuer Eintrag</a><br>

 <a href="fetcharr.php">zur Übersicht</a>

 <?PHP

} else { ?>

 <form method="post" action="insert.php">

 <input type="text" name="interpret" value="interpret"><br>

 <input type="text" name="titel" value="titel"><br>

 <input type="submit" name="button" value=" OK ">

 </form>

 <?PHP

} ?>

</body>

</html>
 

xxxsharkyxxx

Siebenschläfer

AW: formulardaten werden nicht in mysql datenbank gespeichert

EDIT: OK nehm ich zurück, sry^^ dachte ich hätts irgendwo so gelesen....

grüsse sharky
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: formulardaten werden nicht in mysql datenbank gespeichert

Das funktioniert so nicht. Du kannst nicht die if-Bedingung offen lassen und dann PHP mit dem "?>" beenden. Wenn du das ?> setzt, ist der PHP Teil beendet und mit dem <?php beginnt wieder ein neuer, so dass das else keine Wirkung hat. Die Ausgabe musst du in ein echo tun:
PHP:
<html>

<body>

<?PHP

if ($button==" OK ") {

 include("XXXXX.php");

 mysql_query("INSERT INTO
`cds` (titel,interpret)VALUES('$titel','$interpret')");

 mysql_close();


 echo "Die Daten wurden eingetragen<br>";
 echo "<a href='insert.php'>neuer Eintrag</a><br>";
 echo "<a href="fetcharr.php">zur Übersicht</a>";

}
else { 

 echo "<form method='post' action='insert.php'>";

 echo "<input type='text' name='interpret' value='interpret'><br>";

 echo "<input type='text' name='titel' value='titel'><br>";

 echo "<input type='submit' name='button' value=' OK '>";

 echo "</form>";
} 
?>

</body>

</html>
Allgemein gilt, wenn du HTML-Code in PHP willst, musst du das mit dem echo in PHP ausgeben. PHP ist ja ne Serverseitige Sprache, das was PHP mit echo ausgibt nimmt der Browser als HTML auf. Hab jetzt dein Script nicht genau geprüft, wenns nicht funzt einfach nochmals melden.

grüsse sharky

Sorry, das stimmt nicht. Allgemein gilt z.B. auch folgendes:
PHP:
<?php
/* ..... */
if($bla === 'blub') {
 forech($arr as $k => $v) {
  ?>
  <li>Zähle <?php echo $v; ?></li>
  <?php
 }
} else {
 /* ätsch */
}
Mich würde mal interessieren, wo solch ein verzapftes Zeug zu lesen ist, wie du es als allgemein Gültig bezeichnest?
 

Dennis__

Grafik / Web

AW: formulardaten werden nicht in mysql datenbank gespeichert

Das funktioniert so nicht. Du kannst nicht die if-Bedingung offen lassen und dann PHP mit dem "?>" beenden. Wenn du das ?> setzt, ist der PHP Teil beendet und mit dem <?php beginnt wieder ein neuer, so dass das else keine Wirkung hat.

Das stimmt nicht.

vgl.:

PHP:
<?php
#$x = 1;
$x = 2;
if($x==1) {?>
x ist gleich 1
<?php } 
else {
?>
x ist nicht gleich 1
<?php }; ?>
edit: oh saila war schneller, sry

Zu deinem Problem:
Nicht den Button abfragen (Ich glaube das geht garnicht, bin mir aber gerade nicht sicher. Kann sein, dass ich da falsch liege.). Benutze dafür ein hidden-Feld mit einer 1 oder so. Außerdem musst du die abgeschickten Variablen mit $_POST[] abfragen.

Was genau machst du in der includierten Datei?? (Die Datenbankverbindung?)
 
Zuletzt bearbeitet:

sokie

Mod | Web

AW: formulardaten werden nicht in mysql datenbank gespeichert

Nicht den Button abfragen (Ich glaube das geht garnicht, bin mir aber gerade nicht sicher. Kann sein, dass ich da falsch liege.). Benutze dafür ein hidden-Feld mit einer 1 oder so. Außerdem musst du die abgeschickten Variablen mit $_POST[] abfragen.

natürlich kann "botton" in dem Zusammenhang abgefragt werden, denn

HTML:
<input type="submit" name="button" value=" OK ">
erzeugt ja einen Eintrag im _POST
nur das geht eben nicht per
PHP:
if ($button == " OK ")
(sofern REGISTER_GLOBALS Off ist) sondern per
PHP:
if($_POST['button'] == " OK "){

das Tutorial ist halt scheinbar schon etwas älter...
 

Dennis__

Grafik / Web

AW: formulardaten werden nicht in mysql datenbank gespeichert

Cool, das mit dem Button wusst ich nicht. Ist ja praktisch habs immer über einen Umweg mit einem Hidden-Feld gemacht.
Bin bisher immer davon ausgegangen, das bei dem type Submit das value anders Interpretiert wird und quasi nicht mit in die POST-Variable "landet"...
 

saila

Moderatorle

AW: formulardaten werden nicht in mysql datenbank gespeichert

Egeal ob du ein Script local oder online testen möchtest/kannst. Teste doch einfach mittels einer Datei, welche Daten per post gesendet werden durch:

PHP:
<?php
echo '<pre>'; print_r($_POST); echo '</pre>';
?>

Dann kannst du ja sehen, welche Werte übergeben werden und welche nicht. Darüber hinaus ist bei selfhmtl.org auch eine Information hinterlegt, wie sich input type="submit" und button type="button" bzw. input type="button" verhält ;)
 

ogart

will_besser_werden

AW: formulardaten werden nicht in mysql datenbank gespeichert

danke für die schnellen antworten und die mühe aber es passiert immer noch nichts,jedenfalls nicht richtig ich bekomme jetzt die ausgabe:Die Daten wurden eingetragen, aber das sind sie nicht ????????????
 
Zuletzt bearbeitet:

K-Dawg

********

AW: formulardaten werden nicht in mysql datenbank gespeichert

Dein Code welches du gepostet hast kann keine 100%ige Lösung erlauben. Wir haben keine Ahnung wie deine Datenbank aufgebaut ist, was die Datei "xxxx.php" in deinem Include macht usw.

Ich gehe mal von deinem MySQL code aus und ich sehe hier folgendes:
PHP:
mysql_query("INSERT INTO
`cds` (titel,interpret)VALUES('$titel','$interpret')");

Mach aus den ` ' also so:
PHP:
mysql_query("INSERT INTO
'cds' (titel,interpret)VALUES('$titel','$interpret')");

Ich habe mehrfach die Erfahrung bei Projekten gemacht, dass dies irgendwie immer fehlerhaft funktioniert wenn das so im PHP Code steht.

Es könnte auch sein, dass da sonst wo noch ein Fehler ist, jedoch versuche das mal. Könnte sein das es daran liegt.

Greetz
 

Chriss1987

me.drinkCoffee();

AW: formulardaten werden nicht in mysql datenbank gespeichert

Hi,

du könntest auch mal prüfen, was MySQL zu deinem Versuch sagt:
PHP:
echo mysql_error();
evtl hast du eine Spalte falsch benannt oder so.

Alternativ zu K-Dagw's Vorschlag könntest du auch mal folgenden Query testen (wenn keine der 3 Varianten was bewirkt, ist iwas nicht ok):
PHP:
mysql_query("INSERT INTO
cds SET titel='" . $title . "', interpret='" . $interpret . "'");

Was mir grade noch einfällt (ich nehme mal an, wie sokie schon erwähnte, dass REGISTER_GLOBALS Off ist): hast du die Variablen $title und $interpret vorher zugewiesen? Wenn nicht versuche mal vor dem MySQL-Query:
PHP:
$title = $_POST['title'];
$interpret = $_POST['interpret'];

mysql_query("...

Schöne Grüße aus dem Sauerland!
Chriss
 

saila

Moderatorle

AW: formulardaten werden nicht in mysql datenbank gespeichert

Hi,

also bevor hier noch weiter im großen Stil schlechter Code und falsche/fehlerhafte Beispiele folgen:

PHP:
<?php
error_reporting(E_ALL);

$feld1 = isset($_POST['deineInputTag1']) ? $_POST['deineInputTag1'] : '';
$feld2 = isset($_POST['deineInputTag2']) ? $_POST['deineInputTag2'] : '';

if(is_string($feld1) && is_string($feld2)) {
    $query = "INSERT INTO tableName 
                (feld1, feld2) 
            VALUES 
                ('". mysql_real_escape_string($feld1) ."', 
                 '". mysql_real_escape_string($feld1) ."')");

    $res = mysql_quey($query) or die (mysql_error());
} else {
    /**
     * deine Errors
     */
}
?>
 

ogart

will_besser_werden

AW: formulardaten werden nicht in mysql datenbank gespeichert

Alternativ zu K-Dagw's Vorschlag könntest du auch mal folgenden Query testen (wenn keine der 3 Varianten was bewirkt, ist iwas nicht ok):
PHP:
mysql_query("INSERT INTO
cds SET titel='" . $title . "', interpret='" . $interpret . "'");
mit der variante bin ich dem ziel ein kleinen schritt näher aber noch weit entfernt und zwar wird hiermit eine weitere spalte angelegt aber ohne inhalt.
hier noch mal mein code:
include (xxxx.php)ist die verbindung zur datenbank
HTML:
<html>

<body>

<?PHP


if($_POST['button'] == " OK "){

 include("xxxxx.php");
 
 
 mysql_query("INSERT INTO
'cds' SET titel='" . $title . "', interpret='" . $interpret . "'"); 

 mysql_close();


 echo "Die Daten wurden eingetragen<br>";
 echo "<a href='insert.php'>neuer Eintrag</a><br>";
 echo "<a href='fetcharr.php'>zur Übersicht</a>";

}
else { 

 echo "<form method='post' action='insert.php'>";

 echo "<input type='text' name='interpret' value='interpret'><br>";

 echo "<input type='text' name='titel' value='titel'><br>";

 echo "<input type='submit' name='button' value=' OK '>";

 echo "</form>";
 

} 
?>

</body>

</html>
aber trotzdem 1000 ´end dank für eure mühe
 

Dennis__

Grafik / Web

AW: formulardaten werden nicht in mysql datenbank gespeichert

$title und $interpret sind POST-Variabeln!

Du musst $_POST['titel'] und $_POST['interpret'] benutzen.
 

saila

Moderatorle

AW: formulardaten werden nicht in mysql datenbank gespeichert

Alternativ zu K-Dagw's Vorschlag könntest du auch mal folgenden Query testen (wenn keine der 3 Varianten was bewirkt, ist iwas nicht ok):
PHP:
mysql_query("INSERT INTO
cds SET titel='" . $title . "', interpret='" . $interpret . "'");
mit der variante bin ich dem ziel ein kleinen schritt näher aber noch weit entfernt und zwar wird hiermit eine weitere spalte angelegt aber ohne inhalt.
hier noch mal mein code:
include (xxxx.php)ist die verbindung zur datenbank
HTML:
<html>

<body>

<?PHP


if($_POST['button'] == " OK "){

 include("xxxxx.php");
 
 
 mysql_query("INSERT INTO
'cds' SET titel='" . $title . "', interpret='" . $interpret . "'"); 

 mysql_close();


 echo "Die Daten wurden eingetragen<br>";
 echo "<a href='insert.php'>neuer Eintrag</a><br>";
 echo "<a href='fetcharr.php'>zur Übersicht</a>";

}
else { 

 echo "<form method='post' action='insert.php'>";

 echo "<input type='text' name='interpret' value='interpret'><br>";

 echo "<input type='text' name='titel' value='titel'><br>";

 echo "<input type='submit' name='button' value=' OK '>";

 echo "</form>";
 

} 
?>

</body>

</html>
aber trotzdem 1000 ´end dank für eure mühe

Du solltest dir mal Zeit nehmen und die ganzen Hinweise hier im Thread lesen und nicht immer überfliegen und dabeidas wichtigste übersehen.
 

saila

Moderatorle

AW: formulardaten werden nicht in mysql datenbank gespeichert

Deine Frage und Lösung des Problem war bereits Gestern, 16:44 beantwortet. Und wenn das nicht ausreichend war (was ich nicht annehme), dann sind hier in den Beiträgen mehr als ausreichend Antworten und Lösungen enthalten ;)
 

ogart

will_besser_werden

AW: formulardaten werden nicht in mysql datenbank gespeichert

Deine Frage und Lösung des Problem war bereits Gestern, 16:44 beantwortet. Und wenn das nicht ausreichend war (was ich nicht annehme), dann sind hier in den Beiträgen mehr als ausreichend Antworten und Lösungen enthalten ;)

wie sicherlich unschwer zu erkennen ist das noch neuland für mich. aber ich bemühe mich. würde ich alles sofort verstehen wie ihr profis hier, bräucht ich nicht dumm nachfragen ;)
 

saila

Moderatorle

AW: formulardaten werden nicht in mysql datenbank gespeichert

:) - es geht nicht um das fragen, sondern darum, dass du im Grunde das umsetzt, was hier als Lösungsansatz vorgeschlagen wird.

Wenn hier schon ein Beispiel zu einem input-tag ist und dessen Namen dann später mittels php als $_POST['input-tag-name'] zu verwenden ist - sowohl als prüfung, ob ein Wert enthalten ist oder später zur Übergabe an eine Variable, welche wiederum dann verwendet wird, um diese in den Query-String zu integrieren, dann ist das schon eindeutig.

Also nur mut zum probieren, teseten oder wie immer du es nennen möchtest!!
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben