php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.04.2006, 10:20  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard Doppelte Ausgabe für COUNT(*) verhindern

Hallo,

ich habe mir einen Query zusammengebastelt, der folgent aussieht:

Code:
SELECT DISTINCT m.ident
 FROM microsite m
 LEFT JOIN microaddfeldinhalt i
 ON i.zumicrosite=m.ident
 WHERE ((m.name LIKE '%stefan%') OR (i.asp LIKE '%stefan%'))
  AND ((m.plz>='93000') AND (m.plz<='94000'))
  AND ((m.type='1') OR (m.type='3') OR (m.type='4'));
und dieser liefert mir genau 5 Datensätze. (m.ident = 3,7,8,9,12) Das ist soweit richtig.

Um mir eine Navigation zu basteln benötige ich allerdings vor der Abfrage die genaue Stückzahl. Wenn ich jetzt mit COUNT(*) die Anzahl der Datensätze abfragen möchte mit folgendem Code:

Code:
SELECT DISTINCT COUNT(*) AS anzahl
 FROM microsite m
 LEFT JOIN microaddfeldinhalt i
 ON i.zumicrosite=m.ident
 WHERE ((m.name LIKE '%stefan%') OR (i.asp LIKE '%stefan%'))
  AND ((m.plz>='93000') AND (m.plz<='94000'))
  AND ((m.type='1') OR (m.type='3') OR (m.type='4'));
dann bekomme ich
anzahl => 12
zurück. Ich vermute mal das liegt an meinem LEFT JOIN. Den dort werden mehrere Treffer in der zweiten Datenbank gefunden und für jeden Treffer macht er mit eine neue Zeile die mitgezählt wird.

Jetzt habe ich versucht das ganze schon mit GROUP BY und HAVING umzubauen, aber ich bekomme auch wieder die 12 zurück.

Was muß ich machen, damit ich mit COUNT(*) die anzahl => 5 bekomme ?
Danke,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.04.2006, 10:26  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.232
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

http://www.php.net/mysql_num_rows

Wenn das nicht hilft, habe ich dein Problem etwas missverstanden. Du willst schon auch im Anschluss die Werte haben?
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 07.04.2006, 10:30  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Ich möchte nicht die ganze Tabelle abfragen, sondern nur die Stückzahlen bekommen um mir meine Navigation zu errechnen. Und dann noch meinen Code die LIMIT ?,? hinzufügen und auch dann alle Felder abholen (also nicht mehr nur m.ident sonder 32 Felder). Wenn ich gleich alles abhole und nur die Zeilen zähle, habe ich bei anderen Suchergebnissen evtl bis zu 10000 Datensätze zuviel errechnen lassen, was ich durch vorherige Abfrage der Stückzahlen und späterem LIMIT leicht verhindern kann. Ich möchte pro Seite ja immer nur 3 Datensätze anzeigen lassen.

Daher bringt mir ein PHP-Befehl nichts. Ich bräuchte die MySQL-Lösung.
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Alt 07.04.2006, 10:31  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.232
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

SELECT COUNT(DISTINCT m.ident) ....
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 07.04.2006, 10:36  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Danke schön,
du bist super.

Jetzt geht es.
Gruß,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Class Ausgabe Problem wk-moray PHP-Fortgeschrittene 6 12.02.2008 10:06
[gelöst]LEFT JOIN, DINSTINCT und trotzdem doppelte?!?! stefanjann Datenbanken 10 06.02.2008 11:49
Problem mit Ausgabe bzw. Abfrage mit ORDER BY mayer Datenbanken 7 02.07.2006 21:45
Select - doppelte Ergebnisse ragman Datenbanken 3 26.01.2006 11:53
[Erledigt] PHP Schleifenproblem, doppelte ausgabe der litenwerte PHP-Fortgeschrittene 1 16.01.2006 01:55
Ausgabe als HTML verhindern Fragenfrager PHP Tipps 2007 2 14.12.2005 09:45
doppelte ausgabe vermeiden imported_kremser Datenbanken 2 17.11.2005 18:35
Ausgabe der Auswahlliste PHP Tipps 2005-2 6 21.09.2005 13:43
3 Tabellen verbunden -- Ausgabe in einer Spalte Datenbanken 4 06.09.2005 10:43
doppelte session verhindern lindner PHP Tipps 2005-2 7 24.07.2005 15:21
Doppelte Einträge in tabelle über mehrere Spalten anzeigen PHP Tipps 2005-2 8 22.07.2005 09:29
[Erledigt] Geteilte Ausgabe an den Browser... PHP-Fortgeschrittene 4 01.07.2005 13:07
HTML-Tags in Feldern verhindern HTML, Usability und Barrierefreiheit 2 15.12.2004 19:53
Ausgabe nur dann, wenn htmlspecialchars() verwendet PHP Tipps 2004 1 27.10.2004 21:17
Sortierung der Ausgabe PHP-Fortgeschrittene 3 08.10.2004 09:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql doppelte ausgabe verhindern, mysql doppelte ausgabe verhindern, mysql doppelte ausgabe vermeiden, mysql doppelte einträge verhindern, sql doppelte ausgaben vermeiden, http://www.php.de/datenbanken/38902-doppelte-ausgabe-fuer-count-verhindern.html, sql count doppelte, sql doppelte einträge verhindern, mysql doppelte ausgabe, sql doppelte ausgabe, php ,ysql doppelte ausgabe verhindern, mysql mehrfache ausgaben verhindern, mysql doppelte ausgaben vermeiden, doppelte einträge vermeiden php, sql doppelte ausgaben, doppelte ausgabe vermeiden mysql, doppelte ausgabe verhindern mysql, php mysql doppelte einträge verhindern, join liefert doppelte ergebnis, mysql select dopplet ausgaben verhindern

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:09 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.