MySQL Abfrage in ein Array speichern?

MySQL Abfrage in ein Array speichern?

am 24.03.2005 21:59:07 von Noah Bilek

Hi Leute,

ich bin Einsteiger was die PHP-Programmierung betrifft und habe ein Problem
beim Einlesen einer Datenbank in ein Array.

Die DB sieht so aus:
Abfrage: SELECT * FROM settings - 1 Datensatz
+------------+-------------+
|SettingName |SettingValue |
+------------+-------------+
|SiteVersion |0.01.01 |
+------------+-------------+

Nun möchte ich die DB in ein Array einlesen um über Schlüsselwörter (= 1.
Spalte der DB) auf die Werte (2. Spalte) zugreifen zu können.

Dafür hatte ich mir folgenden Code ausgedacht:
$sql = "SELECT * FROM settings";
$result = mysql_query($sql);
$count = 0;
$data = array();
while ($row = mysql_fetch_assoc($result))
{
$data[$count] = $row;
$count++;
}

Aber irgendwie bekomme ich die Daten nicht in die Felder bzw. kann danach
nicht darauf zugreifen.
Wo liegt mein Fehler.

Und noch eine Frage, welches PHP5/MySQL Buch könnt Ihr wirklich empfehlen?
Ich hatte mir das Buch von M. Kannegiesser geholt und bin überhaupt nicht
zufrieden damit.

Vielen Dank!

Re: MySQL Abfrage in ein Array speichern?

am 25.03.2005 00:41:35 von Niels Braczek

Noah Bilek schrieb:

> Abfrage: SELECT * FROM settings - 1 Datensatz
> +------------+-------------+
> |SettingName |SettingValue |
> +------------+-------------+
> |SiteVersion |0.01.01 |
> +------------+-------------+
>
> Nun möchte ich die DB in ein Array einlesen um über Schlüsselwörter (= 1.
> Spalte der DB) auf die Werte (2. Spalte) zugreifen zu können.

[...]

> while ($row = mysql_fetch_assoc($result))
> {
> $data[$count] = $row;
> $count++;
> }

while ($row = mysql_fetch_assoc($result)) {
$data[$row['SettingName]] = $row[SettingValue];
}

Den Präfix 'Setting' in den Spaltennamen kannst du dir komplett
schenken; diese Information ist redundant, sie steckt bereits im
Tabellennamen.

MfG
Niels

Re: MySQL Abfrage in ein Array speichern?

am 25.03.2005 07:33:00 von Noah Bilek

"Niels Braczek" schrieb:
while ($row = mysql_fetch_assoc($result)) {

$data[$row['SettingName]] = $row[SettingValue];

}

Hi Niels,

vielen Dank für den Code, er hat natürlich sofort funktioniert. Da hätte ich
irgendwie auch selbst drauf kommen können.

Was den "Präfix" im Spaltennamen betrifft dachte ich mir das der Code in den
Tiefen des Programms vielleicht lesbarer wird, zumindest für mich als
Anfänger.

Also vielen Dank und schöne Ostern.

Re: MySQL Abfrage in ein Array speichern?

am 25.03.2005 08:09:50 von Helmut Chang

Noah Bilek schrieb:

> Was den "Präfix" im Spaltennamen betrifft dachte ich mir das der Code in den
> Tiefen des Programms vielleicht lesbarer wird, zumindest für mich als
> Anfänger.

Was spricht dagegen, das Array $setting zu benennen?

Dann spricht man das ganz im den Tiefen des Programms mit
$setting['SiteVersion'] an.

Ist doch IMHO noch lesbarer.

gruss, heli

Re: MySQL Abfrage in ein Array speichern?

am 25.03.2005 08:14:35 von Noah Bilek

"Helmut Chang" schrieb:

> Was spricht dagegen, das Array $setting zu benennen?

Ja so habe ich das in meinem Code auch geschrieben, wollte hier in der NG
nur nicht mit so vielen "Setting"-Strings verwirren.