Daten aus While schleife weiter verwenden
maxm
- php
0 zaphod19840 Tom
Hallo Forum,
ich habe folgendes Problem:
Ich will mir aus einer MySQL Datenbank Werte holen und in ein Array schreiben. Komm nur leider mit dem Array überhaupt nicht zurecht.
So hol ich mir die Daten aus der Datenbank:
$query = "SELECT * FROM tabelle where feld1 = wert1";
$result = mysql_query($query);
$zeilen = mysql_numrows($result);
while ($row = mysql_fetch_object($result)){}
Die Daten in der Datenbank sind so gespeichert:
id|name|nummer
id_1|name_1|nummer_1
id_2|name_2|nummer_2
id_3|name_3|nummer_3
Diese Daten brauch in dann so:
$data = array(name_1, name2);
$legends = array(nummer_1, nummer_2);
Wie stell ich das am besten an?
Vielen Dank
maxm
Überleg mal was hier passiert, bzw. bei jedem Schleifendurchlauf gemacht wird.
while ($row = mysql_fetch_object($result)){}
Hello,
Ich will mir aus einer MySQL Datenbank Werte holen und in ein Array schreiben. Komm nur leider mit dem Array überhaupt nicht zurecht.
Du machst das prinzipiell schon fast richtig.
So hol ich mir die Daten aus der Datenbank:
$query = "SELECT * FROM tabelle where feld1 = wert1";
Du solltest ggf. nicht alle Spalten (*) in die Abfrage übernehmen, sondern nur diejenigen, die Du benötigst.
$query = "SELECT id, spalte_1, spalte_7, spalte_n FROM tabelle where feld1 = 'wert1'";
Und Werte stehen (meistens) besser in einfachen Anführungszeichen verpackt in der Abfrage.
Wenn sie von außen kommen, dann müssen sie noch speziell vorbehandelt werden; manchmal aber auch, wenn sie aus dem Programm selbst kommen :-)
$result = mysql_query($query);
Und nun bitt erst nachfragen, ob das Query geklappt hat:
$_table = array();
$_row = array();
if ($result)
{
$zeilen = mysql_numrows($result);
## wir arbeiten klassisch, also brauchen wir auch keine Objekte zu produzieren
while ($_row = mysql_fetch_assoc($result))
{
$_table[] = $_row;
}
}
echo "<pre>\r\n";
echo htmlspecialchars(print_r($_table,1));
echo "</pre>\r\n";
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
☻\_
/▌
/ \ Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>
Hi!
Wenn [die Daten] von außen kommen, dann müssen sie noch speziell vorbehandelt werden; manchmal aber auch, wenn sie aus dem Programm selbst kommen :-)
Es ist vollkommen egal, wo die Daten herkommen. Es interessiert nur, wo sie hingehen und dass die dortigen Syntaxregeln eingehalten werden. Es heißt ja oftmals: "Prüfe deine Eingabedaten." Das ist jedoch aus sicherheitstechnischer Sicht nebensächlich. Es ist wichtiger die Ausgabedaten richtig zu behandeln. Ich wäre sehr dafür, die Argumentation in "Behandele deine Ausgabedaten" zu ändern.
Lo!
Hello,
Wenn [die Daten] von außen kommen, dann müssen sie noch speziell vorbehandelt werden; manchmal aber auch, wenn sie aus dem Programm selbst kommen :-)
Es ist vollkommen egal, wo die Daten herkommen. Es interessiert nur, wo sie hingehen und dass die dortigen Syntaxregeln eingehalten werden. Es heißt ja oftmals: "Prüfe deine Eingabedaten." Das ist jedoch aus sicherheitstechnischer Sicht nebensächlich. Es ist wichtiger die Ausgabedaten richtig zu behandeln. Ich wäre sehr dafür, die Argumentation in "Behandele deine Ausgabedaten" zu ändern.
Mehr Ja als Nein :-)
Du hast natürlich Recht: unbekannte Daten müssen immer behandelt werden, bevor sie an die SQL-Text-Schnittstelle übergeben werden. Nur, wenn ich ganz genau weiß, dass die Daten der Konvention dieser Schnittstelle bereits entsprechen, muss ich sie nicht mehr durch eine Escapefunktion jagen, die schließlich Leistung kostet.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg