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
Hi,

Code: Alles auswählen

SELECT COUNT(*) FROM tabelle WHERE was = 2
Gruß
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".

:o

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

Code: Alles auswählen

COUNT(p.was) AS was
aber nur p.was wo "was=2".


hehe, wie gehts das?????????????????? :o :D

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
neee, leider kommen da unmögliche zahlen raus :D :D :D :D :D


aber trotzdem danke!!!!!!! :grin:

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 :D


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! :D

wäre wirklich super wenn ihr nochmal helft! danke