Gå til innhold

reversere ein loop


Anbefalte innlegg

hei!

 

har laget eit lite script som henter informasjon fra en mysql database og putter det inn i ein tabell. jeg bruker "for" til å lage en loop for å få med alt i tabellen i databasen. scriptet funker fint, men siden dette er ett "nyhetsarkiv" ønsker jeg at "for" funksjonen blir reversert, eller med andre ord går i motsatt rekkefølge sånn at det siste innlegget kommer øverst.

 

noen som vet hvordan jeg gjør dette?

 

her er koden på scriptet mitt:

 

<table width="500">

 

<?

$hostname = "localhost";

$user = "********";

$password = "********";

$db = "********";

$connection = @mysql_connect($hostname, $user, $password) or die("Får ikke kontakt med databasen.");

@mysql_select_db($db);

 

$sql_result = mysql_query("SELECT * FROM nyhet");

$num_links = mysql_num_rows($sql_result);

 

for ($i=0; $i<$num_links; $i++)

{

 

$myrow = mysql_fetch_array($sql_result);

$overskrift = $myrow["overskrift"];

$dato = $myrow["dato"];

$nyhet = $myrow["nyhet"];

 

echo('

<tr>

  <td width="350" height="20" valign="top">

  <font color="#FFFFFF"><b>

  '); print("$overskrift"); echo('

  </b></font>

  </td>

 

  <td width="150" height="20" valign="top">

  <font color="#FFFFFF"><b>

  '); print("$dato"); echo('

  </b></font>

  </td>

</tr>

 

<tr>

  <td width="500" valign="top" colspan="2">

  <font color="#FFFFFF">

  '); print("$nyhet"); echo('

  </font>

  </td>

</tr>

 

<tr>

  <td width="500" height="20" valign="top" colspan="2">

  <hr>

  </td>

</tr>

');

 

}

?>

 

</table>

 

håper det er noen som har peiling og gidder å hjelpe meg ;) !!

 

mvh

kristian

Lenke til kommentar
Videoannonse
Annonse

Du trenger ikke reversere loopen, du trenger bare å endre SQL-koden din.

 

Nå har du: SELECT * FROM nyhet

 

I stedet kunne du ha skrevet: SELECT * FROM nyhet ORDER BY ID ASC

 

Om du vil ha dette i motsatt rekkefølge, så bruker du: SELECT * FROM nyhet ORDER BY ID DESC

 

Du må selvsagt bytte ut ID med navnet på den kolonnen du vil sortere etter. Hvis kolonnen ikke heter ID, da.

 

MVH Audun

Lenke til kommentar

Hei!

 

takker for alle svar! var akkurat det jeg lette etter!

 

ett lite tilleggsspørsmål siden jeg var så godt igang. viss jeg vil kun hente ut den rekken med informasjon fra tabellen som er nyest hva gjør jeg da? (nå tenker jeg når rekkene blir sortert etter dato sånn som fjartan foreslo)..

 

hilsen

kristian

Lenke til kommentar

Du har alt i en for funksjon nå, du kan begrense den til å bare kjøre en gang, eventuelt ta bort hele for - for da hentes kun den første.

 

Eller det enkleste du kan gjøre er å legge til LIMIT 1 i query'en. Dersom databasen er stor burde du alltid legge til limit slik at sql serveren slipper å hente så mye data.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...