Zelle aus datenbank in variable speichern

Hallo
Ich habe folgendes Problem:
Ich will aus einer MySQL-Tabelle eine bestimmte Zelle auslesen und in einer Variable speichern.
ich hab mir folgendes PHP-Script zusammengebasselt:

<?php mysql_connect("XXXXXX", "XXXXXX", "XXXXXX");<br />mysql\_select\_db("www\_content");
$result[1] = mysql\_query("SELECT id1 FROM news\_id WHERE feld\_set='1'");
$id[1] = mysql\_fetch\_row($result[1]);
$result[2] = mysql\_query("SELECT id2 FROM news\_id WHERE feld\_set='1'");
$id[2] = mysql\_fetch\_row($result[2]);
$result[3] = mysql\_query("SELECT id3 FROM news\_id WHERE feld\_set='1'");
$id[3] = mysql\_fetch\_row($result[3]);
echo "$id[1]
";
echo "$id[2]
";
echo "$id[3]";
?\>

Aber wenn ich die Seite aufrufe steht da nur:

Array
Array
Array

Was hab ich im code falsch gemacht?

mfG, Nino

Hallo

Moin moin!

Ich habe folgendes Problem:
Ich will aus einer MySQL-Tabelle eine bestimmte Zelle auslesen
und in einer Variable speichern.
ich hab mir folgendes PHP-Script zusammengebasselt:

Scheint sich ja doch noch nicht erledigt zu haben :wink:

<?php :mysql_connect("XXXXXX", "XXXXXX", "XXXXXX");
mysql\_select\_db("www\_content"); $result[1] = mysql\_query("SELECT id1 FROM news\_id WHERE feld\_set='1'"); $id[1] = mysql\_fetch\_row($result[1]); $result[2] = mysql\_query("SELECT id2 FROM news\_id WHERE feld\_set='1'"); $id[2] = mysql\_fetch\_row($result[2]); $result[3] = mysql\_query("SELECT id3 FROM news\_id WHERE feld\_set='1'"); $id[3] = mysql\_fetch\_row($result[3]); echo "$id[1] "; echo "$id[2] "; echo "$id[3]"; ?\>

Erstens: Du fragst mit 3 Queries immer den gleichen Datensatz ab und liest dabei lediglich jedes Mal einen anderen Datensatz aus. Das ist zum Einen unsauber und zum Anderen nicht performant.
Das Problem resultiert vorallem daraus, dass es eben möglich ist mehrere Felder mit nur einem Query abzufragen. Deshalb gibt mysql_fatch_*() auch immer ein weiteres Array zurück, wodurch du in deinem Fall ein mehrdimensionales Array erhälst. Das ist aber nicht nötig, denn es geht auch mit nur einem Query:

$result = mysql\_query ('SELECT id1, id2, id3 FROM news\_id WHERE feld\_set=\'1\'');
$ids = mysql\_fetch\_assoc ($result);

Ich verwende mysql_fetch_assoc(), da es ausschließlich Feldnamen als Schlüssel verwendet. Du kannst dann also über $array[‚id1‘], $array[‚id2‘] und $array[‚id3‘] auf deine Felder zugreifen. Ist doch viel schöner, oder?

Ich empfehle allerdings immer die Feld- und Tabellennamen in Queries in ` zu setzen. Das hat den Vorteil, dass bei Verwendung von reservierten Wörtern (zum Beispiel Namen von Funktionen in MySQL oder so) kein Fehler auftritt. Wenn man sich das von Anfang an angewöhnt bekommt man nie Probleme aufgrund des Namens eines Feldes.

Aber wenn ich die Seite aufrufe steht da nur:

Array
Array
Array

Was hab ich im code falsch gemacht?

mfG, Nino

Ich hoffe ich konnte dir helfen.
Lutz