login  Naam:   Wachtwoord: 
Registreer je!
 Forum

sorteren

Offline Ultimatum - 22/05/2007 12:48
Avatar van UltimatumPHP expert Ey, ik heb een probleempje met sorteren. Ik heb een tabel met het veld stars, deze is numeric en kan 1 tot 10 bevatten. 1 is bijvoorbeeld 1 ster en 5, 5 sterren, maar 6 is bed en breakfast en hier loopt het fout 

Ik moet dus eerst 5 tot 1 ster laten zien en dan de rest eronder, maar nu krijg ik of dit:
Citaat:
1
2
3
4
5
bed en breakfast


of
Citaat:
bed en breakfast
5
4
3
2
1


maar.. het moet dus dit worden 

Citaat:
5
4
3
2
1
bed en breakfast


Met group by kan ik de 3de quote dus niet verwezenlijken 

6 antwoorden

Gesponsorde links
Offline marten - 22/05/2007 13:06
Avatar van marten Beheerder
Citaat:
Ik heb een tabel met het veld stars, deze is numeric en kan 1 tot 10 bevatten. 1 is bijvoorbeeld 1 ster en 5, 5 sterren, maar 6 is bed en breakfast


Bed and Breakfast is niet numeric maar varchar? Je spreekt je namelijk in bovenstaande quote tegen.
Offline Ultimatum - 22/05/2007 13:10
Avatar van Ultimatum PHP expert Nee, ik heb een table stars, daarin staan ze allemaal en met dat unieke id koppel ik weer terug aan een andere tabel 
Offline marten - 22/05/2007 13:21
Avatar van marten Beheerder laat eens wat code zien.
Offline Ultimatum - 22/05/2007 13:35 (laatste wijziging 23/05/2007 14:24)
Avatar van Ultimatum PHP expert Veel valt er niet te zien, dit is de query:
  1. $info = mysql_query("SELECT HotelsMain.id
  2. FROM HotelsMain
  3. INNER JOIN HotelsOptions
  4. ON(HotelsOptions.id = HotelsMain.id)
  5. WHERE BusinessSuite = 'on'
  6. OR BusinessHotel = 'on'
  7. OR ConferenceRoom = 'on'
  8. OR BusinessCenter = 'on'
  9. OR DisBusinessCenter = '100'
  10. OR DisBusinessCenter = '500'
  11. OR DisBusinessCenter = '1000'
  12. ORDER BY Stars ASC
  13. LIMIT $offset, $perPage") or die(mysql_error());


En in hotelsmain staan in het veld Star alleen maar nummers die bij het uitlezen terug linken naar de tabel Star

Niemand?
Offline Thomas - 23/05/2007 14:47
Avatar van Thomas Moderator Je zou met een IF-statement in je query kunnen controleren op "bed en breakfast" en deze dan door een getal vervangen, maar beter is misschien een "volgorde-kolom" in je sterren-tabel toevoegen, waarmee je zelf een volgorde in kunt stellen.

Ook zou je het sorteerprobleem naar PHP kunnen verplaatsen. Eerst alles in een array zetten en dan sorteren op een of ander criterium. Wel minder efficiënt maar dan hoef je niets aan je DB-structuur te veranderen.
Offline Ultimatum - 24/05/2007 10:09
Avatar van Ultimatum PHP expert Hoe kan ik sorteren in een array dan? Ik bedoel, je kan met sort maar dan krijg ik dus dezelfde uitkomst als met group by. Zou je kunnen uitleggen wat je bedoeld?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.222s