Seite 1 von 2
nur eine tabelle auszählen mysql
Verfasst: 21.06.2003 12:19
von maribossa
hi leute, ich habe ein tabellenfeld in mysql namens "was"
entweder ist der inhalt 1,2,3,4 oder 5 oder 0
ich will jetzt wissen wieviele einträge ich mit 2 habe oder mit 5 oder mit 0
wie geht das? das zählen dieser einträge?
Verfasst: 21.06.2003 12:54
von Xmopf
Verfasst: 21.06.2003 13:57
von maribossa
ja schon klar, aber jetzt will ich dass er folgendes macht
ZEIG MIR WIEVIELE EINTRÄGE DU GEFUNDEN HAST, BEI "WAS=2".

Verfasst: 21.06.2003 14:16
von maribossa
Code: Alles auswählen
$sql = "SELECT u.username, u.user_id, u.user_regdate, COUNT(p.pic_id) AS pics, MAX(p.pic_id) AS last_pic
FROM ". USERS_TABLE ." AS u, ". ALBUM_TABLE ." as p
WHERE u.user_id <> ". ANONYMOUS ."
AND u.user_id = p.pic_user_id
AND p.pic_cat_id = ". PERSONAL_GALLERY ."
GROUP BY user_id
ORDER BY $order_by";
so, die soll er alle auslesen, jetzt will ich folgendes noch einfügen
aber nur p.was wo "was=2".
hehe, wie gehts das??????????????????

Verfasst: 21.06.2003 14:31
von esperitox
Versuchs mal so:
Code: Alles auswählen
$sql = "SELECT u.username, u.user_id, u.user_regdate, COUNT(p.pic_id) AS pics, MAX(p.pic_id) AS last_pic, COUNT(p2.was) as was
FROM ". USERS_TABLE ." AS u, ". ALBUM_TABLE ." as p
LEFT JOIN ". ALBUM_TABLE ." as p2 ON p2.was = 2
WHERE u.user_id <> ". ANONYMOUS ."
AND u.user_id = p.pic_user_id
AND p.pic_cat_id = ". PERSONAL_GALLERY ."
GROUP BY user_id
ORDER BY $order_by";
Verfasst: 21.06.2003 15:20
von maribossa
Verfasst: 21.06.2003 17:29
von esperitox
hmm versuchs mal so:
Code: Alles auswählen
$sql = "SELECT u.username, u.user_id, u.user_regdate, COUNT(p.pic_id) AS pics, MAX(p.pic_id) AS last_pic, COUNT(p.was) as was
FROM ". USERS_TABLE ." AS u, ". ALBUM_TABLE ." as p
WHERE u.user_id <> ". ANONYMOUS ."
AND u.user_id = p.pic_user_id
AND p.pic_cat_id = ". PERSONAL_GALLERY ."
AND p.was = 2
GROUP BY user_id, p.was
ORDER BY $order_by";
Wenns nicht klappt müsstest du es über ein extra query machen!
esperitox
Verfasst: 21.06.2003 18:58
von maribossa
ja, genau so habe ich es ja auch gemacht, folgendes problem ist nur:
also, ohne die modifikation bekomme ich angezeigt, wer alles eine usergalerie hat und die zahl hinter dem namen verrät mir, wieviele bilder dieser benutzer in seiner galerie hat.
jetzt habe ich die tabelle um das feld "was" erweitert
1 = frau
2 = mann
...............usw bis 5
jetzt würde ich halt gerne rausfiltern können, (eigentlich unabhängig von der normalen funktion dieser php datei), wieviele bilder in der kategorie
1
2
3
4
5
forhanden sind.
mache ich es jetzt so, wie du beschrieben hast, bekomme ich zwar die richtige anzahl angezeigt (hinter dem user)
also beispielsweise:
user Brad hat 10 bilder in der galerie
durch deine sql abfrage steht dann halt
user Brad hat 5 bilder in der galerie (was ja auch richtig ist, 5 stück in der kategorie "was=2".)
ich möchte halt jetzt ............INSGESAMT gibt es xxxx Bilder in der Kategorie ..."was=...."...
hehe
Edit (itst): 670 kb großes Bild gelöscht.
Verfasst: 21.06.2003 20:42
von Pyramide
Das geht so nicht in einer einzigen Abfrage, da du bei der Abfrage nach Gesamt je einen Datensatz und bei der Abfrage nach den einzelnen Typen je 5 Datensätze pro User erhälst.
Code: Alles auswählen
$sql = "SELECT u.user_id, u.username, p.was, count(p.pic_id) AS anzahl
FROM " . USERS_TABLE . " u, " . ALBUM_TABLE . " p
WHERE u.user_id <> " . ANONYMOUS . "
u.user_id = p.pic_user_id
AND p.pic_cat_id = " . PERSONAL_GALLERY . "
GROUP BY u.user_id, p.was";
Verfasst: 21.06.2003 21:04
von maribossa
@pyramide, besten dank, werde gleich mal testen.
trotzdem noch eine frage
ALSO ICH PACK MEINE ABFRAGE JETZT EINFACH IRGENDWO ANDERS IN DIE PHP DATEI, unabhängig von den anderen abfragen.
Code: Alles auswählen
//////////////////////////////77
$sql = "SELECT COUNT(was) AS total
FROM ". ALBUM_TABLE ."
WHERE was = 4 AND pic_cat_id = ". PERSONAL_GALLERY;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error getting total galleries', '', __LINE__, __FILE__, $sql);
}
if ( $total = $db->sql_fetchrow($result) )
{
$total_was = $total['total'];
}
$template->assign_vars(array(
'WAS' => $total_was,
)
);
//////////////////////////////77
so, in dem code ist ein fehler
ich möchte jetzt einfach AUSGESPUCKT BEKOMMEN WIEVIELE FOTOS DER GALERIE "was = 4" existieren.
ohne reihen oder so, einfach alles zusammengezählt summe sumarum!
wäre wirklich super wenn ihr nochmal helft! danke