Avatar billede nc85 Nybegynder
20. januar 2005 - 13:24 Der er 13 kommentarer og
1 løsning

hvorfor skriver den ikke ud korrekt?

Hey alle...

prøv at se www.jysk-rejsebureau.dk/fora_top6.php
den skal smide de seneste 5 indlæg ud, men problemet er at den ikke viser datoen rigtigt! Den indlægger nogle datoer, også kommer indlægget ikke efter, og den gentager nogle! Hvordan kan dette være????

Min Kode:

<?
            echo "<span class='fontC'><b>Seneste indlæg i rejseforedrag</b>";
echo "<br>";
$mc = mysql_connect("XXX","XXX","XXX");
mysql_select_db("jysk");
$SQL = "SELECT * FROM T_LECTURE ORDER BY DATO";
$mq = mysql_query($SQL) or die(mysql_error());
while ($indlaeg = mysql_fetch_assoc($mq)) {
    $arrDatoOgTid = split(" ",$indlaeg['DATO']);
    $arrDato = split("-",$arrDatoOgTid[0]);
    echo $arrDato[2] . "/" . $arrDato[1] . " ";
   
    #$mesgId = $indlaeg['ID'];
    $mesgId = $indlaeg['DEPARMENT'];
    #echo "$mesgId";
   
    if ($mesgId == 7){
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/aalborg/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>";}
   
    if ($mesgId == 5){
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/aarhus/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>"; }
   
    if (mesgId == 3){
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/kbh/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>"; }
   
    if (mesgId == 8) {
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/specialrejser/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>"; }
   
else { mysql_error(); }
    #echo "</strong>";
}
#echo "<a href='http://www.jysk-rejsebureau.dk/under_rejsen/rejseforum/fora/index.htm' target='_top'>";
#echo "<strong>Gå til forum</strong>";
#echo "</a>";

?>
Avatar billede morteeart Nybegynder
20. januar 2005 - 13:30 #1
I hvilket format ligger DATO'en i din database ?
Du kan kun sortere på faste formater, og talværdier (int,double)
Avatar billede nc85 Nybegynder
20. januar 2005 - 13:34 #2
Det er varchar(255) - men kan fx godt sige $SQL = "SELECT * FROM T_LECTURE ORDER BY DATO desc LIMIT 5";

Så viser den det helt fint, men uden det vil den ikke vise det rigtigt! Så viser den det som du ser det nu på www.jysk-rejsebureau.dk/fora_top6.php
Avatar billede detox Nybegynder
20. januar 2005 - 13:43 #3
Og der findes kun: 3,5,7 og 8 i DEPARMENT?
Avatar billede nc85 Nybegynder
20. januar 2005 - 13:47 #4
nej, der findes også 6 - har sat den ind, men det ændrede ingenting!
Avatar billede morteeart Nybegynder
20. januar 2005 - 13:48 #5
eh, du kan da ikke sorteret på text :P du er nød til at bruge et ordenligt format for at kunne sorterer.
Avatar billede nc85 Nybegynder
20. januar 2005 - 13:53 #6
Så dvs at jeg ikke kan skrive $SQL = "SELECT * FROM T_LECTURE ORDER BY DATO";
uden at den fucker op ? for hvis jeg skriver det sådan der virker det ikke, men hvis jeg siger $SQL = "SELECT * FROM T_LECTURE ORDER BY DATO desc LIMIT 5";

så sortere dem da ellers korrekt!
Avatar billede detox Nybegynder
20. januar 2005 - 13:58 #7
Hvis den kun skal vise de 5 seneste indlæg, skal den sortere omvendt. I øvrigt vil jeg anbefale en switch istedet for dine if sætninger og en lidt enklere dato-konvertering. Prøv:

<?
            echo "<span class='fontC'><b>Seneste indlæg i rejseforedrag</b>";
echo "<br>";
$mc = mysql_connect("XXX","XXX","XXX");
mysql_select_db("jysk");
$SQL = "SELECT * FROM T_LECTURE ORDER BY DATO DESC LIMIT 5";
$mq = mysql_query($SQL) or die(mysql_error());
while ($indlaeg = mysql_fetch_assoc($mq)) {
    echo date('d/m', strtotime($indlaeg['DATO']));
   
    #$mesgId = $indlaeg['ID'];
    $mesgId = $indlaeg['DEPARMENT'];
    #echo "$mesgId";
    switch($mesgId) {
    case 7:
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/aalborg/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>";}
    break;
   
    case 5:
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/aarhus/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>"; }
    break;
   
    case 3:
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/kbh/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>"; }
    break;
   
    case 8:
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/specialrejser/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>"; }
    break;
   
    default:
        //En eller anden standard echo
    }
   
else { die(mysql_error()); }
    #echo "</strong>";
}
#echo "<a href='http://www.jysk-rejsebureau.dk/under_rejsen/rejseforum/fora/index.htm' target='_top'>";
#echo "<strong>Gå til forum</strong>";
#echo "</a>";

?>
Avatar billede nc85 Nybegynder
20. januar 2005 - 14:05 #8
så får jeg denne fejl:

Parse error: syntax error, unexpected T_CASE in c:\wamp\www\jysk-rejsebureau\fora_top6.php on line 37
Avatar billede detox Nybegynder
20. januar 2005 - 14:08 #9
Ja, der skal jo ikke være } efter: echo "</a>"; } ;O)

            echo "<span class='fontC'><b>Seneste indlæg i rejseforedrag</b>";
echo "<br>";
$mc = mysql_connect("XXX","XXX","XXX");
mysql_select_db("jysk");
$SQL = "SELECT * FROM T_LECTURE ORDER BY DATO DESC LIMIT 5";
$mq = mysql_query($SQL) or die(mysql_error());
while ($indlaeg = mysql_fetch_assoc($mq)) {
    echo date('d/m', strtotime($indlaeg['DATO']));
   
    #$mesgId = $indlaeg['ID'];
    $mesgId = $indlaeg['DEPARMENT'];
    #echo "$mesgId";
    switch($mesgId) {
    case 7:
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/aalborg/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>";
    break;
   
    case 5:
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/aarhus/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>";
    break;
   
    case 3:
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/kbh/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>";
    break;
   
    case 8:
    echo "<a href='http://www.jysk-rejsebureau.dk/foredrag/specialrejser/index.htm' target='_top' style='color: #000000;'>";
    echo substr($indlaeg['NAVN'],0,20) . "<br></span>";
    echo "</a>";
    break;
   
    default:
        //En eller anden standard echo
    }
    #echo "</strong>";
}
#echo "<a href='http://www.jysk-rejsebureau.dk/under_rejsen/rejseforum/fora/index.htm' target='_top'>";
#echo "<strong>Gå til forum</strong>";
#echo "</a>";

?>
Avatar billede detox Nybegynder
20. januar 2005 - 14:15 #10
Og så skal der selvfølgelig tilføjes en case 6:

    default:
        //En eller anden standard echo
    }

Her kan du indsætte en debug echo, fx:

echo "Fejl!! - DEPARMENT = $mesgId<br />";
Avatar billede nc85 Nybegynder
20. januar 2005 - 14:21 #11
Ok - Takker, men har rettet fejlen :) - Den var rimelig banal :)
Ved de If sætninger havde jeg glemt at sætte "$" ind fora tallene :) smart ik' :)

Nu vises det korrekt :)

Lægger du lige et svar... Tak for din tid
Avatar billede detox Nybegynder
20. januar 2005 - 14:25 #12
"$" ind fora tallene; den forstår jeg ikke, men det er jo fint det virker. Jeg vil dog stadig anbefale switch(), da den stopper løkken ved match (måske ikke det store ved 5 udtræk, men især hvis du bruger samme teknik ved større udtræk).
Avatar billede nc85 Nybegynder
20. januar 2005 - 14:26 #13
Ok, det skal jeg huske på - takker for hjælpen
Avatar billede detox Nybegynder
20. januar 2005 - 14:27 #14
Velbekommen
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

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