PDA

Vollständige Version anzeigen : while-schleife in einer while-schleife


oOpuethOo
10.01.2007, 20:52
Hallöchen,

ich habe ein kleines Problem.
Ich frage in meiner DB 2 Tabellen ab, welche in meiner in einer Tabelle wiedergeben werden sollen. Einzeln geht alles, aber irgendwo setze ich wohl die Klammern falsch.
Das ganze soll als Übersicht dienen, wieviel Banner, Links und Paidmails von welchem Sponsor in der Datenbank enthalten sind.

Gruß
pueth


<?head("Banner-, Klick- und Mailstatistik");?>
<table align="center" width="100%" border=1 bgcolor="#ffffff" bordercolor="#000000" style="border-collapse: collapse;" cellspacing=1 cellpadding=1>
<tr bgcolor="#cfcfcf">
<td width="50%" align="center"><b>Anbieter</b></td>
<td width="30%" align="center"><b>Werbeart</b></td>
<td width="20%" align="center"><b>Anzahl</b></td>
</tr>
<?
$anzahl_werbung = mysql_fetch_array(db_query("SELECT COUNT(*) AS anzahl FROM ".$db_prefix."_gebuchte_werbung GROUP BY werbeart, sponsor ORDER BY sponsor"));
$werbung = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung GROUP BY werbeart, sponsor ORDER BY sponsor");
while ($ausgabe_werbung = mysql_fetch_array($werbung)) {
echo'
<tr bgcolor="#f0f0f0">
<td width="50%" align="center">'.$ausgabe_werbung['sponsor'].'</td>
<td width="30%" align="center">'.$ausgabe_werbung['werbeart'].'</a></td>
';
}
while ($ausgabe_anzahl_werbung = mysql_fetch_array($anzahl_werbung)) {
echo'
<td width="20%" align="center">'.$ausgabe_anzahl_werbung['anzahl'].'</a></td>
</tr>
';
}
?>
</table>
<?foot();?>

oOpuethOo
10.01.2007, 21:59
Ich habe das ganze nochmal getestet.
für die Berechnung der Anzahl gibt es keine Tabelle oder so.
Innerhalb der Datenbank funktioniert auch der Befehl "SELEcT COUNT...", aber wenn ich den Code innerhalb der PHP ausführe geht nichts bzw. wird kein Wert zurückgegeben, so kommt auch die Tabelle in der PHP nicht zum Vorschein.

Ich hoffe das hilft noch und mir kann jemand weiterhelfen.

Gruß
pueth

SebbyPHM
10.01.2007, 22:00
<?head("Banner-, Klick- und Mailstatistik");?>
<table align="center" width="100%" border=1 bgcolor="#ffffff" bordercolor="#000000" style="border-collapse: collapse;" cellspacing=1 cellpadding=1>
<tr bgcolor="#cfcfcf">
<td width="50%" align="center"><b>Anbieter</b></td>
<td width="30%" align="center"><b>Werbeart</b></td>
<td width="20%" align="center"><b>Anzahl</b></td>
</tr>
<?
$werbung = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung GROUP BY werbeart, sponsor ORDER BY sponsor");
while ($ausgabe_werbung = mysql_fetch_array($werbung)) {
$anzahl = mysql_fetch_array(db_query("SELECT COUNT(*) AS anzahl FROM ".$db_prefix."_gebuchte_werbung GROUP BY werbeart, sponsor WHERE sponsor = '".$ausgabe_werbung['sponsor']."'"));
echo'
<tr bgcolor="#f0f0f0">
<td width="50%" align="center">'.$ausgabe_werbung['sponsor'].'</td>
<td width="30%" align="center">'.$ausgabe_werbung['werbeart'].'</a></td>
<td width="20%" align="center">'.$anzahl['anzahl'].'</a></td>
</tr>
';
}
?>
</table>
<?foot();?>

so isses viel schöner..

oOpuethOo
10.01.2007, 22:34
Original von SebbyPHM
<?head("Banner-, Klick- und Mailstatistik");?>
<table align="center" width="100%" border=1 bgcolor="#ffffff" bordercolor="#000000" style="border-collapse: collapse;" cellspacing=1 cellpadding=1>
<tr bgcolor="#cfcfcf">
<td width="50%" align="center"><b>Anbieter</b></td>
<td width="30%" align="center"><b>Werbeart</b></td>
<td width="20%" align="center"><b>Anzahl</b></td>
</tr>
<?
$werbung = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung GROUP BY werbeart, sponsor ORDER BY sponsor");
while ($ausgabe_werbung = mysql_fetch_array($werbung)) {
$anzahl = mysql_fetch_array(db_query("SELECT COUNT(*) AS anzahl FROM ".$db_prefix."_gebuchte_werbung GROUP BY werbeart, sponsor WHERE sponsor = '".$ausgabe_werbung['sponsor']."'"));
echo'
<tr bgcolor="#f0f0f0">
<td width="50%" align="center">'.$ausgabe_werbung['sponsor'].'</td>
<td width="30%" align="center">'.$ausgabe_werbung['werbeart'].'</a></td>
<td width="20%" align="center">'.$anzahl['anzahl'].'</a></td>
</tr>
';
}
?>
</table>
<?foot();?>

so isses viel schöner..

geht leider immernoch nicht, er unterlegt zwar nun die tabelle grau, wie alles andere auch und nicht mehr weiß, aber es wird immernoch kein wert zurückgegeben

Power24
10.01.2007, 23:26
hey

du musste nur die zeile 11 noch diese ersetzen

$anzahl = mysql_fetch_array(db_query("SELECT COUNT(*) AS anzahl FROM ".$db_prefix."_gebuchte_werbung WHERE werbeart = '".$ausgabe_werbung['werbeart']."' and sponsor = '".$ausgabe_werbung['sponsor']."'"));

dann läuft es

MfG Power24

SebbyPHM
10.01.2007, 23:57
oh, stimmt - werbeart muss ja auch noch mit rein ;-) war halt nur fix gemacht^^

Power24
11.01.2007, 00:34
Original von SebbyPHM
oh, stimmt - werbeart muss ja auch noch mit rein ;-) war halt nur fix gemacht^^

dafür das du es fix gemacht hast. ist es super gut.
habe das ganze schon bei mir eingebau.
Ist einfach klasse.

oOpuethOo
11.01.2007, 00:48
jup, jetzt funzt es klasse und besser habe ich es auch noch gemacht.
nun kann ich auch noch sehen, was in der Blacklist, was aktiv und was zur Löschung vorgesehen ist. :D

dude32
11.01.2007, 01:15
nettes tool...........

kann man gut gebrauchen

oOpuethOo
11.01.2007, 01:33
dachte ich mir, wenn ich es komplett ausgearbeitet habe werde ich es mal als AddOn zur Verfügung stellen

aber erstmal kämpfe ich noch mit dem ztk_cron_mailer 2.5, der läuft bei uns ned richtig
er versendet nicht alle mails, ich bleibe also immer auf mails sitzen. ;(
wer mir da helfen kann, ich würde mich über eine kurze PN freuen