php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.07.2011, 21:25  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
RobertWienecke befindet sich auf einem aufstrebenden Ast
Standard mysql abfrage - nur einmal auslesen, und bestimmten wert

Hey.
Ich will nicht nur EINEN Eintrag auslesen, und dann auch noch den größten.
Ich will JEDEN User auslesen (userid), der in der Gruppe 4 ist (groupid 4)
Dies klappt ja mit folgendem Code:
PHP-Code:
 $result $db->unbuffered_query("SELECT * FROM bb".$n."_user2groups WHERE groupid = '4'");
for (
$i 1$row $db->fetch_array($result); $i++) {
//entry...

Jedoch möchte ich, dass wenn ein User in mehreren Gruppen angezeigt wird, nicht aufgelistet wird. Sondern nur User, die nur EINMAL in der Datenbank vorhanden sind und in der Gruppe (groupid) 4 sind.

HTML-Code:
|  userid      |    groupid  |
 ----------    |------------ 
|     1       |       1       |
|     1       |       4       |
|     2       |       4       |
|     3       |       2       |
|     3       |       4       |
|     4       |       4       |
In diesem Beispiel sollen also nur userid 2 und 4 ausgegeben werden, weil sie als EINZIGE in der Gruppe 4 sind (und nicht auch noch in einer anderen Gruppe, wie userid 1 &3)


Gruß,
Robert
RobertWienecke ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.07.2011, 21:46  
Benutzer
 
Registriert seit: 29.05.2011
Beiträge: 58
PHP-Kenntnisse:
Fortgeschritten
seb_ befindet sich auf einem aufstrebenden Ast
Standard

Das geht mit einem simplen COUNT() innerhalb der WHERE-Bedingung.

MfG
__________________
Lesen gefährdet Ihre Dummheit!
seb_ ist offline   Mit Zitat antworten
Alt 20.07.2011, 21:51  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
RobertWienecke befindet sich auf einem aufstrebenden Ast
Standard

Danke seb_ für die schnelle Antwort.

Leider kommt dann immer ein MySQL Fehler: mysql error: Invalid use of group function

EDIT
Mit dem Code
PHP-Code:
$result $db->unbuffered_query("SELECT * FROM bb".$n."_user2groups WHERE groupid = '4' GROUP BY userid  HAVING COUNT(userid) = 1"); 
lsitet er aber alle auf. Also userid 1 bis 4 weil die ja AUCH in der Gruppe 4 sind.
SOllen aber nur 2 und 3 aufgelistet werden, da die als einzige NUR in gruppe 4 sind, und nicht wie user 1 und 3 noch in anderen Gruppen

Geändert von RobertWienecke (20.07.2011 um 21:57 Uhr).
RobertWienecke ist offline   Mit Zitat antworten
Alt 20.07.2011, 22:02  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von RobertWienecke Beitrag anzeigen
Mit dem Code
PHP-Code:
$result $db->unbuffered_query("SELECT * FROM bb".$n."_user2groups WHERE groupid = '4' GROUP BY userid  HAVING COUNT(userid) = 1"); 
lsitet er aber alle auf.
Natürlich, weil du ja auch die Datensätze auf die eingeschränkt hast, bei denen groupid = 4 ist. Und deren COUNT ergibt bei allen 1.

Pack die Bedingung aus der WHERE-Klausel mit in die HAVING-Klausel, dann sollte es funktionieren.

Und bitte poste bei SQL-Problemen doch in Zukunft den reinen SQL-Code, das PHP-Drumherum ist dabei uninteressant.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 20.07.2011, 22:11  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
RobertWienecke befindet sich auf einem aufstrebenden Ast
Standard

Hey also erst einmal vielen Dank für Deine super (schnelle) Hilfe. Ich bin begeistert von diesem Service.

Habe es nun auch endlich hinbekommen und für folgende Anzeige Deinen Rat befolgt:
PHP-Code:
SELECT FROM bb".$n."_user2groups WHERE groupid GROUP BY userid HAVING COUNT(userid) = AND groupid '4' 
Ich danke Dir. 5 von 5 Sternen.

Gruß,
Robert
RobertWienecke ist offline   Mit Zitat antworten
Alt 22.07.2011, 14:18  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

nur 4 von 5 .. das groupid beim where ist unnötig, sowie das where selbst

Code:
SELECT * FROM bb".$n."_user2groups GROUP BY userid HAVING COUNT(userid) = 1 AND groupid = '4'
reicht völlig
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 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
[Erledigt] mySQL: Abfrage mit MAX liefert falschen Wert MLang Datenbanken 6 19.05.2011 17:23
[Erledigt] mysql abfrage liefert leeren wert Andrew094 PHP Tipps 2010 2 24.10.2010 13:07
[Erledigt] MySQL: doppelten Wert vermeiden halskrause Datenbanken 12 04.10.2010 09:45
[Erledigt] Wert einer Dropdownlist auslesen Sermon JavaScript, Ajax und mehr 12 14.09.2010 13:27
Überprüfen ob vorhanden und ob ein feld einen bestimmten wert hat setech Datenbanken 1 17.12.2009 09:40
MySQL - Fehler in einfacher Abfrage oden Datenbanken 11 03.01.2009 20:03
PHP variablen Übergabe für MySQL Abfrage mindenator PHP Tipps 2008 10 28.12.2008 03:01
[Erledigt] wert auslesen aus mysql krackmoe PHP Tipps 2008 4 11.07.2008 17:58
Frage: richtige SQL Abfrage von einer MySQL Spalte die SET werte besitzt Seb PHP Tipps 2008 2 29.05.2008 11:36
Dynamisch Array aus MySQL mit PHP auslesen. Muuip PHP Tipps 2008 2 26.08.2007 21:19
MySQL Abfrage von Ver. 5 für Ver 3. des MySQL Servers FireFIghter Datenbanken 3 02.02.2007 17:18
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Aus einer SQL - Abfrage Wert auslesen bendigo PHP Tipps 2005-2 2 22.06.2005 14:05
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
[Erledigt] mysql Abfrage Datenbanken 5 18.06.2004 14:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql wert nur einmal auslesen, mysql abfrage nur einmal, mysql wert nur einmal abfragen, mysql datenabfrage , maximalwert auslesen einer spalte, wert nur einmal auslesen sql, php mysql einzelnen wert auslesen, mysql datenbank bestimmten wert auslesen php, bestimmten wert aus abfrage in bericht, mysql select php nur ein wert, sql nur einen satz lesen, sql nur einen datensatz auslesen, php mysql query auslesen, abfrage werte nur von 2011 php, einzelnen wert aus mysql query, php mysqul nur 1 wert auslesen, eintrag nur einmal mysql, php mysql maximal einmal abfragen, mysql query bestimmter wert, php mysql query bestimmten wert auslesen, nur einen wert abfragen und ausgabe mysql

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:06 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