Autor Zpráva
Stepanka
Profil *
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
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 *
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 *
ninja
ale i tak mockrát děkuju za radu
Stepanka
Profil *
ninja
Aha, už se mi to povedlo.. Mockrát díky :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.