keine gleichen werte ausgeben

neuling321

Mitglied
hallo, ich hoffe ich erkläre mein Problem richtig.

ich macher die erste datenbankabfrage, Sie gibt mir alle usernamen zurück außer den eigenen,

Code:
$qry = "SELECT uname FROM ".$prefix."_users WHERE `uid` > '1' AND `uid` <> '".$userDaten['uid']."' ORDER BY uname ASC";
$result = sql_query($qry);
echo "<select size=\"15\" name=\"loe\">";
while(list ($username) = mysql_fetch_row($result)) {
echo "<option value=\"".$username."\">".$username."</option>";
}
echo "  </select>"


weiter hab ich noch eine zweite abfrage, die liefert alle namen zurück, die in der freundeliste stehen.



Code:
$qry2 = "SELECT name FROM ".$prefix."_freundeliste ORDER BY uname ASC";
$result2 = sql_query($qry2);
echo "<select size=\"15\" name=\"eintr\">";
while(list ($username2) = mysql_fetch_row($result2)) {
echo "<option value=\"".$username2."\">".$username2."</option>";
}
echo "  </select>"

jetzt mein Problem, ich möchte, das in der ersten abfrage, die Namen die in der freundeliste stehen nicht mit aufgelistet werden.

kann mir bitte jemand weiterhelfen?

gruß

Thorsten
 
Zuletzt bearbeitet:
Dazu gibt es sicherlich mehrere Lösungen, angenommen uname und name sind gleich, kannst du es mal so probieren:

Code:
SELECT 
	uname
FROM
	".$prefix."_users
WHERE
	`uid` > '1'
AND
	`uid` <> '".$userDaten['uid']."'
AND
	uname not in (
	SELECT name FROM ".$prefix."_freundeliste ORDER BY uname ASC
	)
ORDER BY uname ASC
 
Code:
SELECT 
	uname
FROM
	".$prefix."_users
WHERE
	`uid` > '1'
AND
	`uid` <> '".$userDaten['uid']."'
AND
	uname not in (
SELECT name FROM ".$prefix."_freundeliste ORDER BY uname ASC
	)
ORDER BY uname ASC


kann ich nicht gleich uname not in ($username2)


würde mir eine abfrage sparen, geht das?
 
kann ich nicht gleich uname not in ($username2)


würde mir eine abfrage sparen, geht das?

Nicht direkt, $username2 ist ja jeweils nur EIN Name, d.h. du müsstest zuerst die zweite Abfrage starten um alle usernamen aufzulisten, die in der ersten Abfrage nicht vorkommen dürfen und die Werte bei NOT IN müssen mit Hochkommata und Komma separiert werden.
Beispiel:
NOT IN ('Hans','Klaus','Michi') usw.

Klappt denn die vorgeschlagene Abfrage nicht?
 
Zuletzt bearbeitet:
oki

werd mir gleich mal dran versuchen,

besten dank

sollte ichs nich hinbekommen, melde ich mich nochmal hier ok?

gruß
htorsten
 
Zurück