MYSQL Datenbank abfrage liefert nur "Array"

Nikke123

Mitglied
Hallo Leute,

Ich habe ein Problem an dem ich seid 2 Stunden google, aber nichts bei mir klappt. Mein folgender Code liefert bei der Ausführung nur das Ergebnis : ArrayArrayArrayArray... usw. Woran liegt das?
PHP:
<?php
$choosen = $_POST["name"];
$link = mysql_connect('localhost', "root", "");
if (!$link) {
    die('keine Verbindung möglich: ' . mysql_error());
}
echo 'MYSQL Verbindung konnte erfolgreich hergestellt werden...' . "<br><hr>";
$dbname = 'phpvortrag';
mysql_select_db($dbname, $link);
$fieldname = "f";
for($i = 1; $i < 13; $i++){
$sql = "SELECT '".$fieldname.$i."' FROM faecherliste WHERE name = '".$choosen."' ";
$fr[$i] = mysql_query($sql) or die (mysql_error());
$_array = mysql_fetch_assoc($fr[$i]);
echo $_array;
}

?>
Ich hoffe ihr könnt helfen. Vielen Dank schonmal im Vorraus ;)
Nikke
 
Das liegt daran das $_array nunmal ein Array ist. Schau dir mal mysql_fetch_assoc nochmal an.

Oder du schreibst mal:

PHP:
var_dump($_array);

P.S. Setzte bitte deinen Code in die entsprechende Code-Tags, ist einfacher zu lesen.
 
Hi und herzlich Willkommen bei tutorials.de,

das passiert, weil mysql_fetch_assoc() ein Array zurückgibt, dessen Indizes den Spaltennamen aus dem SELECT entsprechen. Du müsstest also den Wert so ausgeben:

PHP:
echo $_array[$fieldname.$i];

Zudem möchte ich anmerken, dass dein Programmcode höchst ineffektiv ist. Du könntest lieber alle Felder in einem SQL Statement abrufen und dann einmal das Ergebnis abholen statt 12 mal das gleiche Statement abzusetzen.

Best regards
 
Hi,

die Funktion mysql_fetch_assoc() liefert immer ein assoziatives Array als Ergebnis, auch wenn es nur eine Spalte gibt.
Das erkennst du, wenn du statt dem "echo $_array" ein "var_dump($_array)" machst.

Das gewünschte Ergebnis könntest du wie folgt erreichen:
PHP:
$_array = mysql_fetch_array($fr[$i], MYSQL_NUM); 
$_array = $_array[0];

Ausserdem ist deine Perfomance nicht gerade die Beste mit der obigen Schleife ;)

// Edit: zu langsam :O Wahnsinn wie schnell heute die Leute sind :D

Gruß
BK
 
Zuletzt bearbeitet:
@Tim Bureck:
Wie könnte ich das denn in einem mal abholen UND DANN die ergebnisse auch trennen? Denn das Ergebnis aller Spalten sind alle meine Kurse , die ich in der Schule belegt habe und die haben keine feste Länge, also die Kursnamen bzw Kürzel. Deinen Vorschlag mit
echo $_array[$fieldname.$i];
Hab ich ausprobiert aber dann kam das Raus:
f1f2f3f4f5f6f7f8f9f10f11f12
@Alle
Danke für die schnelle Hilfe. ;) Und danke für die ganzen Tipps ;)

Edit: Man ahalte mich für blöd... :D Aber ich hab es rausgefunden wie es geht. Danke Leute ;)
Hier noch der Letzte neue Codeschnipsel
PHP:
echo 'MYSQL Verbindung konnte erfolgreich hergestellt werden...' . "<br><hr>";
$dbname = 'phpvortrag';
mysql_select_db($dbname, $link);
$sql = "SELECT * FROM faecherliste WHERE name = '".$choosen."' ";
$query = mysql_query($sql) or die (mysql_error());
$_array = mysql_fetch_assoc($query);
echo $_array['f1'];
echo $_array['f2'];
echo $_array['f3'];
echo $_array['f4'];
 
Zuletzt bearbeitet:
Zurück