• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Doppelte Einträge (Emailadr.) finden und bei mit Namen der Person ausgeben.

T4k3C4r3

Mitglied
Guten Tag Liebe Community.

Ich setze mich zurzeit mit einem MySql Problem auseinander.

Nämlich, Wie schaffe ich es bei einer mysql Tabelle, die in etwa so aussieht:

table: login_users

Code:
#######email###|###name####
##[email protected]| Franz####
##[email protected]| Herbert####
---------------------------------

Wie kann ich mit diesen Datensätzen es schaffen,
dass ein php script oder vllt MySql Selber die doppelten emailadressen anzeigt und dann beide Emailardressen inclusive deren dazugehörigen Namen anzeigt ?

Dies sollte dann so mit Hilfe von Html und Php aussehen:

Code:
Diese Benutzer verwenden die selbe EmailAdresse:
--------------------------------
| Email                | Name   |
|[email protected] | Franz |
|[email protected] | Herbert|
--------------------------------

Falls noch welche Informationen gebraucht werden, mir bitte bescheid geben

Danke schon mal

Mfg T4k3C4r3
 
Code:
SELECT email, GROUP_CONCAT(name, SEPARATOR BY ',') as namensliste, COUNT(email) as anzahl
FROM tabelle
GROUP BY email
HAVING anzahl > 1

Siehe: MySQL :: MySQL 5.0 Reference Manual :: 11.15.1 GROUP BY (Aggregate) Functions

Dadurch würdest Du einen Datensatz pro mehrfach vorhandener E-Mail erhalten in der es in einer Spalte eine Liste der Namen gibt die das betrifft. Mit PHP lässt sich daraus dann auch so eine Liste basteln wie Du sie willst.
 
Erstmals Vielen Dank für Deine Antwort.

Beim Aufrufen der Seite erscheint dann leider immer dieser Fehler:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SEPARATOR BY ',') as namensliste, COUNT(email) as anzahl FROM `login_users` GROUP ' at line 1

Durch was soll und "namensliste und anzahl" ersetzt werden ?


Mfg
 
Lass mal das Komma vor "SEPARATOR" weg und wirf auch mal einen Blick ins Handbuch, da steht es auch so. Hatte ich nur falsch geschrieben.
 
Der Fehler sieht aber eher nach einem PHP-Syntax-Fehler aus.
Es wäre interessant zu sehen, was in besagter Zeile 60 und in ihrer direkten Umgebung steht.
 
Der Fehler sieht aber eher nach einem PHP-Syntax-Fehler aus.
Es wäre interessant zu sehen, was in besagter Zeile 60 und in ihrer direkten Umgebung steht.

Also so schaut der Scritpt aus, der den Fehler auslöst:
PHP:
$query = mysql_query("SELECT email, GROUP_CONCAT(name SEPARATOR BY ',') as name, COUNT(email) as anzahl
FROM login_users
GROUP BY email
HAVING anzahl > 1");
        while ($row = mysql_fetch_assoc($query));
        {
            $email_all = $row['email'];
            $users_al = $row['name'];
        }

Mfg
 
Zuletzt bearbeitet:
In dem Schnippsel ist kein offensichtliches Problem erkennbar. Ist das wirklich Zeile 60 aus der angemeckerten Datei?
 
Ach jetzt seh ichs. Hier

PHP:
while ($row = mysql_fetch_assoc($query));

ist das ; am Ende zuviel.
 
Dann ist dein SQL-Statement fehlerhaft, was Du bisher auch an keiner Stelle prüfst. Mach aus

PHP:
$query = mysql_query("SELECT email, GROUP_CONCAT(name SEPARATOR BY ',') as name, COUNT(email) as anzahl
FROM login_users
GROUP BY email
HAVING anzahl > 1");

das hier

PHP:
$query = mysql_query("SELECT email, GROUP_CONCAT(name SEPARATOR BY ',') as name, COUNT(email) as anzahl
FROM login_users
GROUP BY email
HAVING anzahl > 1") or die("SQL-Fehler: ".mysql_error());

Dann solltest Du das Problem sehen.
 
Das ergibt dann:
SQL-Fehler: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SEPARATOR BY ',') as name, COUNT(email) as anzahl FROM login_users GROUP BY ' at line 1

Ich bin leider kein MySql Experte....
 
Versuchs mal so:

PHP:
$query = mysql_query("SELECT email, GROUP_CONCAT(`name` SEPARATOR BY ',') as `name`, COUNT(email) as anzahl
FROM login_users
GROUP BY email
HAVING anzahl > 1") or die("SQL-Fehler: ".mysql_error());

Ansonsten würde ich dir dringend raten dir selbst das näher anzuschauen. Wir machen hier für dich Debugging, was Du selbst viel schneller hinbekommen könntest, wenn Du dich damit mal richtig beschäftigen würdest.
 
Zurück
Oben