qualitum logo
DESC och ASC samtidigt?

PHPportalen Forum Index » PHP Mjukstart
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
nyfiken



Medlem i: 562 dagar

Status: Offline



#719899
Inlägg Skrivet: 2012-01-29 16:35      Ämne: DESC och ASC samtidigt? Citera

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:
PHP:
1:
 
2:
ORDER BY `idDESC 

skrivs det ut i den här ordning: 7,6,5.

Om jag kör:
PHP:
1:
 
2:
ORDER BY `idACS 

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
Visa användarprofil Skicka privat meddelande
DrPhil



Medlem i: 1861 dagar

Status: Offline



#719901
Inlägg Skrivet: 2012-01-29 16:59      Ämne: Citera

Enklast är väl kanske att använda array_reverse på arrayen före du skriver ut den?
 

_________________
42
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
nyfiken



Medlem i: 562 dagar

Status: Offline



#719906
Inlägg Skrivet: 2012-01-29 17:56      Ämne: Citera

Så om jag har följande kod:

PHP:
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
Visa användarprofil Skicka privat meddelande
marabou
Moderator



Medlem i: 3149 dagar
Från: Sveriges framsida
Status: Offline



#719912
Inlägg Skrivet: 2012-01-29 18:45      Ämne: Citera

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
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
nyfiken



Medlem i: 562 dagar

Status: Offline



#719913
Inlägg Skrivet: 2012-01-29 19:18      Ämne: Citera

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:

PHP:
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
Visa användarprofil Skicka privat meddelande
Wedge
Administratör



Medlem i: 3919 dagar
Från: Järfälla
Status: Offline



#719914
Inlägg Skrivet: 2012-01-29 19:24      Ämne: Citera

*flytt*
 

_________________
Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
marabou
Moderator



Medlem i: 3149 dagar
Från: Sveriges framsida
Status: Offline



#719915
Inlägg Skrivet: 2012-01-29 19:32      Ämne: Citera

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
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
nyfiken



Medlem i: 562 dagar

Status: Offline



#719916
Inlägg Skrivet: 2012-01-29 19:39      Ämne: Citera

Löste det!

Problemet var att jag hade

PHP:
1:
 foreach($number as $newarray )  


istället för:

PHP:
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
Visa användarprofil Skicka privat meddelande
azuraji



Medlem i: 834 dagar
Från: Stockholm
Status: Offline



#719920
Inlägg Skrivet: 2012-01-29 20:13      Ämne: Citera

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
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP Mjukstart
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic
qualitum logo