nur eine tabelle auszählen mysql

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
maribossa
Mitglied
Beiträge: 328
Registriert: 19.03.2003 10:29
Wohnort: München
Kontaktdaten:

nur eine tabelle auszählen mysql

Beitrag 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?
Xmopf
Mitglied
Beiträge: 85
Registriert: 17.04.2002 09:21
Wohnort: Sauerland

Beitrag von Xmopf »

Hi,

Code: Alles auswählen

SELECT COUNT(*) FROM tabelle WHERE was = 2
Gruß
Xmopf
Benutzeravatar
maribossa
Mitglied
Beiträge: 328
Registriert: 19.03.2003 10:29
Wohnort: München
Kontaktdaten:

Beitrag 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
Zuletzt geändert von maribossa am 21.06.2003 14:16, insgesamt 1-mal geändert.
Benutzeravatar
maribossa
Mitglied
Beiträge: 328
Registriert: 19.03.2003 10:29
Wohnort: München
Kontaktdaten:

Beitrag 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
Benutzeravatar
esperitox
Mitglied
Beiträge: 803
Registriert: 17.04.2002 21:40
Wohnort: Line 758
Kontaktdaten:

Beitrag 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";
Benutzeravatar
maribossa
Mitglied
Beiträge: 328
Registriert: 19.03.2003 10:29
Wohnort: München
Kontaktdaten:

Beitrag von maribossa »

neee, leider kommen da unmögliche zahlen raus :D :D :D :D :D


aber trotzdem danke!!!!!!! :grin:
Benutzeravatar
esperitox
Mitglied
Beiträge: 803
Registriert: 17.04.2002 21:40
Wohnort: Line 758
Kontaktdaten:

Beitrag 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
Benutzeravatar
maribossa
Mitglied
Beiträge: 328
Registriert: 19.03.2003 10:29
Wohnort: München
Kontaktdaten:

Beitrag 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.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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";
Benutzeravatar
maribossa
Mitglied
Beiträge: 328
Registriert: 19.03.2003 10:29
Wohnort: München
Kontaktdaten:

Beitrag 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
Antworten

Zurück zu „Coding & Technik“