Einzelnen Beitrag anzeigen
Alt
24. November 2013, 18:10
ArcherV ist offline  
ArcherV
Beiträge: 25.742
Artikel: 6

Zitat:
Zitat von Jolka248 Beitrag anzeigen
Hier gibt's doch ein paar Leute mit php-Kenntnissen. @jo, Archer(eingerostet?), Need(?), ...

Ich muss mir gerade php beibringen und will eine Datenbankanfrage machen.

Kann mir jemand erklären warum ich da in einer Endlosschleife hänge?
Dabei steht in der Beschreibung zu mysql_fetch_array folgendes:


Wenn der Datenzeiger automatisch vorwärts geht, warum gibt er mir also immer und immer wieder nur den ersten Datensatz aus? Ich komm da einfach nicht drauf klar.
PHP-Code:
<?php
    mysql_connect
("127.0.0.1""root""") or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    echo 
"Verbindung zur Datenbank hergestellt<p>";
    
$schema "zitadelle";
    
mysql_select_db($schema) or die("Datenbank <i>" .$schema ."</i> konnte nicht ausgew&auml;hlt werden");
    echo 
"Datenbank " .$schema ." ausgew&auml;hlt<p>";
    
    
// SQL-Query und Ergebnis der Abfrage in Array speichern
    
$sql "SELECT * FROM author";
    
$ergebnis mysql_query($sql);
    
    while(
$zeile mysql_fetch_array($ergebnis)) {
        
        
$auth $zeile["author"]; 
        echo 
"$auth, <br>";
    }
    
mysql_close();
    echo 
"<p>Verbindung zur Datenbank geschlossen";
?>
Ganz wichtig:
PHP-Code:
$sql "SELECT * FROM author";
$ergebnis mysql_query($sql); 

Wenn du mysql_query mit in die Schleife reinnimmst setzt er den SQL Befehl immer und immer wieder ab, deswegen die Endlosschleife.
Er lädt also erstmal den kompletten Datensatz in $ergebnis. Also alle selektierten Einträge.
Mit mysql_fetch_array wird $ergebnis dann auseinander gezogen und in den verschiedenen Datensätzen aufgeteilt.

Ich bin davon ausgegangen das deine Tabelle "author" heißt und die Überschrift der Spalte "author" ... wichtig Groß/Kleinschreibung in der Zeile $auth = $zeile["author"]; achten... und Spaltenüberschriften niemals doppelt nehmen.