Hallo, ich habe hier ein Script, dass Kategoriedaten aus einer Datebank ausgeben soll. Diese Kategorien dienen nur der Navigation, (z.B. Produktkategorien für online-Katalog.)
Zunächst erfolgt der Verbindungsaufbau und die Abfrage der Daten, dann die
Speicherung der Daten in einem array, schließlich die Ausgabe der Daten.
Unklar ist die Datenspeicherung nach der sql-Abfrage und der Rückgabewert von der Funktion Connect_to_db.
Der Verbindungsaufbau ($filename ist die Datei Vars.php mit Login, Passwort usw.):
Die Abfrage der Daten:
Nun werden die Daten in einem Array gespeichert:
und dann ausgegeben:
Hier kommt nun eine Fehlermeldung. Bei der Ausgabe der Daten erkennt der Parser $food_categories nicht als Variable: Undefined Variable
Grade die Zeile $food_categories[$row['category']][$n]=$row['type']; ist mir sehr schleierhaft!? Hat jemand dazu eine Erklärung?
Ausgegeben wird ein verschateltes Array. Also sollten die Daten in $food_categories auch so vorliegen!!
Die zweite Frage wäre, warum in Connect_to_db der Wert von $connection und nicht von $db zurückgegeben wird. Tatsächlich funktioniert es nur, wenn $connection zurückgegeben wird. Da fehlt dann ja eigentlich die Ansteuerung der Datenbank.
Vielen Dank,
MFG Iago
Zunächst erfolgt der Verbindungsaufbau und die Abfrage der Daten, dann die
Speicherung der Daten in einem array, schließlich die Ausgabe der Daten.
Unklar ist die Datenspeicherung nach der sql-Abfrage und der Rückgabewert von der Funktion Connect_to_db.
Der Verbindungsaufbau ($filename ist die Datei Vars.php mit Login, Passwort usw.):
PHP-Code:
function Connect_to_db($filename){
include($filename);
$connection = mysqli_connect($host,$user,$passwd)
or die ('Keine Verbindung zum Server.');
$db = mysqli_select_db($connection,$database)
or die ('Datenbank nicht verfügbar.');
return $connection;
}
Die Abfrage der Daten:
PHP-Code:
$cxn = Connect_to_db('Vars.php');
$query = 'SELECT DISTINCT category, type FROM Futterladen ORDER BY category,type';
$result = mysqli_query($cxn,$query) or
die ('Konnte Abfrage nicht starten:'.mysqli_error($cxn));
PHP-Code:
while($row = mysqli_fetch_array($result))
{
$food_categories[$row['category']][$n]=$row['type'];
}
PHP-Code:
...
foreach($food_categories as $key => $subarray){
echo '<h3>'.$key.'</h3>';
echo '<ul>';
foreach($subarray as $type){
echo '<input type="radio" name="interest" value="$type"/><b>'.$type.'</b><br/>';
}
echo '</ul>';
}
Grade die Zeile $food_categories[$row['category']][$n]=$row['type']; ist mir sehr schleierhaft!? Hat jemand dazu eine Erklärung?
Ausgegeben wird ein verschateltes Array. Also sollten die Daten in $food_categories auch so vorliegen!!
Die zweite Frage wäre, warum in Connect_to_db der Wert von $connection und nicht von $db zurückgegeben wird. Tatsächlich funktioniert es nur, wenn $connection zurückgegeben wird. Da fehlt dann ja eigentlich die Ansteuerung der Datenbank.
Vielen Dank,
MFG Iago
Kommentar