[ nepoverljiv @ 17.08.2011. 09:36 ] @
Imam problem sa redjanjem podataka koje izvucem iz baze, nikako nece po datumu da ih poredja. Na jednom sajtu mi radi bez greske, a na drugom nece uopste. Da li neko moze da mi pomogne, kod izgleda ovako:

Code:

    <ul id="new-artikli"> 
  <?php
        $subject_set = mysql_query("SELECT * FROM opis WHERE hide='0'ORDER BY date DESC LIMIT 5");
        if (!$subject_set) {
            die("Database query failed: " . mysql_error());
        }
        while ($subject = mysql_fetch_array($subject_set)) {
                    $naziv=substr($subject['naziv'],0,21);
            echo "<li class=\"lista\"><a class=black href=index.php?=detalji".$subject['id_opis'].">{$subject["proizvodjac"]}<br/>&nbsp;$naziv</a></a></li>"; 
                }

        ?>
              </ul>


A izgled datuma u bazi mi je sledeci: 31.05.2011 21:48:13

Jel moze neko da mi kaze gde gresim (mada mi na drugom sajtu ovo radi) ?
[ dakipro @ 17.08.2011. 09:46 ] @
da li si siguran da svi unosi u bazi imaju ispravan datum?
Mozda si prekucavao samo al vidim da ti sql ima spojen ovaj deo " hide='0'ORDER BY " pa vidi odvoji ORDER od '0' ako se dodiruju
[ nepoverljiv @ 17.08.2011. 09:53 ] @
Nije tu greska, sad sam provalio da ne redja lepo ni u MySQL. Kliknuo sam da mi poredja po koloni "date" i uopste nije datume lepo poredjao. Kolona "date" mi je Varchar a unos datuma je
Code:
$datum = date('d.m.Y H:i:s');
[ bantu @ 17.08.2011. 10:12 ] @
Ovo sad nema veze sa programiranjem, prvi ti je dan u stringu i on ima najveci prioritet pri sortiranju pa mjesec pa tek onda godina, a godina bi trebala da bude prva da bi se ispravno sortiralo. Stavi sledeće prilikom upisa u bazu, pa će da ti radi:

Code:
$datum = date('Y.m.d H:i:s');


ili upit formuliši na sledeći način:

Code:
SELECT * FROM opis WHERE hide='0 'ORDER BY str_to_date(date, '%d.%m.%Y %H:%i:%s') DESC LIMIT 5


[ vujkev @ 17.08.2011. 10:26 ] @
... ili (najbolje rešenje) da datum u bazi čuva kao datum, a ne kao varchar
[ nepoverljiv @ 17.08.2011. 11:58 ] @
Hvala puno, proradilo je ;)
[ darkofdoom83 @ 21.09.2011. 13:52 ] @
ili jos bolje datum da se cuva u bazi kao int i da ga snimas u unix timestamp formatu.. :)