Query doet het niet
Ik heb een query gemaakt namelijk deze:
$sql1 = "SELECT ontvanger from $friends WHERE (zender='".($_GET['user'])."' and relatie =2)" AND "SELECT zender from $friends WHERE (ontvanger='".($_GET['user'])."' and relatie =2)";
die zou de vrienden van iemand moeten kunnen tonen. Wat hij doet is als ik op mijn pagina kom dan geeft hij de vrienden weer, ga ik naar iemand anders zijn pagina doet hij het niet meer. Volgens mij is de query fout kan dat?
De database is zender, ontvanger, relatie en als relatie 2 is zijn het vrienden, vandaar dat de query in twee richtingen moet zoeken en dat is namelijk het probleem de tweede doet hij nooit.
Mvg,
Gewijzigd op 27/05/2011 09:41:46 door Don Pironet
Tevens is de naam van die variabele niet echt duidelijk.
tabelnamen bij voorkeur niet in variabelen ($friends) is vaak erg verwarrend en meestal onnodig.
Het probleem zit hem zo het tweede deel na de AND wordt nooit uitgevoerd.
SELECT
ontvanger,
zender
FROM
$friends
WHERE
zender = '".$_GET['user']."'
AND
relatie = 2
Gewijzigd op 27/05/2011 11:39:09 door Maikel B
Hierbij gebruik je UNION ipv AND
AND gebruik je als een record aan meerdere voorwaarden moet voldoen
Dus als ik eerst aanvraag sta ik als zender en iemand anders als ontvanger. Dus als je op dat profiel komt moet hij ook zien dat hij met mij bevriend is en dan is hij dus wel ontvanger dan werkt jou query toch niet?
Tobias, zou ik daar een union voor nodig hebben dan?
"SELECT
ontvanger AS o
FROM
$friends
WHERE
zender='".$_GET['user']."' AND relatie =2
UNION
SELECT
zender AS o
FROM
$friends
WHERE
ontvanger='".$_GET['user']."' AND relatie =2"
Ik weet niet zeker of de 'AS o' nodig is, misschien dat iemand anders daar meer van weet?
EDIT: Hmmm, de tabs doen het niet...
Gewijzigd op 27/05/2011 13:46:03 door Tobias Tobias
$sql1 = "SELECT ontvanger from $friends WHERE zender='".($_GET['user'])."' and relatie =2 UNION SELECT zender from $friends WHERE ontvanger='".($_GET['user'])."' and relatie =2";
Dankje voor je hulp.
Dit: $_GET['user'] zet je natuurlijk niet zo onbeveiligd in de query neem ik aan.