Hallo,

Ik probeer een aantal gegevens uit mijn DB op te sommen, waarbij de debiteurnummers uniek moeten blijven.
Dit probeer ik met DISTINCT.


<?php
$sqldis = "SELECT DISTINCT
               debiteurennr AS debnr
               FROM 
               bezoekrap
               ORDER BY 
               id DESC";
$rsdis = mysql_query($sqldis) or trigger_error(mysql_error());
while ($dis = mysql_fetch_array($rsdis)) { 
$sql = "SELECT 
            debiteurennr, datumbezoek, id, naamklant, Contactpersoon, woonplaats
        FROM 
            bezoekrap
        WHERE
        	debiteurennr like '".$dis['debnr']."'
        ORDER BY 
            id DESC";
$rs = mysql_query($sql) or trigger_error(mysql_error());
	
	while ($row = mysql_fetch_array($rs)) { 
//resultaten als $row['']...
}
}

Maar hij geeft ze niet uniek weer..
Wat doe ik verkeerd?

edit:
typfoutje..

<?php
$sqldis = "SELECT DISTINCT
               debiteurennr AS debnr
               FROM 
               bezoekrap
               ORDER BY 
               id DESC";
$rsdis = mysql_query($sqldis) or trigger_error(mysql_error());
while ($dis = mysql_fetch_array($rsdis)) { 
$sql = "SELECT 
            debiteurennr, datumbezoek, id, naamklant, Contactpersoon, woonplaats
        FROM 
            bezoekrap
        WHERE
            debiteurennr = '".$dis['debnr']."'
        ORDER BY 
            id DESC";
$rs = mysql_query($sql) or trigger_error(mysql_error());
    
    while ($row = mysql_fetch_array($rs)) { 
//resultaten als $row['']...
}
} 


En zo?
Nee de LIKE veranderen in '=' werkt ook niet..
Ik zag nu ook dat LIKE in kleine letters stond, dit maakte geen verschil
en een dubbele = ?

== dat is toch vergelijken..

edit:

onee dit kan niet in mysql hè
== werkt inderdaad niet bij mysql, dan krijg je één grote foutenpagina..
Is er nog een andere vergelijkbare functie voor DISTINCT?
waarom maak je er geen 1 qeury van?

iets als:

<?php
$sqldis = "
SELECT DISTINCT
(debiteurennr), datumbezoek, id, naamklant, Contactpersoon, woonplaats
FROM
bezoekrap
ORDER BY
id DESC";
$rsdis = mysql_query($sqldis) or trigger_error(mysql_error());
while ($dis = mysql_fetch_array($rsdis)) {
// echo $dis['debiteurennr'];
}
?>
Dit heb ik nu gedaan.. :) maar het werkt nog steeds niet... :(
Geen idee wat ik nu verkeerd doe.. maarja ik ga nog ff lekker google-en..
@Wout:

Wil je alle bezoeken van debiteurnummers bij elkaar hebben? Of wil je het laatste bezoek per debiteurnummer hebben?

Kijk in het laatste geval eens bij GROUP BY
Nee er staan bezoeken in de DB, maar sommige hebben hetzelfde debiteurnummer.. Das logisch want je komt weleens 2x bij een klant.
Maar ik wil dat hij alle debiteurnummer 1x weergeeft. :)

Nu je het zegt idd met GROUP BY.. :) ik ga eens kijken, dankje
Jeej dat werkte idd wel.. :)

Maar DISTINCT zet alles van hetzelfde waarde bij elkaar o.i.d.?
aha dan is dat het verschill:) ben niet zo'n held in engels dus die websites begrijp ik soms maar half-half.. :)

Bedankt Robert!
Distinct doet niets anders dan dubbele waarden in een bepaalde kolom weglaten, en geeft dus alleen 1 rij weer waarin een bepaald debiteurnummer voorkomt.

GROUP BY groepeerd op een bepaalde kolom, en laat dus geen rijen achterwege bij de selectie.

Reageren