Ik haal bij mijn foto's uit de database op of ze staand, liggend of vierkant zijn d.m.v.:
Dit werkt prima.Code:CASE WHEN (breedte = hoogte) THEN 'vierkant' ELSE CASE WHEN(breedte/hoogte) < 1 THEN 'staand' ELSE 'liggend' END END AS staandliggend
Verderop in de query order ik hier ook op (dit i.v.m. de weergave in mijn pagina waar dat wenselijk voor is):
Probleem is alleen dat hij dan altijd dezelfde volgorde aanhoudt qua 'staandliggend'. Dus altijd eerst liggend, dan staand en dan vierkant.Code:ORDER BY staandliggend, rand()
Graag zou ik ook dat random maken. Is dit mogelijk?
- Variabel orderen
-
31-10-2011, 20:50 #1
- Berichten
- 703
- Lid sinds
- 17 Jaar
Variabel orderen
-
-
31-10-2011, 21:56 #2
- Berichten
- 658
- Lid sinds
- 18 Jaar
Re: Variabel orderen
Bedoel je zo iets?
GROUP BY staandliggend ORDER BY rand()
-
04-11-2011, 21:34 #3
- Berichten
- 158
- Lid sinds
- 14 Jaar
Re: Variabel orderen
waarom onderscheid maken als je ze toch random wilt laten weergeven?
je kan ook gewoon dit doen:
PHP Code:ORDER BY rand()
-
04-11-2011, 22:19 #4
- Berichten
- 703
- Lid sinds
- 17 Jaar
Re: Variabel orderen
@Lodewijk: dat werkt niet, dan vallen er resultaten weg omdat hij dingen groepeerd.
@Bas: goed lezen...
-
04-11-2011, 22:44 #5
- Berichten
- 75
- Lid sinds
- 15 Jaar
Re: Variabel orderen
De sortering gaat nu op alfabet.
Maar ik begrijp niet precies wat je met je random sortering wil?
Heb je uberhaupt wel sortering nodig dan?
-
05-11-2011, 08:00 #6
- Berichten
- 703
- Lid sinds
- 17 Jaar
Re: Variabel orderen
Ik wil als ik nu de site open: eerst alle vierkante foto's (in willekeurige volgorde), dan alle liggende foto's (in willekeurige volgorde) en dan alle staande foto's (in willekeurige volgorde).
De volgende persoon die de site opent moet krijgen: eerst alle liggende foto's (in willekeurige volgorde), dan alle staande foto's (in willekeurige volgorde) en dan alle vierkante foto's (in willekeurige volgorde).
De volgende eerst alle vierkante foto's (in willekeurige volgorde), dan alle staande foto's (in willekeurige volgorde) en dan alle liggende foto's (in willekeurige volgorde).
enz. enz.
Dus per soort foto (zeg maar categorie) en dan random gesorteerd in de soort/categorie.
-
05-11-2011, 09:20 #7
- Berichten
- 658
- Lid sinds
- 18 Jaar
Re: Variabel orderen
Dat kan je als volgt doen:
SELECT id, type FROM (SELECT id, type FROM jedatabasetabel as hoofdtabel ORDER BY RAND()) as subtabel ORDER BY find_in_set(type, 'liggend,staand,vierkant')
Allereerst worden alle rijen dus random geordend, vervolgens sorteer je ze op liggend, staand, vierkant.
Als je in de mysql de volgorde van 'liggend,staand,vierkant' veranderd naar bijvoorbeeld 'staand,liggend,vierkant' ordent hij ze nu op staand,liggend, vierkant. Je moet dus nog even in mysql (of via php) een random volgorde geven aan deze set.
Ik wil als ik nu de site open: eerst alle vierkante foto's (in willekeurige volgorde), dan alle liggende foto's (in willekeurige volgorde) en dan alle staande foto's (in willekeurige volgorde).
De volgende persoon die de site opent moet krijgen: eerst alle liggende foto's (in willekeurige volgorde), dan alle staande foto's (in willekeurige volgorde) en dan alle vierkante foto's (in willekeurige volgorde).
De volgende eerst alle vierkante foto's (in willekeurige volgorde), dan alle staande foto's (in willekeurige volgorde) en dan alle liggende foto's (in willekeurige volgorde).
enz. enz.
Dus per soort foto (zeg maar categorie) en dan random gesorteerd in de soort/categorie.
-
05-11-2011, 19:14 #8
- Berichten
- 703
- Lid sinds
- 17 Jaar
Re: Variabel orderen
Heb het niet in de database zitten maar bepaal het op basis van breedte en hoogte (die wel in de db staan)...
Moet zeggen dat ik je query niet helemaal volg.
-
05-11-2011, 19:36 #9
- Berichten
- 658
- Lid sinds
- 18 Jaar
Re: Variabel orderen
SELECT id, type FROM (SELECT id, type FROM jedatabasetabel as hoofdtabel ORDER BY RAND()) as subtabel ORDER BY find_in_set(type, 'liggend,staand,vierkant')
Wat moet je zelf nog aanpassen?
Allereerst heb ik dus de query gemaakt met de kolom type waarin liggend/staand/vierkant in staan. Als je niet een dergelijke kolom wil toevoegen kan je ook iets dergelijks doen:
SELECT id, type FROM (SELECT id, IF(hoogte=breedte, 'vierkant', IF(hoogte<breedte, 'liggend', 'staand')) as type FROM jedatabasetabel as hoofdtabel ORDER BY RAND()) as subtabel ORDER BY find_in_set(type, 'liggend,staand,vierkant')
Nu zou je het zelf verder op moeten kunnen lossen, ik heb het nu zo goed als voorgekauwd.
Edit:
Ik heb het even getest, en hier werkt het prima mee
-
08-11-2011, 12:19 #10
- Berichten
- 703
- Lid sinds
- 17 Jaar
Re: Variabel orderen
Werkt als een trein!
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic