| Visa föregående ämne :: Visa nästa ämne |
| Startad av: |
Meddelande |
nyfiken
Medlem i: 561 dagar
Status: Offline
#719899
|
Skrivet: 2012-01-29 16:35
Ämne: DESC och ASC samtidigt?
|
|
|
Hej!
Ponera följande:
Jag har 7 st nummer, 1-7. De finns i en databas som består av id och nummer. Jag vill plocka ut de 3 st med högst värde (7,6,5), och skriva ut dem i följande ordning: 5,6,7.
Om jag kör:
skrivs det ut i den här ordning: 7,6,5.
Om jag kör:
skrivs det ut i den här ordning: 1,2,3.
Förstår ni mitt problem? Kan jag lösa det här på något sätt i min loop? |
|
|
|
| Till toppen på sidan |
|
DrPhil
Medlem i: 1861 dagar
Status: Offline
#719901
|
Skrivet: 2012-01-29 16:59
Ämne:
|
|
|
| Enklast är väl kanske att använda array_reverse på arrayen före du skriver ut den? |
|
|
_________________ 42 |
| Till toppen på sidan |
|
nyfiken
Medlem i: 561 dagar
Status: Offline
#719906
|
Skrivet: 2012-01-29 17:56
Ämne:
|
|
|
Så om jag har följande kod:
1: 2: <?php 3: //queryn är angiven i den riktiga 4: $result = mysql_query($query) or die(mysql_error()); 5: 6: while($row = mysql_fetch_array($result )) { 7: 8: $number= $row ['number']; 9: echo $number; 10: 11: } 12: ?>
|
var ska jag sätta in array_reverse? |
|
|
|
| Till toppen på sidan |
|
marabou


Medlem i: 3148 dagar Från: Sveriges framsida
Status: Offline
#719912
|
Skrivet: 2012-01-29 18:45
Ämne:
|
|
|
I din while-loop lägger du infon i en array istället för att skriva ut dem.
Efter loopen kör du array_reverse på arrayvariabeln och sedan loopar du igenom arrayen med foreach och skriver ut. |
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
nyfiken
Medlem i: 561 dagar
Status: Offline
#719913
|
Skrivet: 2012-01-29 19:18
Ämne:
|
|
|
| marabou skrev: |
I din while-loop lägger du infon i en array istället för att skriva ut dem.
Efter loopen kör du array_reverse på arrayvariabeln och sedan loopar du igenom arrayen med foreach och skriver ut. |
Så här lång har jag kommit:
1: while($row = mysql_fetch_array($result1)) 2: { 3: $array[] = $row[timesent]; 4: } 5: 6: foreach($number as $array) //är det här för att skriva ut 3 nummer? 7: { 8: echo $number; 9: }
|
Senast ändrad av nyfiken den 2012-01-29 19:35, ändrad totalt 3 gånger |
|
|
|
| Till toppen på sidan |
|
Wedge


Medlem i: 3919 dagar Från: Järfälla
Status: Offline
#719914
|
Skrivet: 2012-01-29 19:24
Ämne:
|
|
|
| *flytt* |
|
|
_________________ Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber |
| Till toppen på sidan |
|
marabou


Medlem i: 3148 dagar Från: Sveriges framsida
Status: Offline
#719915
|
Skrivet: 2012-01-29 19:32
Ämne:
|
|
|
| nyfiken skrev: |
| Så här lång har jag kommit: |
Efter while-loopen kör du array_reverse.
Sedan kör du foreach på $array.
Hur fungerar foreach: foreach |
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
nyfiken
Medlem i: 561 dagar
Status: Offline
#719916
|
Skrivet: 2012-01-29 19:39
Ämne:
|
|
|
Löste det!
Problemet var att jag hade
1: foreach($number as $newarray )
|
istället för:
1: foreach($newarray as $number)
|
det vill säga arrayen före den nya variabeln.
Senast ändrad av nyfiken den 2012-01-29 21:02, ändrad totalt 1 gång |
|
|
|
| Till toppen på sidan |
|
azuraji
Medlem i: 833 dagar Från: Stockholm
Status: Offline
#719920
|
Skrivet: 2012-01-29 20:13
Ämne:
|
|
|
Du kan använda en subquery:
SELECT inner.number FROM (SELECT number FROM numbers ORDER BY number DESC LIMIT 3) AS inner ORDER BY inner.number ASC |
|
|
|
| Till toppen på sidan |
|
|