Anfängerproblem bei DB-Auslesen

CoffeeToGo

Grünschnabel
Moin,

um gleich alle Karten auf den Tisch zu legen: Ich bin völliger Anfänger, mit fehlen sämtliche php-Kenntnisse, die über die absoluten Basics hinausgehen, ich habe mich mit meinem Projekt wahrscheinlich überhoben, aber ich muss es trotzdem zu Ende bringen.

Daher bitte ich euch um eure freundliche Unterstützung.

Mein Problem ist folgendes ich habe aus einem Tutorial ein Script übernommen um – leicht abgeändert – folgendes Szenario zu bewältigen:

Ich habe eine Datenbank mit folgendem Muster:

Vorname Name Strasse PLZ Ort Geburtsdatum Mail
(nicht alle Felder immer ausgefüllt)

Das Script soll einfach nur die Daten auslesen und auf mehrere Seiten verteilt anzeigen.
Dafür habe ich folgendes Script "geschrieben":

PHP:
<?PHP
$sqlhost='vorhanden';
$username='dito';
$passwort='gibts auch';
$database='auch da';
$proseite=10;

$db = mysql_connect ($sqlhost,$username,$passwort);
mysql_select_db ($database);
$sql = "SELECT * FROM `table`" ;
$result = mysql_query($sql,$db);
$number = mysql_num_rows($result);
$seiten=floor($number/$proseite);
$start=$page * $proseite;
$sql="SELECT * FROM `table` LIMIT $start,$proseite";
$result = mysql_query($sql,$db);
$ende = $start + $proseite;
if ($ende>$number) { $ende = $number; }

while ($row = mysql_fetch_row($result)) {
	echo "Vorname:".$row['Vorname']." <BR> \n";
	echo "Name:".$row['Name']." <BR> \n";
	echo "Strasse:".$row['Strasse']." <BR> \n";
	echo "PLZ:".$row['PLZ']." <BR> \n";
	echo "Ort:".$row['Ort']." <BR> \n";
	echo "Geburtsdatum:".$row['Geburtsdatum']." <BR> \n";
	echo "Mail:".$row['Mail']." <BR> \n";
	echo "<p>" ;
	}
if ($page>0) {
	$i=$page-1;
	echo "<A HREF=\"liste.php?page=$i\">&lt;previous</A>";
}
for($i=0; $i<=$seiten; $i++) {
	if ($i==$page) {
		echo $i."&nbsp;";
	}
	else {
		echo "<A HREF=\"liste.php?page=$i\">$i</A>&nbsp;";
	}
}
if ($page<$seiten) {
	$i=$page+1;
	echo "<A HREF=\"liste.php?page=$i\">next&gt;</A>";
}
?>


Das Script funktioniert auch in soweit gut, als dass es die Seiten richtig handhabt, die richtige Zahl der Gesamteinträge in der Tabelle 'table' anzeigt und auch die Kategorien in richtiger Anzahl und Formatierung ausgibt. Das einzige was es nicht tut, ist den Inhalt der Tabelle korrekt auszulesen und anzuzeigen.

Die Ausgabe sieht nämlich immer so aus:

Vorname:
Name:
Strasse:
PLZ:
Ort:
Geburtsdatum:
Mail:

Leider kann ich das Problem nicht selbst lösen und bitte euch darum um eure Hilfe. Vielen Dank.

Alexander
 
Kurz mal unter http://www.php.net/mysql_fetch_row geguckt und siehe da:
Diese Funktion gibt ein nummeriertes Array zurück. Das was du versuchst, ist aber ein assoziatives Array auszulesen
Und dafür gibt es dann die Funktion mysql_fetch_assoc(), die dir auch ein solches zurückliefert.
 
Wohoo. Der Hammer. Vielen Dank. Das hat geklappt. Noch eine Frage am Rande: Was ist ein assoziatives Array?

Alexander
 
Ein Assoziatives Array kann als Key nicht nur Nummer verwenden, sondern auch Buchstaben.
zb:
PHP:
array{
"Müll" => "Muss weg"
"Auto" => "Muss kaufen"}
 
Okay. Aber man sollte vielleicht noch das Tutorial ändern, das nutzt nämlich mysql_fetch_row für ein Gäastebuch und ich denke da fallen auch eher Namen und weniger Zahlen an.

Alexander

Link zum Tutorial
 
Zurück