abfragen einer db automatisieren |
partykiller
Pixelschubser Threadstarter
Beiträge: 9 |
Hi,
ich muss mehrmals die inhalte einer db zählen wo die id immer gleich ist. Da ich keine lust habe jetzt für jede id eine einzelne abfrage zu schreiben dachte ich mir das das mit einer for schleife machbar sein müsste.
bis jetzt habe ich folgenden Code:
for ($i=1; $i<=8; $i++) {
$result=mysql_query("SELECT COUNT(*) FROM tabelle WHERE id= '$i'");
list($anzahl)=mysql_fetch_row($result);
}
So jetzt habe ich ja in der variablen $anzahl die anzahl der einträge mit der gleichen id, nur das die anzahl ja bei jedem durchlauf der schleife überschrieben wird.
Ich möchte aber das die anzahl der einträge erhalten bleibt. Ich weiß aber nicht wie ich das lösen könnte das jede anzahl in einer anderen variable oder als ein anderes element eines arrays gespeichert wird.
Hoffe ihr versteht was ich meine.
Danke im vorraus
---
cu Partykiller
|
 Profil
Editieren
Zitieren
|
inko
Fachidiot
Beiträge: 133 |
Dein Stil ist zwar nicht so toll, aber ich beantworte jetzt nur mal die Frage:
$anzahl = array();
for ($i=1; $i<=8; $i++) {
$result=mysql_query("SELECT COUNT(*) FROM tabelle WHERE id= '$i'");
$anzahl[$i]=mysql_fetch_row($result);
}
Na schön, ich schreib Dir auch die gute Lösung:
$bereich = "1,2,3,4,5,6,7,8";
$query = "SELECT id, count(*) as anzahl FROM tabelle WHERE id in ($bereich) GROUP BY id ORDER BY id ASC";
$rs = mysql_query ($query);
while ($data = mysql_fetch_object($rs)) {
//Was auch immer Du tun willst
echo "$data->id: $data->anzahl ";
}
Diese Nachricht wurde geändert von: inko |
 Profil
Editieren
Zitieren
|
partykiller
Pixelschubser Threadstarter
Beiträge: 9 |
Hi,
hab gerade mal deine Codes ausprobiert nur irgendwie funktionieren die bei mir nicht.
Bei dem ersten bekomm ich immer nur array ausgegeben und beim zweiten bekomm ich Objekt -> id : 1 ausgegeben.
Kann mir einer sagen woran das liegt ich habe den code genau so eingebaut wie inko ihn gepostet hat nur ich hab den namen der tabelle eingegeben. Und bei der Variante mit der for schleife hab ich echo "$anzahl[1]"; eingefügt.
---
cu Partykiller
|
 Profil
Editieren
Zitieren
|
inko
Fachidiot
Beiträge: 133 |
Das erste funktioniert vermutlich tatsächlich nicht, wenn ich mir das so überlege, aber das solltest Du sowieso nicht verwenden. Es belastet die Datenbank unnötigerweise, die Ausführungszeit Deines Scriptes wird länger und Deinem Webhoster wird das nicht gefallen.
Zum zweiten:
Da waren ein paar Leerzeichen an den falschen Stellen.
Scheint so, als ob das Forum PHP-Code nicht besonders mag.
Auf jeden Fall darf kein Leerzeichen bei den Konstrukten:
$data->id und $data->anzahl sein.
Wenn Du lieber mysql_fetch_array verwenden willst, dann funktioniert das in dem Zusammenhang natürlich auch, ich bin halt OOP gewohnt und benutze ausschliesslich Objekte.
|
 Profil
Editieren
Zitieren
|