/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Sortere et MySQL result
Fra : Anonym A.K.A. mig


Dato : 17-02-01 12:06

Jeg vil gerne sortere et mysql resultat alfabetisk efter titlen så når jeg
bruger en løkke lignende denne:

while($row = mysql_fetch_array($result)) {

echo '<a href="nr.php?id='.$row[id].'">'.$titel.'</a>

}

Kommer der en liste i aflabetisk rækkefølge. Nu er rækkefølgen efter hvilket
ID de forskellige entries har. Kan det gøres?

Jeg kan IKKE bruge "order by titel" i min sql query, men vil have PHP til at
gøre det, fx: sort($result, titel, desc) ??????



 
 
John Mørck Hansen (17-02-2001)
Kommentar
Fra : John Mørck Hansen


Dato : 17-02-01 13:07

Hej hej

Ja, det er jo unækelig et rigtigt godt spørgsmål. Du kan ikke i første
omgang bare bruge de sort alguritmer som findes i PHP.

Du skal først have alle dine poster ind i et array:

while($obj = mysql_fetch_object($result)) {
$Records[] = $obj;
}

Så kan du bruge en funktion som heder usort:

function cmp ($a, $b) {
if ($a->Caption == $b->Caption) return 0;
return strcmp( $a->Title, $b->Title);
}

usort ($Records, "cmp");


(John =




"Anonym A.K.A. mig" <ole321@yahoo.dk> skrev i en meddelelse
news:zWsj6.71$YU4.1384@news.get2net.dk...
> Jeg vil gerne sortere et mysql resultat alfabetisk efter titlen så når jeg
> bruger en løkke lignende denne:
>
> while($row = mysql_fetch_array($result)) {
>
> echo '<a href="nr.php?id='.$row[id].'">'.$titel.'</a>
>
> }
>
> Kommer der en liste i aflabetisk rækkefølge. Nu er rækkefølgen efter
hvilket
> ID de forskellige entries har. Kan det gøres?
>
> Jeg kan IKKE bruge "order by titel" i min sql query, men vil have PHP til
at
> gøre det, fx: sort($result, titel, desc) ??????
>
>



Peter Brodersen (24-02-2001)
Kommentar
Fra : Peter Brodersen


Dato : 24-02-01 02:50

On Sat, 17 Feb 2001 13:07:03 +0100, "John Mørck Hansen"
<adilock@it.dk> wrote:

>while($obj = mysql_fetch_object($result)) {
> $Records[] = $obj;
>}

Jeg anbefalede for nyligt:

while($Records[] = mysql_fetch_object($result));

.... som en kort-form af ovenstående - men der er en undtagelse, og det
er, når mysql_fetch_... ikke returnerer noget/er falsk, så bliver
dette selvfølgelig stadigvæk tilføjet til $Records[], og man får
således en ekstra, blank entry i sit array. Så af hensyn til dem, der
synes, den kort-skrivnings-form var smart, så lad mig lige
understrege, at det er den ikke :)


--
- Pede
Professionel nørd

Anonym A.K.A. mig (24-02-2001)
Kommentar
Fra : Anonym A.K.A. mig


Dato : 24-02-01 18:12


"John Mørck Hansen" <adilock@it.dk> wrote in message
news:96lpkn$m9a$1@news.cybercity.dk...
> Hej hej
>
> Ja, det er jo unækelig et rigtigt godt spørgsmål. Du kan ikke i første
> omgang bare bruge de sort alguritmer som findes i PHP.
>
> Du skal først have alle dine poster ind i et array:
>
> while($obj = mysql_fetch_object($result)) {
> $Records[] = $obj;
> }
>
> Så kan du bruge en funktion som heder usort:
>
> function cmp ($a, $b) {
> if ($a->Caption == $b->Caption) return 0;
> return strcmp( $a->Title, $b->Title);
> }
>
> usort ($Records, "cmp");
>
>
> (John =
>

Hvad er "caption" og "title"? Det ligner OO programering, hvilket jeg ikke
kender særlig godt. Jeg har kaldt title column for "cat_titel" i databasen.
Kan jeg fx sætte koden imellem:

" $result = mysql_query ("SELECT * FROM cats WHERE cat_sub = $cat")
or die ("Invalid query"); "
og

"while($row = mysql_fetch_array($result)) {
echo $row[cat_titel]
}"

Og så sætte result lig usort ($Records, "cmp"); ?


>
> "Anonym A.K.A. mig" <ole321@yahoo.dk> skrev i en meddelelse
> news:zWsj6.71$YU4.1384@news.get2net.dk...
> > Jeg vil gerne sortere et mysql resultat alfabetisk efter titlen så når
jeg
> > bruger en løkke lignende denne:
> >
> > while($row = mysql_fetch_array($result)) {
> >
> > echo '<a href="nr.php?id='.$row[id].'">'.$titel.'</a>
> >
> > }
> >
> > Kommer der en liste i aflabetisk rækkefølge. Nu er rækkefølgen efter
> hvilket
> > ID de forskellige entries har. Kan det gøres?
> >
> > Jeg kan IKKE bruge "order by titel" i min sql query, men vil have PHP
til
> at
> > gøre det, fx: sort($result, titel, desc) ??????
> >
> >
>
>



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste