PDA

Vollständige Version anzeigen : Brauche Hilfe von Progger zu DB Abfrage


dieter-kh
18.11.2007, 18:56
Hallo @ all,
Ich möchte im Adminbereich Anzeigen lassen wie viele User Paidmails empfangengen wollen !!

Hal mal ne DB Abfrage wie folgt Probiert:

$test = db_query("SELECT * FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' and freigabe_fuer = '2'");

Wie müsste dann die Augabe Aussehen ??

//////////
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr>
<td>Anzahl der Empfänger <?=number_format(?????,0,",",".");?></td></tr>
</table>
//////////

Besten Dank in voraus und Schönes WE!!
Denn nur wer fragt dem wird geholfen !!

Hardy
18.11.2007, 20:27
Hallo @ all,
Ich möchte im Adminbereich Anzeigen lassen wie viele User Paidmails empfangengen wollen !!

Hal mal ne DB Abfrage wie folgt Probiert:

$test = db_query("SELECT * FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' and freigabe_fuer = '2'");

Wie müsste dann die Augabe Aussehen ??

//////////
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr>
<td>Anzahl der Empfänger <?=number_format(?????,0,",",".");?></td></tr>
</table>
//////////

Besten Dank in voraus und Schönes WE!!
Denn nur wer fragt dem wird geholfen !!

<?$test = db_query("SELECT sum(uid) AS kd_uid FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' and freigabe_fuer = '2'");?>



//////////
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr>
<td>Anzahl der Empfänger <?=number_format($test['kd_uid'],0,",",".");?></td></tr>
</table>
//////////

so würde ich das machen (ungetestet)

dieter-kh
18.11.2007, 21:41
<?$test = db_query("SELECT sum(uid) AS kd_uid FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' and freigabe_fuer = '2'");?>



//////////
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr>
<td>Anzahl der Empfänger <?=number_format($test['kd_uid'],0,",",".");?></td></tr>
</table>
//////////

so würde ich das machen (ungetestet)

HALLO;

DANKE für Deine Antwort:

hab das gemacht wie beschrieben:

<?$test = db_query("SELECT sum(uid) AS kd_uid FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' and freigabe_fuer = '2'");?>

<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr>
<td>Anzahl der Empfänger <?=number_format($test['kd_uid'],0,",",".");?></td></tr>
</table>

Alle User habe ich auf Status 1 gesezt außer Einem ((status 3 ))

Ergebniß ist: Anzahl der Empfänger 0 (müßte Eigentlich 1 sein)

Besten Dank in voraus
Denn nur wer fragt dem wird geholfen !!

schulz3000
18.11.2007, 22:47
tausche mal das sum(uid) in der Abfrage mit COUNT(uid) weil mit sum addierst du die Zahlen der Userids. Außerdem muss noch ein Array erstellt werden das du auslesen kannst im Moment führst du nur einen query aus.

Im Klartext: Diese Zeile:
<?$test = db_query("SELECT sum(uid) AS kd_uid FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' and freigabe_fuer = '2'");?>

sollte so aussehen:

<?$test = mysql_fetch_array(db_query("SELECT COUNT(uid) AS kd_uid FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' and freigabe_fuer = '2'"));?>


alternativ könnte man das ganze auch so umsetzen:

<?$test = db_query("SELECT uid AS kd_uid FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' and freigabe_fuer = '2'");?>

//////////
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr>
<td>Anzahl der Empfänger <?=number_format(mysql_num_rows($test),0,",",".");?></td></tr>
</table>
//////////


ist aber glaub ich beides gleich Datenbanklastig

dieter-kh
19.11.2007, 16:51
tausche mal das sum(uid) in der Abfrage mit COUNT(uid) weil mit sum addierst du die Zahlen der Userids. Außerdem muss noch ein Array erstellt werden das du auslesen kannst im Moment führst du nur einen query aus.

Im Klartext: Diese Zeile:
<?$test = db_query("SELECT sum(uid) AS kd_uid FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' and freigabe_fuer = '2'");?>

sollte so aussehen:

<?$test = mysql_fetch_array(db_query("SELECT COUNT(uid) AS kd_uid FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' and freigabe_fuer = '2'"));?>


alternativ könnte man das ganze auch so umsetzen:

<?$test = db_query("SELECT uid AS kd_uid FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' and freigabe_fuer = '2'");?>

//////////
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr>
<td>Anzahl der Empfänger <?=number_format(mysql_num_rows($test),0,",",".");?></td></tr>
</table>
//////////


ist aber glaub ich beides gleich Datenbanklastig

Danke für Deine Antwort !!

Bei beiden Möglichkeiten was das Ergebnis immer = 0

Hab das jezt wie folgt gemacht funktioniet sogar:

[PHP]<?$test = mysql_fetch_array(db_query("SELECT COUNT(uid) AS kd_uid FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer >= '2'"));?>
<? head("Mailuser"); ?>
<table width="100%" cellpadding="1" cellspacing="0" border="0" bgcolor="#c0c0c0">
<tr>
<td>Anzahl der Empfänger <?=number_format($test['kd_uid'],0,",",".");?></td>
</tr>
</table>
<?foot();?>[PHP]

schulz3000
19.11.2007, 18:08
hast du auch wirklich einen User in der Tabelle ".$db_prefix."_emaildaten bei dem im Feld freigabe_fuer ein Zahl >= 2 steht?

dieter-kh
19.11.2007, 20:33
hast du auch wirklich einen User in der Tabelle ".$db_prefix."_emaildaten bei dem im Feld freigabe_fuer ein Zahl >= 2 steht?

Ja ich habe bei freigabe_fuer die Zahl 2 bzw.3 eingegeben.
Das bei mehreren Usern das Ergebniss hat jedesmal gestimmt.

Zur Begründung dieses Aktion:
Ich beteibebe nicht wirklich eine Seite sondern bastele seid längerem
an einem WMS.
Die Abfrage möchte ich nutzen damit es nicht zur Überbuchung
bei Usermails kommt !!
Hab ich auch Eingebaut und es funktioniert.

!! Deine Antwort hat mir dabei sehr Geholfen !!