Autor | Zpráva | ||
---|---|---|---|
Stepanka Profil * |
#1 · Zasláno: 17. 9. 2008, 17:19:38
Ahoj,
prosím o pomoc.. Mám takovýto SELECT: $query = "SELECT p.nazev_cz, p.nazev_en, p.id, p.kusu_skladem, p.aktivni, CASE WHEN o.datum2 = 0 THEN DATEDIFF(0000000000,FROM_UNIXTIME(max(o.datum2))) ELSE DATEDIFF(now(),FROM_UNIXTIME(max(o.datum2))) END AS pocet_dnu FROM produkty p JOIN vyrobci v ON v.id_vyrobce=p.id_vyrobce LEFT JOIN objednavky_polozky op ON op.id_produkt = p.id LEFT JOIN objednavky o ON o.id_objednavka = op.id_objednavka WHERE v.id_vyrobce='$id_vyrobce' ".$where." GROUP BY p.id ORDER BY ".$order_by_sql.", p.nazev_cz"; Funguje celý správně, jde mi jen o seřazení dat ve výsledku.. while($row = mysql_fetch_array($result)) { if ( $row['pocet_dnu'] == '') { echo '<td class="right">-</td>'; } else { echo '<td class="right">'. $row['pocet_dnu'].'</td>'; } Když je v proměnné $order_by_sql zadáno, aby seřazoval podle sloupce "pocet_dnu", vypíše mi to např. toto: - - - - - 5 10 15 26 58 158 200 což je sice ok, ale já bych potřebovala dotaz upravit tak, aby v tomto případě vypisoval: 5 10 15 26 58 158 200 - - - - - Čili aby to řadil takto: nejdříve výrobky, které byly koupeny teď naposled, postupně k výrobkům, které byly koupeny později a později a nakonec ty, které nebyly koupeny nikdy. Doufám, že je to srozumitelné... Předem mockrát děkuji za radu. |
||
ninja Profil |
#2 · Zasláno: 17. 9. 2008, 17:25:52
Predpokladam ze "pocet_dnu" je null, pokud nebyl koupen. Pak tedy:
1. pred from dat jeste "IF(pocet_dnu IS NULL,1,0) AS zakoupeno 2. ORDER BY zakoupeno, pocet_dnu, p.nazev_cz; |
||
Stepanka Profil * |
#3 · Zasláno: 17. 9. 2008, 17:39:29
pocet_dnu vytvářím v dotazu, takže u toho Tvojeho mi to píše Unknown column 'pocet_dnu' in 'field list'
V tabulce mám sloupec datum2, který je typu INT(11). A většinou obsahuje nějakou hodnotu, když ne, je tam defaultně nastavena 0. Když to Tvé ale změním na IF(o.datum2 IS NULL,1,0) AS zakoupeno , tak mi to pořád řadí stejně jako předtím... A stejně i u IF(o.datum2 =0,1,0) AS zakoupeno .. |
||
Stepanka Profil * |
#4 · Zasláno: 17. 9. 2008, 17:40:51
ninja
ale i tak mockrát děkuju za radu |
||
Stepanka Profil * |
#5 · Zasláno: 17. 9. 2008, 18:01:35
ninja
Aha, už se mi to povedlo.. Mockrát díky :-) |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0