Ik heb een tabel met een Row met behandelingen, hierin staan diverse parameters maar de twee die in dit gedeelte van belang zijn heten: discipline en naam (de discipline van de arts en de naam van de arts)

<?
$tbl_name="behandeling"; // Table name
// Retrieve data from database 
$sql="SELECT * FROM $tbl_name WHERE ptid=$id";
$result=mysql_query($sql);

// Start looping rows in mysql database.
while($rows=mysql_fetch_array($result)){

?>


Dit werkt allemaal goed, daarna roep ik ze op:


Patient wordt behandeld door:
 <? echo $rows['naam']; ?>(<? echo $rows['disci']; ?>)
<?  }  ?>


Ik krijg nu een mooie lijst zoals:

Jante Steenstra (fysiotherapeut)
Willem de Vries (Huisarts)
Willem de Vries (Huisarts)

Echter als ik 2 behandelingen voorschrijf met Willem de Vries staat deze ook 2 keer in het lijstje, kan ik in een loop controleren of het resultaat hetzelfde is al het vorige resultaat dat uit de database is gehaald?

zodat ik dit krijg:

Jante Steenstra (fysiotherapeut)
Willem de Vries (Huisarts)

Alvast heel erg bedankt!
Dan is je DB schema niet goed.
Je zou 2 tabellen moeten hebben: een met behandelingen en een met artsen. In behandelingen heb je dan een veld met arts_id.

Kijk eens naar de hele goede tutorial van Elwin: http://www.phphulp.nl/php/tutorials/3/150/

Edit: Laat maar ik begreep je niet echt. (Maar kijk toch eens naar die tut).Als je het toch zo wil kan je bij elke patient een array maken met artsen die al geweest zijn en dan met in_array kijken of die al is geweest en alleen als dat niet het geval is de arts echoën
met SELECT DISTINCT kan je ervoor zorgen dat iedere combinatie van de waarden in de velden van het resultaat van je query maar één keer voorkomt in de set dat je uiteindelijk fetcht.

Maar als je slechts de dubbele regels die direct na elkaar komen eruit wilt filteren kan je in het begin van je while-lus natuurlijk zoiets toevoegen:
<?php
$last_fetched_rows;

while($rows = mysql_fetch_assoc($result))
{
if($rows == $last_fetched_rows)
continue;

$last_fetched_rows = $rows;

echo $rows['naam'] . ' (' . $rows['disci'] . ')<br>';
}
?>
Let ook op foutenafhandeling en sql injection
Dank voor de snelle antwoorden,

@ Pim daar heb ik inderdaad ook aan gedacht, dank
@ Jelmer : dit probeer ik eerst even! anders volg ik Pims suggesties (wat meer werk kost)

@ Niels: Het betreft hier een schoolopdracht waar slechts ik en de leraar naar zullen kijken tuurlijk is het belangrijk en ik vind het top dat je me erop wijst maar is in dit geval niet nodig aangezien ik het volgende week weer verwijderd ;-)
@kevin,

Het maakt niet uit waar het om gaat.. Als je het nu niet doet doe je het met een echte opdracht ook niet. beveiliging is niet iets wat je erbij doet op het eind. Nee, je moet het vanaf het begin er al aan denken, eveneens foutenafhandeling

Wees blij dat ik je leraar niet ben

Reageren