Hallo allemaal,

Ik heb een vraag, ik ben met een script bezig wat zich nu al redelijk begint uit te breiden. Alleen ik loop vast op 1 ding.
Ik haal uit de database allemaal 'statussen' op. En met een JOIN selecteer ik alleen de statussen waar diegene vrienden mee is.
Dit is de code:


<?PHP
$sql = mysql_query("
SELECT * FROM msg_status, msg_vrienden 
WHERE 
(msg_vrienden.id_user = msg_status.id_userr AND msg_vrienden.id_friend = ".$_SESSION['id'].") 
OR
 (msg_vrienden.id_friend = msg_status.id_userr AND msg_vrienden.id_user = ".$_SESSION['id'].") 
OR 
msg_status.id_userr = ".$_SESSION['id']." 
ORDER BY date DESC LIMIT 0,5") or die(mysql_error());

while($info = mysql_fetch_assoc($sql)){
      $qy = mysql_query("SELECT * FROM msg_login WHERE id=".$info['id_userr']);
      $name = mysql_fetch_assoc($qy);
}
?>

Aleen dan lijkt het wel of hij de statussen van de gebruiker zelf dupliceert.
Hoe komt dit?

Algevast bedankt!
Mvg,
Bram
Te snel gekeken, whoops.
Bekijk dit ook maar een keertje. klik
@Jacco Brandt & @Ger van Steenderen Mijn excuses dan.
Omdat ik het op meerder plaatsen had gelezen verwachte ik dat het zo heete.
Toch bedankt voor het erop wijzen, weer wat geleerd ;)

@PHP Jasper, Dankjewel kijk er gelijk even naar en implenteer het erin. Hopen dat ik het dan wel zie.
Ik laat het hier nog weten.

mvg
Bram

[size=xsmall]Toevoeging op 08/10/2011 14:22:03:[/size]

Ik heb nu de foutafhandeling verbeterd, maar laat verder nergens fouten zien.
Had dit ook niet echt verwacht aangezien hij dat eerder ook al niet deed.
Maar wel een handige functie dankjewel!

Weet iemand verder nog waarom het script raar doet?
Of hebben jullie nog meer info nodig?

Dankjewel
Dit gedrag komt vermoedelijk door de INNER JOIN die jij (impliciet) in je WHERE clausule hebt staan. Mijn advies is om een JOIN altijd netjes uit te schrijven in een query (of het nou een INNER, LEFT of RIGHT is, dat maakt niet uit). Verder zou je kunnen proberen om de query stuk voor stuk op te bouwen om te zien welke resultaatset je ermee terug krijgt. Dan zie je waarschijnlijk ook direct waar die 'dubbele' records vandaan komen.

Nog een tip: schrijf de veldnamen die je wilt ophalen altijd voluit in je query en probeer het gebruik van * te vermijden. 9 van de 10 keer heb je toch niet alle velden uit een tabel nodig...
Dankjewel Joren, ik zal het zo veranderen.
Het probleem zit hem
OR 
msg_status.id_userr = ".$_SESSION['id']." 

Dat weet ik al wel nu. En ik zal de * weghalen en ze volluit schrijven.
Dankjewel voor je advies.

Ik post hier het resultaat nog, hartelijk bedankt!

Mvg,
Bram Hammer

Reageren