Formular mit DB-Abfrage

Alles, was PHP betrifft, kann hier besprochen werden.

Formular mit DB-Abfrage

Postby thomy » 29. May 2013 03:59

Hallo zusammen

Da ich in PHP und SQLite-DB mit PDO nicht so gut bin, stelle ich hier meine Frage.

Ich möchte mit einem PHP-Formular Daten in eine SQLite-DB reinschreiben und diese via einer HTML-Seite wieder anzeigen lassen. Dafür habe ich aus dem einten und anderen Beispiel aus dem Netz was zusammengestellt. Im PHP-Script hat es jetzt noch einen Fehler, kriege ihn aber nicht raus. Die Fehlermeldung ist:
Warning: Invalid argument supplied for foreach() in C:\wamp\www\sqlite_test\php_5.php on line 18

Kann mir jemand weiterhelfen?

Es grüsst
Thomy

Hier die Scripts
das Formular
Code: Select all
<html>
<head>
</head>
<body>
<form action="php_5.php" method="POST">
    <table>
        <tr>
            <td>Name:</td><td><input name="name"/></td>
        </tr>
        <tr>
            <td>Email:</td><td><input name="email"/></td>
        </tr>
        <tr>
            <td>Kommentar:</td><td><textarea name="kommentar"></textarea></td>
        </tr>
        <tr>
            <td></td><td><input type="submit" value="Submit"/></td>
        </tr>
    </table>
</form>
</body>
</html>



Hier das PHP-Script dazu
Code: Select all
<?php
try
{
   //DB öffnen
   $db = new PDO('sqlite:test_5.db');

   $name = $_POST["name"];
   $email = $_POST["email"];
   $comments = $_POST["kommentar"];

   //Daten aus Formular in DB einfügen
   $db->exec("INSERT INTO feedback (name, email,kommentar) VALUES ('&name', '&email','&kommentar');");

   //Daten als html-Datei anzeigen lassen
   print "<table border=1>";
   print "<tr><td>Id</td><td>Name</td><td>Email</td><td>Kommentar</td></tr>";
   $result = $db->query('SELECT * FROM test_5');
   foreach($result as $row)
   {
      print "<tr><td>".$row['feedbackid']."</td>";
      print "<td>".$row['name']."</td>";
      print "<td>".$row['email']."</td>";
      print "<td>".$row['kommentar']."</td>";
   }

   print "</table>";

   $db = NULL;
}
catch(PDOException $e)
{
   print 'Exception : ' .$e->getMessage();
}

?>
thomy
 
Posts: 24
Joined: 04. May 2013 12:04
Operating System: windows 7 64bit

Re: Formular mit DB-Abfrage

Postby Altrea » 29. May 2013 05:03

Hallo thomy,

Ich habe deine Code Zeilen mal in die hier im Forum dafür vorgesehene code-BBTags gepackt. Das hat zum einen den Vorteil, dass sie sich von dem restlichen Text des Threads abgrenzen als auch dass Formatierungen wie Einrückungen bestehen bleiben.
Solltest du in Zukunft also Code-Beispiele in einem Forum (hier oder woanders) posten, schau bitte nach ob das Forum etwas ähnliches anbietet.
Hier im Forum ist über dem Eingabefeld für den Forumbeitrag ein Buttom auf dem "Code" steht.

thomy wrote:Dafür habe ich aus dem einten und anderen Beispiel aus dem Netz was zusammengestellt.

So sieht das für mich auch aus :wink:

thomy wrote:Im PHP-Script hat es jetzt noch einen Fehler, kriege ihn aber nicht raus. Die Fehlermeldung ist:
Warning: Invalid argument supplied for foreach() in C:\wamp\www\sqlite_test\php_5.php on line 18

Kann mir jemand weiterhelfen?

Du setzt nichtmal XAMPP sondern WampServer ein und möchtest nun, dass wir dein Script supporten? Mutig mutig :D
Aber ich will mal nicht so sein.

Zum einen verwendest du zwar PDO und umrahmst deinen PDO Code mit einem try-catch Block, hast PDO aber gar nicht angewiesen Exceptions als Fehlerausgabe zu verwenden. Mehr zu dem Thema hier: http://php.net/manual/de/pdo.error-handling.php

Da du auch sonst keinerlei Fehlerausgabe Funktionen implementiert hast, wird auch nichts dergleichen ausgegeben und du vertraust blind darauf, dass alles gut gehen wird.
Das führt letztendlich dazu (wenn nicht alles gut geht), dass Variablen Werte enthalten können, die du so nicht erwartest. Und wenn du darauf nicht prüfst, läufst du gegen die Wand. In deinem Fall enthält $result nicht das, was du erwarten würdest.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Formular mit DB-Abfrage

Postby thomy » 29. May 2013 21:06

Hoi Altrea

Danke für den Hinweis, die codes entsprechend zu posten.

Stimmt, ich kann gut den WampServer deinstallieren und den XAMPP aufsetzen, was ja kein Problem (mehr) ist...zumal ich jetzt mit PDO/SQLite3 fortfahre.

Ok, ich werde versuchen, die Error-Meldung zu integrieren und dann mal schauen, was dabei rauskommt. Dies wird aber ein paar Tage dauern, bis ich dies habe. Bin ja kein Pro und die Familie ist auch noch da:-)


Bis in ein paar Tage.

Es grüsst dich
Thomas
thomy
 
Posts: 24
Joined: 04. May 2013 12:04
Operating System: windows 7 64bit


Return to PHP

Who is online

Users browsing this forum: No registered users and 6 guests