php sorteren

Gestart doorMarjolein8 reacties43 weergaven

9 berichten · pagina 1 van 1

Marjolein

Lid · Topicstarter

Berichten
15.446
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik haal gegevens op uit de database en die komen ongeveer zo te staan:

Quote:
Test 4.6
Blog 7.1
Filmpje 6.4
Stilte 4
Abonneren 8.6
De Echo... 8.3
Uurtje langer 10

Maar nu wil ik dan het in de volgorde komt te staan van hoog naar laag qua cijfers. Hoe moet ik dit doen, ik heb al gegoogeld en verschillende dingen geprobeerd maar het lukt niet.

En kom niet aan met ORDER BY want dat is de oplossing niet. Het cijfer wordt berekend aan de hand van gegevens uit een andere tabel. Het cijfer wordt geëchood met $uitkomst.
0
Berichten
5.957
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Zet het in een array e.g.
$a[1] = $test;
$a[2] = $stilte;
...
En dan is er wel een functie voor die je even moet zoeken yummie
*edit*
Ow, dat help helemaal niet sm_eerie Ik moet leren lezen, ik zal er even over denken.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Kun je (eventueel in PB) de hele code geven van dat stuk. Ik weet namelijk niet hoe je het ophaalt en echoed enzo. Mogelijk dat je daar namelijk iets mee kan doen; zoals in een array zetten en dat sorten.

// Zie hieronder dus
0
Berichten
3.788
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Je zat wel ongeveer goed:

Zet inderdaad alles in een array, sort die, en foreach die dan:
Arraystructuur: $Array[naam] = cijfer

[COLOR= #0000BB]<?php
$Array[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]Test[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]4.6[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$Array[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]Blog[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]7.1[/COLOR][COLOR= #007700];[/COLOR]
etc

[URL="http://www.php.net/sort"]sort[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$Array[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$Array[/COLOR]  [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$Naam[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$Waarde[/COLOR][COLOR= #007700]){[/COLOR]
    [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$Naam[/COLOR][COLOR= #007700].[/COLOR][COLOR= #DD0000]" "[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$Waarde[/COLOR][COLOR= #007700];
}[/COLOR]
?>
0
Marjolein

Lid · Topicstarter

Berichten
15.446
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
@ Eleky : het cijfer veranderd steeds hè?

@Rik: post m hier gewoon wel ff zon publieksgeheim maak ik er niet van wink
[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]//blog gegevens ophalen[/COLOR]
    [COLOR= #0000BB]$sql2[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT id, titel
                        FROM blog"[/COLOR][COLOR= #007700]);[/COLOR]

        [COLOR= #FF8000]// Als de query gelukt is[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sql2[/COLOR][COLOR= #007700])
        {[/COLOR]
            [COLOR= #FF8000]// De gegevens echoën[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<table><tr><td width="50">id</td><td width="150">Titel:</td><td width="75">+ stem</td><td width="75">-stem</td><td width="100">Cijfer:</td></tr>[/COLOR][COLOR= #007700];[/COLOR]
            [URL="http://www.php.net/while"]while[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$rec1[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_array"]mysql_fetch_array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sql2[/COLOR][COLOR= #007700]))
            {[/COLOR]
                [COLOR= #0000BB]$aant_query[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT 
                (SELECT COUNT(id)FROM stemmen WHERE blog="[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$rec1[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]" AND stem = 1) aantalplus,
                (SELECT COUNT(id)FROM stemmen WHERE blog="[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$rec1[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]" AND stem = 2) aantalmin "[/COLOR][COLOR= #007700]);[/COLOR]
                [COLOR= #0000BB]$aant[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_assoc"]mysql_fetch_assoc[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$aant_query[/COLOR][COLOR= #007700]);[/COLOR]
                [COLOR= #0000BB]$total_plus_vote[/COLOR] [COLOR= #007700]= ([/COLOR] [COLOR= #0000BB]$aant[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]aantalplus[/COLOR][COLOR= #007700]] *[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700]);[/COLOR]
                [COLOR= #0000BB]$total_total[/COLOR] [COLOR= #007700]=([/COLOR] [COLOR= #0000BB]$aant[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]aantalplus[/COLOR][COLOR= #007700]] +[/COLOR] [COLOR= #0000BB]$aant[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]aantalmin[/COLOR][COLOR= #007700]]);[/COLOR]
                [COLOR= #0000BB]$uitkomst[/COLOR] [COLOR= #007700]= (([/COLOR][URL="http://www.php.net/round"]round[/URL][COLOR= #007700](([/COLOR][COLOR= #0000BB]$total_plus_vote[/COLOR] / [COLOR= #0000BB]$total_total[/COLOR][COLOR= #007700]),[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])) *[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]);[/COLOR]
                
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<tr><td>[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$rec1[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]</td><td>[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$rec1[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]titel[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]</td><td>[/COLOR][COLOR= #007700].[/COLOR] [COLOR= #0000BB]$aant[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]aantalplus[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]</td><td>[/COLOR][COLOR= #007700].[/COLOR] [COLOR= #0000BB]$aant[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]aantalmin[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]</td><td>[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000][/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$uitkomst[/COLOR][COLOR= #007700].[/COLOR][COLOR= #DD0000]</td></tr>[/COLOR][COLOR= #007700];
                    
            }[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]</table>[/COLOR][COLOR= #007700];
        }[/COLOR]
?>
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Dit zou moeten werken denk ik. Weet niet of er een makkelijkere manier is, maar dit hoort te werken yummie
[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]//blog gegevens ophalen[/COLOR]
    [COLOR= #0000BB]$sql2[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT id, titel
                        FROM blog"[/COLOR][COLOR= #007700]);[/COLOR]

        [COLOR= #FF8000]// Als de query gelukt is[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sql2[/COLOR][COLOR= #007700])
        {[/COLOR]
            [COLOR= #FF8000]// De gegevens echoën[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<table><tr><td width="50">id</td><td width="150">Titel:</td><td width="75">+ stem</td><td width="75">-stem</td><td width="100">Cijfer:</td></tr>[/COLOR][COLOR= #007700];[/COLOR]
            
            [COLOR= #0000BB]$tmpArray[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
            [COLOR= #0000BB]$countArray[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
            [URL="http://www.php.net/while"]while[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$rec1[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_array"]mysql_fetch_array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sql2[/COLOR][COLOR= #007700]))
            {[/COLOR]
                [COLOR= #0000BB]$aant_query[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT 
                (SELECT COUNT(id)FROM stemmen WHERE blog="[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$rec1[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]" AND stem = 1) aantalplus,
                (SELECT COUNT(id)FROM stemmen WHERE blog="[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$rec1[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]" AND stem = 2) aantalmin "[/COLOR][COLOR= #007700]);[/COLOR]
                [COLOR= #0000BB]$aant[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_assoc"]mysql_fetch_assoc[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$aant_query[/COLOR][COLOR= #007700]);[/COLOR]
                [COLOR= #0000BB]$total_plus_vote[/COLOR] [COLOR= #007700]= ([/COLOR] [COLOR= #0000BB]$aant[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]aantalplus[/COLOR][COLOR= #007700]] *[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700]);[/COLOR]
                [COLOR= #0000BB]$total_total[/COLOR] [COLOR= #007700]=([/COLOR] [COLOR= #0000BB]$aant[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]aantalplus[/COLOR][COLOR= #007700]] +[/COLOR] [COLOR= #0000BB]$aant[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]aantalmin[/COLOR][COLOR= #007700]]);[/COLOR]
                [COLOR= #0000BB]$uitkomst[/COLOR] [COLOR= #007700]= (([/COLOR][URL="http://www.php.net/round"]round[/URL][COLOR= #007700](([/COLOR][COLOR= #0000BB]$total_plus_vote[/COLOR] / [COLOR= #0000BB]$total_total[/COLOR][COLOR= #007700]),[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])) *[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]);[/COLOR]
                
                [COLOR= #FF8000]// Zet de tekst in een array, gekoppeld aan het ID[/COLOR]
                [COLOR= #0000BB]$tmpArray[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$rec1[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]]] =[/COLOR] [COLOR= #DD0000]<tr><td>[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$rec1[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]</td><td>[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$rec1[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]titel[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]</td><td>[/COLOR][COLOR= #007700].[/COLOR] [COLOR= #0000BB]$aant[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]aantalplus[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]</td><td>[/COLOR][COLOR= #007700].[/COLOR] [COLOR= #0000BB]$aant[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]aantalmin[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]</td><td>[/COLOR] [COLOR= #007700].[/COLOR][COLOR= #0000BB]$uitkomst[/COLOR][COLOR= #007700].[/COLOR][COLOR= #DD0000]</td></tr>[/COLOR][COLOR= #007700];[/COLOR]
                
                [COLOR= #FF8000]// zet de uitkomst in een array, gekoppeld aan het ID[/COLOR]
                [COLOR= #0000BB]$countArray[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$rec1[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]]] =[/COLOR] [COLOR= #0000BB]$uitkomst[/COLOR][COLOR= #007700];
                    
            }[/COLOR]
            
            [COLOR= #FF8000]// Sort de functie op waardes (uitkomst dus)[/COLOR]
            [URL="http://www.php.net/asort"]asort[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$countArray[/COLOR][COLOR= #007700]);[/COLOR]
            
            [COLOR= #FF8000]// Haal voor elke uitkomst (op volgorde) de tekst weer uit onze temparray[/COLOR]
            [URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$countArray[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$key[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$val[/COLOR][COLOR= #007700])
            {[/COLOR]
                [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$tmpArray[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$key[/COLOR][COLOR= #007700]];    
            }[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]</table>[/COLOR][COLOR= #007700];
        }[/COLOR]
?>
0
Marjolein

Lid · Topicstarter

Berichten
15.446
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
pompom Yeah thanks worshippy
Heb het bestudeerd en volgens mij snap ik het nu. Ik was er bijna met me eigen probeersels maar ik zie toch dat ik wat belangrijke dingen vergeten was.
Ik heb alleen asort veranderd in arsort want ik wilde van hoog naar laag.

Heel erg bedankt voor je hulp
Afbeelding
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Ah tuurlijk, foutje van mijn kant.

Maar aan de positieve reactie merk ik dat het werkt? smile
0
Marjolein

Lid · Topicstarter

Berichten
15.446
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ja het werkt perfect. Weer wat geleerd yummie
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren