Avatar billede dazzy Nybegynder
27. juni 2009 - 16:18 Der er 14 kommentarer og
1 løsning

Sql sortering HJÆLP

Se link : http://nicolaiklindt.dk/index.php?side=nyheder

jeg vil gerne have sådan at den nyeste er øverst.
Mit script:
include_once('inc.config.php');

mysql_connect($cfg['mysql']['host'],$cfg['mysql']['username'],$cfg['mysql']['password']);
mysql_select_db($cfg['mysql']['database']);

$string = str_replace("\r\n","<br>",$string);

$query = mysql_query("SELECT *,dato,id,overskrift,month,day FROM news WHERE sprog = 1 ORDER BY month, day ASC") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {

    echo ' <font face="Arial" size="2">'.$row['dato'].'<br>';
    echo '<i><a href="index.php?side=news.display&id='.$row['id'].'">'.$row['overskrift'].'</a></i><br>';
    echo '</font><font color="#800000" size="2" face="Arial"><i>------------------------------------------------------------------------------</i></font><i><font color="#800000" size="2" face="Arial">---------------------------------------</font>';
}
}
else {
include_once('inc.config.php');

mysql_connect($cfg['mysql']['host'],$cfg['mysql']['username'],$cfg['mysql']['password']);
mysql_select_db($cfg['mysql']['database']);

$string = str_replace("\r\n","<br>",$string);

$query = mysql_query("SELECT *,datoeng,id,overskrifteng,month,day FROM news WHERE sprog = 1 ORDER BY month,day DESC") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {

    echo ' <font face="Arial" size="2">'.$row['datoeng'].'<br>';
    echo '<i><a href="index.php?side=news.display&id='.$row['id'].'">'.$row['overskrifteng'].'</a></i><br>';
    echo '</font><font color="#800000" size="2" face="Arial"><i>------------------------------------------------------------------------------</i></font><i><font color="#800000" size="2" face="Arial">---------------------------------------</font>';
}

Har prøvet i lang tid kan ikke få det itl at virke.
Avatar billede dazzy Nybegynder
27. juni 2009 - 16:19 #1
Hov kun koncentrer jer om :
include_once('inc.config.php');

mysql_connect($cfg['mysql']['host'],$cfg['mysql']['username'],$cfg['mysql']['password']);
mysql_select_db($cfg['mysql']['database']);

$string = str_replace("\r\n","<br>",$string);

$query = mysql_query("SELECT *,dato,id,overskrift,month,day FROM news WHERE sprog = 1 ORDER BY month, day ASC") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {

    echo ' <font face="Arial" size="2">'.$row['dato'].'<br>';
    echo '<i><a href="index.php?side=news.display&id='.$row['id'].'">'.$row['overskrift'].'</a></i><br>';
    echo '</font><font color="#800000" size="2" face="Arial"><i>------------------------------------------------------------------------------</i></font><i><font color="#800000" size="2" face="Arial">---------------------------------------</font>';
}

:P
Avatar billede 2c Nybegynder
27. juni 2009 - 16:23 #2
Hvad med en order by på dit id?

Hvis den er auto generet, så vil den højeste altid være den sidste nye.
Avatar billede dazzy Nybegynder
27. juni 2009 - 16:25 #3
Ja men skal ikke oprette dem i rigtige række følge nemlig
Avatar billede dazzy Nybegynder
27. juni 2009 - 16:28 #4
Har order by id før, men skal også bruge det til kalender
Avatar billede erikjacobsen Ekspert
27. juni 2009 - 16:35 #5
Er din month og day af typen varchar?  - hvorfor ikke bare "..order by dato" ?
Avatar billede dazzy Nybegynder
27. juni 2009 - 16:41 #6
Ja de er af typen varchar.
Grunden til jeg valgte ikke at gøre det var at jeg havde set calendre hvor det var lavet sådan og læst nogle steder hvor der var nogle der synes det fungerede bedst på denne måde.
Avatar billede erikjacobsen Ekspert
27. juni 2009 - 16:54 #7
Det fungerer sikkert fint - lige bortset fra hvis du skal sortere på datoen, hvor "26" kommer før "6".
Avatar billede dazzy Nybegynder
27. juni 2009 - 16:59 #8
Nemlig det jeg skal.. Hvad gør jeg så ? Skal nemlig sortere på dato månede og år, skal nemlig bruge det til at vise kalender for fremtidige løb + nyheder for overståede løb og resultater
Avatar billede erikjacobsen Ekspert
27. juni 2009 - 17:15 #9
Du har et felt med navnet "dato"  - hvad er det?
Avatar billede _darkstar_ Nybegynder
27. juni 2009 - 17:30 #10
Du laver dato-felterne om til rigtige datoer.
Avatar billede dazzy Nybegynder
28. juni 2009 - 16:26 #11
Har lavet dato felterne om, hvordan skal jeg så sortere så det kun er dem fra idag og frem jeg vil se ?
Avatar billede erikjacobsen Ekspert
28. juni 2009 - 16:48 #12
select * from dintabel where dato>now()
Avatar billede _darkstar_ Nybegynder
28. juni 2009 - 17:07 #13
Eriks får ikke dags dato med. Denne her burde virke:

select * from mintabel where datoen >= curdate();

Se også http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
Avatar billede dazzy Nybegynder
28. juni 2009 - 17:14 #14
har lavet det sådan : date >= NOW() og ser ud til at virke perfekt.

Bonnusspørgsmål ;).. Er det muligt at hente kun dag og månede ud af datoen. (datoformatet yyyy-mm-dd) vil gerne have jeg kan skrive det er idag 02/03
Avatar billede _darkstar_ Nybegynder
28. juni 2009 - 18:06 #15
Se manualen, jeg henviste til.
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
Computerworld tilbyder specialiserede kurser i database-management

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