zwergenalarm
Goto Top

PHP schwierikeiten mit Einstig

Guten Abend,
habe mir das Buch Einstieg 5.3& Mysql 5.4 gekauft und bin gerade am üben!
Leider komme ich nicht mit einem Beispiel PHP Skript zurecht!

Möchte auf meinem Webserver auf meine Datenbank zugreifen!
Der Code sieht folgendermaßen aus !
<html>
<body>
<?php
   /* Verbindung aufnehmen */
	$host = "localhost";  
	$user = "root";  
	$pass = "xxxxxxxx";  
   $con = mysqli_connect($host,$user,$pass);
	if(!$con)
		{
		  exit("Verbindungsfehler: ".mysqli_connect_error());  
		}
   /* Datenbank auswählen */
   mysqli_select_db("firma");  

   /* SQL-Abfrage ausführen */
   $res = mysqli_query("select * from personen");  

   /* Anzahl Datensätze ermitteln und ausgeben */
   $num = mysqli_num_rows($res);
   echo "$num Datensätze gefunden<br />";  

   /* Datensätze aus Ergebnis ermitteln, */
   /* in Array speichern und ausgeben    */
   while ($dsatz = mysqli_fetch_assoc($res))
   {
      echo $dsatz["name"] . ", "  
         . $dsatz["vorname"] . ", "  
         . $dsatz["personalnummer"] . ", "  
         . $dsatz["gehalt"] . ", "  
         . $dsatz["geburtstag"] . "<br />";  
   }
?>
</body>
</html>

Auf meiner Seite bekomme ich aber leider nur diese Ausgabe!
Datensätze gefunden
Was mache ich falsch?
Wie kann ich den Code besser debugen?
Gibt es bessere Bücher?
Lg

Content-ID: 304232

Url: https://administrator.de/contentid/304232

Ausgedruckt am: 23.11.2024 um 00:11 Uhr

tikayevent
tikayevent 11.05.2016 um 21:09:57 Uhr
Goto Top
Überhaupt irgendwelche Daten in der Datenbank?
zwergenalarm
zwergenalarm 11.05.2016 um 21:13:02 Uhr
Goto Top
Ja habe laut Anleitung des Buches mit PHPAdmin die Datenbank angelegt und Datensätze eingetragen!
Danke Lg
Arano
Arano 11.05.2016 um 21:51:06 Uhr
Goto Top
Hallo Zwergenalarm.

Fehlermeldungen hast du aktiviert !?
ERSTE Zeile (noch über <html> !)
<?php
  ini_set("display_errors", "On" );  
  ini_set("error_reporting", E_ALL );  
?>

Gehe nicht davon aus das etwas funktioniert, überprüfe es !
Die Verbindung zur Datenbank hat funktioniert da es scheinbar nicht zu dem "exit" gekommen ist. Aber wie sieht es mit den Anweisungen danach aus !?

Wurde die Datenbank wirklich ausgewählt ? Die kann gerade jetzt auch eine Defekt aufweisen oder wurde möglicherweise gelöscht !? Kann dein Programm damit weiterarbeiten.

Und das Query ? Wurde das erfolgreich abgesetzt ? Was wenn die Tabelle doch einen anderen Namen hat(z.B. Tippfehler) oder die Datenbank nicht ausgewählt werden konnte ;)

Hier muss ein Fehler vorliegen !
Denn andernfalls müsste mysqli_num_rows() eine "0" oder eine größere Zahl zurück liefern. Bei die ist es aber "leer" weswegen ich auf "FALSE" tippe. Und das weist auf einen Fehler hin, der davor gefallen sein muss.

Lass dir den Wert von $num mal mit var_dump() ausgeben.
Lass dir dann die Rückgabewerte der vorherigen Funktionen ausgeben bzw. prüfe sie auf Plausibilität.
z.B.
    $res = mysqli_query("select * from personen");  
    if( FALSE===is_resource($res) )
    {
        // TODO
        // Query ist gescheitert... Ups, was machen wir nun !?
        // Daten auflisten ist ja sinnlos wenn es keine Daten gibt.
    }
Lasse dir die Fehlermeldungen anzeigen.

Ansonsten sieht das eigentlich funktionsfähig aus.


~Arano
zwergenalarm
zwergenalarm 12.05.2016 um 13:55:30 Uhr
Goto Top
Zitat von @Arano:

<?php
>   ini_set("display_errors", "On" );  
>   ini_set("error_reporting", E_ALL );  
> ?>


Der Tipp war sehr gut! es fehlte das 2 zweite Argument im Aufruf meiner Funktionen!
Danke!

Eine Frage hätte ich noch! Kann man elegant die Abfrage immer wieder machen das sich die Daten aus der Datenbank auf der Seite Aktualisieren?

LG
Danke
BirdyB
BirdyB 12.05.2016 um 14:21:33 Uhr
Goto Top
Hallo zwergenalarm,

du kannst entweder die Seite regelmäßig neu laden lassen oder du arbeitest mit AJAX...
Zum Thema AJAX wäre hier eine beispielhafte Anleitung.

Beste Grüße!


Berthold