Suchen
Inside Forum
Nützliche Links
PHP Jobs
phpforum.de Tipp
 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 
PHP Test


werbung



Zurück   PHP Forum: phpforum.de > Datenbanken > Datenbanken

Datenbanken MySQL und co.

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.10.2006, 11:43
yonthebeach yonthebeach ist offline
Engagierter Besucher
 
Registriert seit: 23.09.2006
Ort: Aachen
Beiträge: 118
Standard

hi,

ich habe eine tabelle:

tanmeldungen

mit 2 zwei spalten:

id -> autoincrement
email -> varchar 250

ich habe nun 4 werte in meiner tabelle:

1 eineemail1@host.com
2 eineemail2@email.com
3 eine.email@host2.com
4 einee.mail@mailhost.com

genau das steht drin! So nun mache ich abfrage:

PHP Quellcode:
<?php
    $q = "SELECT COUNT(*) as anmeldung from tanmeldungen";
    $res = mysql_query($q)OR die(mysql_error());
   
    $row = mysql_fetch_assoc($res);
   
    echo "<div align=\"center\" class=\"AnmeldungText\">".$row['anmeldung']."</div>";
?>

<?php
    $q = "SELECT COUNT(*) as anmeldung from tanmeldungen group by email";
    $res = mysql_query($q)OR die(mysql_error());
   
    $row = mysql_fetch_assoc($res);
   
    echo "<div align=\"center\" class=\"AnmeldungText\">Unique = ".$row['anmeldung']."</div>";
?>
ich bekomme aber die ausgabe: 4 ausgegeben was ja richtig ist, aber die group by anweisung gibt mir immer 1 zurück! Das ist ja falsch da es normalerweise auch 4 zurückgeben müsste, da keines der datensätze identisch sind. So war es beim SQL Server.

Ich habe also eine Tabelle mit email-adressen und es kann sein das einige mehrfach vorkommen. Ich möchte diese gruppieren und nur die eindeutigen zu zählen. Was mache ich falsch??

gruß
yavuz
__________________
my blog | www.yayz.de
Mit Zitat antworten
  #2  
Alt 23.10.2006, 11:55
BenniG. BenniG. ist offline
Engagierter Besucher
 
Registriert seit: 01.06.2006
Ort: Heidelberg
Beiträge: 3.942
Standard

Zitat:
ich bekomme aber die ausgabe: 4 ausgegeben was ja richtig ist, aber die group by anweisung gibt mir immer 1 zurück! Das ist ja falsch da es normalerweise auch 4 zurückgeben müsste, da keines der datensätze identisch sind. So war es beim SQL Server.
Das kann ich mir nur schwer vorstellen (aber bei Microsoft ist alles möglich)! Wenn du nach der Email-Adresse gruppierst und wie du schon sagst keine der Email-Adressen mehrfach vorkommt ist die Anzahl für jede Email-Adresse 1 und du bekommst mehrere Zeilen zurück.

Was willst du zählen? Jede Email-Adresse nur einmal?
Edit: (Hab das grad noch getestet, nicht dass ich was falsches poste)
Code:
select count(distinct email) from tanmeldungen
Mit Zitat antworten
  #3  
Alt 23.10.2006, 11:59
yonthebeach yonthebeach ist offline
Engagierter Besucher
 
Registriert seit: 23.09.2006
Ort: Aachen
Beiträge: 118
Standard

also stellen wir uns vor die tabelle ist folgendermassen gefüllt

ID EMAIL
1 1
2 1
3 1
4 2
5 2
6 2
7 3
8 4
9 4
10 4

ok, so wenn ich also einen normalen count(*) ausführen würde, so würde ich 10 bekommen. Ich möchte aber das die 1'er auch nur einmal gezählt werden obwohl sie 3x in der datenbank vorkommen. Und die zweier auch nur einmal gezählt werden obwohl diese auch 3x vorkommen. Und als Endergebnis soll von SQL Query zurückgegeben werden 4 !

Wie geht das?

Gruß
Yavuz
__________________
my blog | www.yayz.de
Mit Zitat antworten
  #4  
Alt 23.10.2006, 12:01
BenniG. BenniG. ist offline
Engagierter Besucher
 
Registriert seit: 01.06.2006
Ort: Heidelberg
Beiträge: 3.942
Standard

*Noch mal auf mein Edit von oben Hinweis*
Mit Zitat antworten
  #5  
Alt 23.10.2006, 12:03
yonthebeach yonthebeach ist offline
Engagierter Besucher
 
Registriert seit: 23.09.2006
Ort: Aachen
Beiträge: 118
Standard

vielen dank. hat funktioniert. war mein fehler. da ich count auf * mache konnte es garnicht funktionieren. richtig?

gruß
yavuz
__________________
my blog | www.yayz.de
Mit Zitat antworten
  #6  
Alt 23.10.2006, 12:06
BenniG. BenniG. ist offline
Engagierter Besucher
 
Registriert seit: 01.06.2006
Ort: Heidelberg
Beiträge: 3.942
Standard

Jain, wenn du doubletten nicht zählen willst musst du MySQL das explizit sagen, ohne das distinct zählt er die doppelten doppelt.
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
problem mit max() min() und group by macosbrain Datenbanken 2 13.11.2005 19:10
Probleme mit Select und Group.... heikstar Datenbanken 2 20.04.2005 05:47
group by DSABH Datenbanken 1 22.03.2005 13:56
Html_quickform (group) Davidh_at PHP 1 16.02.2005 13:56
brauche Max() aus Group By oli_j Datenbanken 5 24.06.2004 14:08


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.


Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC