I min database er der en tabel, som kan indeholde dubletter. Når jeg hiver data fra denne tabel ud, så vil jeg gerne at jeg ikke få dubletter i eks. et array, eller echo/print..
Med andre ord, hvis jeg har "25225" til at stå i tabellen 2 eller flere gange, så vil jeg kun få oplyst "25225" én gang, og ikke adskillige gange..
GROUP BY kan ikke klare dette, da GROUP BY kræver at du kun selecter felter der grupperes efter eller felter aggrerede felter.
Du kan altså godt skrive select X, y, min(z),sum(W) from tabel ...... group by X,Y
men ikke select X, y, z, w from tabel ..... group by x,Y
I dit eksempel ovenfor er der heller ingen logik i at du vil have resultatet "26732", "jim", "elefant" "26731", "astro", "giraf"
frem for
"26732", "kaj", "tiger" "26731", "astro", "giraf"
Nu kender vi jo ikke til det præcise formål, men hvis det da ikke ødelægger noget andet, vil det nemmeste være at sikre at der slet ikke kommer dubletter i tabellen, så giver resultatet jo sig selv.
Du kan selvfølgelige have specielle grunde til at du vil tillade dubletter (tabellen bruges til andet)
loop sorteringen kan evt simplificeres, hvis der er er en ORDER BY ID med i selecten.
Så kan man blot sammenligne med den sidste fundne værdi
$last_id = ""; // Forudsætter at der ikke findes "" værdi i tabellen. while ( $row = mysql_fetch_assoc() ) { if ( $row['id'] != $last_id ) ) { $last_id= $row['id']; // Skriv den ud } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.