Sorteren van gegevens

Status
Niet open voor verdere reacties.

DarkFeather

Gebruiker
Lid geworden
21 jan 2004
Berichten
134
Ik heb een pagina met daarin de code die hieronder staat. De pagina is een fotoalbum. Het gaat om een foto pagina, waar allerlei foto's opstaan, gesorteerd op jaartal.

Nu zijn er in de database de volgende gegevens opgenomen:
Jaartal, activiteit, map_naam.

In de database komen de volgende jaartallen voor:
Voorgaande jaren
2005 - 2006
2004 - 2005
2003 - 2004

Het rijtje staat in de volgorde die ook wordt weergegeven op de pagina. Nu wil ik echter dat "Voorgaande jaren" helemaal onderaan komt te staan. Hoe kan ik dit doen?

PHP:
Zooi code
$query = "SELECT DISTINCT jaar FROM activiteiten ORDER BY jaar DESC";
Nog meer code
 
Laatst bewerkt:
Geplaatst door DarkFeather
In de database komen de volgende jaartallen voor:
Voorgaande jaren
2005 - 2006
2004 - 2005
2003 - 2004

Het rijtje staat in de volgorde die ook wordt weergegeven op de pagina. Nu wil ik echter dat "Voorgaande jaren" helemaal onderaan komt te staan. Hoe kan ik dit doen?
Dat rijtje is toch al gesorteerd, het eerste jaar staat onderaan ?

What's the problem ?
 
Probleem is dat "Voorgaande Jaren" bovenaan staat en eigenlijk onderaan moet komen te staan.
 
Geplaatst door DarkFeather
Probleem is dat "Voorgaande Jaren" bovenaan staat en eigenlijk onderaan moet komen te staan.
PHP:
$query = "SELECT DISTINCT jaar FROM activiteiten ORDER BY jaar ASC";
De ORDER BY jaar DESC veranderen in ASC? :)
 
Dan staat het hele rijtje andersom, dat is ook niet de bedoeling. Alleen "voorgaande jaren" moet naar beneden, de rest moet zo blijven.
 
Geplaatst door DarkFeather
Dan staat het hele rijtje andersom, dat is ook niet de bedoeling. Alleen "voorgaande jaren" moet naar beneden, de rest moet zo blijven.
Oooow, alleen die tekst bedoel je ? Da's toch niet zo moeilijk ? Gewoon de echo 'Voorgaande jaren' onder je while-lus plaatsen :)
 
Die tekst is dus een van de dingen die uit de database worden gehaald en dan (gesorteerd) wordt weergegeven. Dus zoals in het rijtje wat ik heb gepost.
 
En kun je er niet voor zorgen dat die text niet meer in de database staat? :p
 
Wat denk jezelf? Nee, die moet erin blijven staan. Bedankt voor je reactie.
 
Geplaatst door DarkFeather
Wat denk jezelf? Nee, die moet erin blijven staan. Bedankt voor je reactie.
Een beetje bot als je het mij vraagt, vooral omdat ik het enorm met hem/haar eens ben. Wat doet zo'n tekst in dezelfde tabel met jouw jaartallen ? En als die tekst er per sé in moet blijven staan, dan zou ik een kolom `volgorde` toevoegen waarbij ik vervolgens de volgorde zou bepalen en in mijn query aangeven dat hij daarop moet sorteren.

Maar nogmaals: waarom zoiets lomps in die tabel plaatsen ? Dat moet echt veel beter gemodelleerd kunnen worden.
 
Geplaatst door JPeetje
Een beetje bot als je het mij vraagt, vooral omdat ik het enorm met hem/haar eens ben. Wat doet zo'n tekst in dezelfde tabel met jouw jaartallen ? En als die tekst er per sé in moet blijven staan, dan zou ik een kolom `volgorde` toevoegen waarbij ik vervolgens de volgorde zou bepalen en in mijn query aangeven dat hij daarop moet sorteren.

Maar nogmaals: waarom zoiets lomps in die tabel plaatsen ? Dat moet echt veel beter gemodelleerd kunnen worden.
Ik wist dat ik niet de enige was die er zo over dacht:rolleyes:
 
Geplaatst door JPeetje
Een beetje bot als je het mij vraagt, vooral omdat ik het enorm met hem/haar eens ben. Wat doet zo'n tekst in dezelfde tabel met jouw jaartallen ? En als die tekst er per sé in moet blijven staan, dan zou ik een kolom `volgorde` toevoegen waarbij ik vervolgens de volgorde zou bepalen en in mijn query aangeven dat hij daarop moet sorteren.

Maar nogmaals: waarom zoiets lomps in die tabel plaatsen ? Dat moet echt veel beter gemodelleerd kunnen worden.
Helemaal mee eens, maar wou het niet naar voren brengen, aangezien de topicstarter hier natuurlijk goed over zijn database-ontwerp na heeft gedacht :)
 
Bij deze mijn excuses voor de reactie, maar de tekst veranderen was ook mijn eerste idee en een kolom met volgorde, zoals JPeetje al zei was een andere optie. Maar ik heb geen toegang tot de database, en heb ook de gegevens daarvoor niet gekregen (zoals wachtwoord).

Ik ben het wel met jullie eens, maar ik heb de opdracht gekregen om enkele pagina's van een site die niet van mij zelf is aan te passen. Waaronder de foto-pagina, waar dit probleem in zit. Ik heb helaas geen toegang tot de database, dus daar wat in aanpassen gaat niet. Vandaar dat ik het op een andere manier moet oplossen.
 
Laatst bewerkt:
Geplaatst door DarkFeather
Bij deze mijn excuses voor de reactie, maar de tekst veranderen was ook mijn eerste idee en een kolom met volgorde, zoals JPeetje al zei was een andere optie. Maar ik heb geen toegang tot de database, en heb ook de gegevens daarvoor niet.

Ik ben het wel met jullie eens, maar ik heb de opdracht gekregen om enkele pagina's van een site die niet van mij zelf is aan te passen. Waaronder de foto-pagina, waar dit probleem in zit. Ik heb helaas geen toegang tot de database, dus daar wat in aanpassen gaat niet. Vandaar dat ik het op een andere manier moet oplossen.
Een ranzige oplossing, maar maak gewoon 2 query's? Bij de eerste haal je die "voorgaande jaren" niet op, en bij de 2e haal je alleen dat op? ;):p
 
Die oplossing ga ik gebruiken als er geen andere oplossing is. Iemand nog andere ideeen?
 
Tsja, even samenvatten.

- Simpel ordenen wil niet: of de tekst komt bovenaan en de jaren komen goed of de tekst komt onderaan en de jaren zijn fout gesorteerd.
- De database kun je niet aanpassen/uitbreiden: je hebt er geen gegevens van. En je kan er kennelijk ook niet om vragen :(

Dus ik ben bang dat je dit dan heel lomp in je code moet oplossen met een if-statement.
PHP:
$query = '...';
$result = mysql_query( $query ) or die( mysql_error() );
while( ... )
{
  if( $rij['jaar'] != 'Voorgaande jaren' )
  {
    echo $rij['jaar'];
  }
}

echo 'Voorgaande jaren';
Zoiets dus ... Blijft een echte k*toplossing though :p
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan