Datenbank abfrage gibt nichts aus

Hallo,

bin der Verzweiflung schon nahe. Habe eine Tabelle Kunden in der Datenbank und möchte Sie ausgeben. Die Datenbank existiert, die Tabelle auch heißt auch so. Habe sogar schon die select abfrage über phpmyadmin erstellt. Es wird einfach nichts angezeigt. Die Feldnamen stimmen auch überein.


<?php
$verbindung = mysql_connect ("localhost", "root", "") or die ("Konnte Verbindung nicht herstellen");
mysql_select_db ("datenbankname", $verbindung) or die ("Konnte Datenbank nicht auswählen");
$query = "SELECT * FROM Kunden";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<br>";
echo "Vorname: " .utf8_encode($line['Vorname']) ."<br>";
echo "Name: ".utf8_encode($line['Name'])."<br>";
echo "E-Mail: ".utf8_encode($line['E-Mail'])."<br>";
echo "Telefon: ".utf8_encode($line['Telefon'])."<br>";
}
mysql_free_result($result);
mysql_close($verbindung);;
?>

Please Help
 
Benutz bitte die Tags falls du hier Code postest.

Probier doch einmal folgendes:

PHP:
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo '<pre>';
var_dump($line);
echo '</pre>';
}

Um mal zu sehen, ob überhaupt Inhalt da ist.
 
Hast du es schonmal ohne die Funktion "utf8_encode" probiert? Sind ausserdem alle Feldnamen auch von der Groß-/Kleinschreibung her richtig?

Änder doch auch mal folgende Zeile:
PHP:
$result = mysql_query($query);
 
Danke für eure Hilfe.
Leider hat nichts davon funktioniert.
Hier ist ein kleiner Auszug aus der Tabelle Kunden
id int(10) UNSIGNED Nein auto_increment
Vorname varchar(60) Nein
Name varchar(60) Nein
PLZ int(5) Nein 0
Ort varchar(60) Nein
E-Mail varchar(60) Nein

Welche Tags muss ich benutzen wenn ich code reinstelle.
Dankeschonmal
 
Zur Einbindung eines Codes einer spezifischen Sprache kannst du den Kurznamen der Sprache verwenden in eckigen Klammern. zB ergäbe [code=php]echo "Hallo Welt!";[/code]
PHP:
echo "Hallo Welt!";

Nun zu deinem Problem:
Ich habe mal die Abfrage ein wenig abgeändert. Wenn nun Anzahl: 0 ausgegeben wird, wäre das die Ursache: Keine Datensätze zum auslesen. Wenn aber zuvor schon überhaupt keine Ausgabe erfolgt ist, wäre das zweite Semikolon nach dem mysql_close die wahrscheinlichste Ursache gewesen. (Habe das bereits korrigiert)

Habe hier und da noch ein paar "Schönheitsfehler" ausgebessert - Wenn auch nicht perfekt, sollte es in der Endanwendung feiner sein, Fehler hintenrum abzufangen und wohl formuliert auszugeben. Das heißt, dass sämtliche aufklärende Fehlermeldungen nur in der Produktivphase ausgegeben werden sollten um Fehler zu ermitteln. Der normale Client kann damit eh nix anfangen.

PHP:
<?php
if (!$verbindung = mysql_connect("localhost", "root", "") ||
    !mysql_select_db("datenbankname", $verbindung)) {
    echo "Konnte keine Datenbankverbindung herstellen";
    exit;
}

# $query = "SELECT * FROM `Kunden`;";
$query = "SELECT COUNT(*) FROM `Kunden`;";
if (!$result = mysql_query($query)) {
    echo "Anfrage fehlgeschlagen: " . mysql_error());
    exit;
}

list($anzahl) = mysql_fetch_row($result);
echo "Elemente in Tabelle: {$anzahl}\n";

/*
Für erstes Query wieder Kommentarelement wieder entfernen

// fetch_assoc statt fetch_array with MYSQL_ASSOC -> effizienter
while ($line = mysql_fetch_assoc($result)) {
    echo "<br>"
       . "Vorname: " . utf8_encode($line['Vorname']) . "<br>"
       . "Name: " . utf8_encode($line['Name']) . "<br>"
       . "E-Mail: " . utf8_encode($line['E-Mail']) . "<br>"
       . "Telefon: " . utf8_encode($line['Telefon']) . "<br>";
    // Verkettung ist schneller als einzelner Aufruf der echo-Pseudofunktion
}
*/

# mysql_free_result($result); --> entfernen, da nur bei großen Ergebnismengen sinnvoll und generell relativ zeitintensiv
mysql_close($verbindung); // Zweites Semikolon entfernt, da sowas die meisten Parser killt
 
Zurück