Avatar billede prop46 Nybegynder
23. oktober 2007 - 10:15 Der er 5 kommentarer og
1 løsning

sorter udtræk

Jeg har en tabel i mysql som hedder links, som indeholder en masse links, der kan være med eller uden banner tilknyttet, og som hver har et emne de sorterer under.

noget i den her retning:

| id | emne | link | banner |

Det jeg gerne vil er, at liste dem som nedenstående:

EMNE 1
link1 uden banner
link2 uden banner
link3 uden banner
link4 med banner

EMNE 2
link5 uden banner
link6 med banner
link7 med banner
osv osv...

Jeg har nedenstående kode, som sorterer links'ne under emne, men selvf. ikke gør det sådan at links uden banner står først under de enkelte emner.

<table cellpadding="0" cellspacing="0" border="0">
<?php
$old = "";
while($resultat_link = mysql_fetch_array($resultat_hent_link)) {
$emne =  stripslashes($resultat_link["emne"]);
$link =  stripslashes($resultat_link["link"]);
$banner =  stripslashes($resultat_link["banner"]);
if ( $old != $resultat_link['emne']){
?>
<tr>
<td style="heigh:20px;">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top" class="p3"><u><?php echo $emne; ?></u></td>
</tr>
<?php
$hent_link = "SELECT emne_dansk AS 'emne', link, banner FROM links WHERE vis='ja' AND link!='NYT LINK' ORDER BY emne ASC";

<?php
$old = "";
while($resultat_link = mysql_fetch_array($resultat_hent_link)) {
$emne =  stripslashes($resultat_link["emne"]);
$link =  stripslashes($resultat_link["link"]);
$banner =  stripslashes($resultat_link["banner"]);
if ( $old != $resultat_link['emne']){
echo "<tr><td style=\"heigh:20px;\">&nbsp;</td></tr><tr><td align=\"left\" valign=\"top\" class=\"p3\"><u>".$emne."</u></td></tr>";

$old = $resultat_link['emne'];
}
if($banner!=''){
echo "<tr><td style=\"padding-top:5px; padding-left:5px;\" align=\"left\" valign=\"top\"><a href=\"http://".$link."\" target=\"_blank\" class=\"a3\"><img src=\"image/links/".$banner."\" style=\"width:350px;\" border=\"0\"></a></td><tr>";
}else{
echo "<tr><td style=\"padding-top:5px; padding-left:5px;\" align=\"left\" valign=\"top\"><a href=\"http://".$link."\" target=\"_blank\" class=\"a3\">".$link."</a></td></tr>";
}
}
?>

Så hvordan griber jeg det an, hvis jeg gerne vil have at links der ikke har banner vises først indefor de enkelte emner?
Avatar billede di8leva Nybegynder
23. oktober 2007 - 10:27 #1
Nu har jeg ikke nogen databas at pröve med, men kan du ikke bare modificere din SQL til:


SELECT emne_dansk AS 'emne', link, banner FROM links WHERE vis='ja' AND link!='NYT LINK' ORDER BY emne ASC, link ASC

og hvis det ikke virker, pröv med link DESC
Avatar billede di8leva Nybegynder
23. oktober 2007 - 10:27 #2
Hov... det skulle vare en kommentar, og er marketet som en kommentar... hvorfor bliver det et svar?
Avatar billede di8leva Nybegynder
23. oktober 2007 - 10:29 #3
I nogle databaser kan du også tilföje "nulls first" efter sorteringen for link, for at få vist dem först
Avatar billede prop46 Nybegynder
23. oktober 2007 - 10:48 #4
Ikke noget positivt resultat at prøve med ORDER BY emne ASC, link ASC. Jeg forstår heller ikke rigtig hvorfor det skulle hjælpe.. linksne er jo ikke ens..?

Mht 'nulls first' så kender jeg det ikke, og kan ikke finde noget om det i min db.....

Jeg var faktisk måske mere ude i noget løkke noget... men det er jeg ikke velbevandret i.. og det kan være der er en nemmere måde...?
Avatar billede prop46 Nybegynder
08. november 2007 - 14:36 #5
di8leva --> hvis du lige vil lægge et svar igen... jeg brugte faktisk ORDER BY emne ASC, banner ASC og dte lader til at have den ønskede effekt.... Så du skal da havde nogle point :0)
Avatar billede di8leva Nybegynder
13. november 2007 - 16:02 #6
det lyder ju super :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester