Autor Zpráva
lokutus7323
Profil *
Ahoj,
mám udělaný jednoduchý výpis z MySQL....založený na cyklu. Jenže se mi data vypisují od nejstaršího púo nejmladší...tzn, nejnovější zprávu mám až úplně dole..proto bych chtěl řazení obrátit, ale nevím jak na to..

proto žádám o pomoc.Děkuji
lagin
Profil
klauzoli ORDER BY [ASC|DESC]
icka
Profil *
Podle mého, když má select založený na cyklu, tak ORDER BY mu asi moc nepomůže. Spíš doporučuji vyladit ten cyklus
lagin
Profil
Proc by mu neopmohl, data se mu proste jeste pred cyklem spravne seradi.
icka
Profil *
výpis dat založený na cyklu si představuji asi nějak takto: (příklad!!!)

$lide = array(5,8,12,15,20,21,22,30); // id vyberu

foreach ($lide as $id) {
$select = mysql_fetch_row(mysql_query("select jmeno from lide where id = " . $id));
$jmena[] = $select[0];
}
lokutus7323
Profil *
Mno můj script vypadá takto:
  $dotaz="SELECT * FROM `msg` WHERE adresat='$pro' LIMIT $od, $do";
  $sql = mysql_db_query($db, $dotaz);
    if (mysql_num_rows($sql) > 0){
    while($zprava=mysql_fetch_array($sql)){


a tam se mi to právě vypisuje špatně..potřeboval bych řazení jen nějak obrátit....

zprávy se nevybíraj púodle ID, ale podle adresáta!!
Nox
Profil
icka
To je hodně blbě udělaný kód - těch selectů, co bude muset databáze zbytečně zpracovat, mnohem lepší je takto:

$select=mysql_query("select jmeno from lide where id in (".implode(",",$lide).")");
while($jmena[]=mysql_fetch_row($select)){ }
Nox
Profil
lokutus7323
Samozřejmě že má lagin pravdu - už jsi doufám jeho radu uvedl v praxi...
( SELECT * FROM `msg` WHERE adresat='$pro' ORDER BY ID DESC LIMIT $od, $do )
icka
Profil *
ano, uznávám. Špatně jsem pochopil základní otázku, s tím, že se ptal na SQL dotaz založený na cyklu.
Vím, že by to byla hloupost vytvořit takový kód..
lokutus7323
Profil *
Děkuji...zkoušle jsem to, ale nešlo mi to,až teď, když jsem co "zkopíroval"...nevím lkde jsem udělal chybu, nebo kde jsem to špatně vložil..mno teĎ už to funguje a já vám moc děkuji....

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: