MYSQL: op domein grouperen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Zero XT

Zero XT

23/06/2009 23:05:00
Quote Anchor link
Beste php-ers,

In mijn database staan referenties in de vorm van websites. Daar wil ik graag op sorteren in een sql query. Punt alleen is dat ik op domeinnaam wil sorteren.

Dit zijn de verschillende URL's die in de database mogelijk zijn:

http://www.website.nl/blaat/test/hmm
http://website.nl/blaat/test/hmm
www.website.nl/blaat/test/hmm
website.nl/blaat/test/hmm
forum.website.nl/blaat/test/hmm


Mijn query zou er dus ongeveer zo uit moeten zien:
SELECT referenties REGEXP() as domein FROM tabel GROUP BY domein

Iemand enig idee?
 
PHP hulp

PHP hulp

26/04/2024 06:29:39
 
Joren de Wit

Joren de Wit

24/06/2009 09:44:00
Quote Anchor link
Nee, groeperen is hier niet de juiste aanpak. Je wilt immers geen eigenschappen van de groep bepalen.

Het groeperen waar jij op doelt heeft enkel met de presentatie van gegevens te maken en doe je dus in PHP. Sorteer in de query op de domeinnaam en houd vervolgens in PHP in de while loop waarmee je de data fetch een variabele bij met de domeinnaam uit de vorige loop. Als die in deze loop verschilt, heb je dus met een nieuw domein te maken en zul je de naam weer moeten geven. Zo niet, dan hoef je enkel de data van het domein te tonen.

Dus iets als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$sVorige
= '';
while($row = mysql_fetch_assoc($result)) {
  if($row['domein'] != $sVorige) {
    echo $row['domein'];
    $sVorige = $row['domein'];
  }


  // Echo hier de rest van de gegevens
}
?>
 
Hipska BE

Hipska BE

24/06/2009 10:27:00
Quote Anchor link
Nee blanche, zie je niet dat wanneer hij zijn gegevens zal sorteren dat de urls van hetzelfde domein niet bij elkaar zullen zitten?

Bijvoorbeeld zo:
http://site1.eu/link
http://site2.eu/link
http://www.site1.eu/link

en nu alfabetisch sorteren zal niet ervoor zorgen dat alles van site1 bij elkaar zal staan.

@HellRazer: ik zou een extra kolom (of tabel) aanmaken met de domeinnaam erin. Die wordt dan bij het invoegen gesplitst uit de url dmv een regex in php (of mysql)
Nadien kan je heel makkelijk sorteren op domeinnaam..
 
Joren de Wit

Joren de Wit

24/06/2009 10:32:00
Quote Anchor link
True, heb je helemaal gelijk in. De oplossing met een extra kolom voor de domeinnaam (of: id van het domein uit de domeinentabel) is een goede.

In dat geval kun je mijn eerder beschreven aanpak toepassen op die nieuwe kolom, en dus daarop sorteren.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.