Autor Zpráva
vincent
Profil *
Zdravim Vás, asi jsem uplně blbej ale už nějaký čas se trápim s tímhle problémem na začátku se mě zdál naprosto triviální a jak jsem se do toho pustil tak jsemse nějak zamotal, proto prosím o radu mám tabulku s daty akcí a potřebuju je vypsat tak aby byli v mnozinách sloučené vždy v tom jednom dni teď mám dotaz tento a samozřejmě nefunguje :(


SELECT *
FROM foto_akce, foto_diskoteky
WHERE foto_akce.ak_diskoteka = foto_diskoteky.id
AND ak_zobrazeni = '1'
AND ak_datum >= CURDATE()
GROUP by foto_akce.ak_datum
ORDER BY ak_datum

TABULKA foto_akce:
ID
ak_datum
ak_nazev
ak_zobrazeni


TABULKA foto_diskoteky
ID
di_nazev
atd...
tahle tabulka není podstatná


výpis by měl vypadat asi nějak takto :(

20.10.
- dance monster, diskotéka v praze
- disko 80-léta, disko trisko


27.10.
- trip dance, disko na vltavě
- disko, misch masch


díky všem aspoň za nasměrování zřejmě jsem vůbec nepochopil příkaz GROUP BY :(


díky
Kajman_
Profil *
Možná Vám pomůže group_concat
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#functio n_group-concat

A nebo si to jen seřaďte dle data a naformátuje při výpisu.
vincent
Profil *
to byla rychlost :) , tak na Vás Kajman_e jsem nejvíc spoléhal :-D naformátovat to neni problém ale potom tam budu mítu každého řádku i datum a ten já chci aby se vypsal pouze jednou ale i tak děkuji za čas ...
Kajman_
Profil *
Stačí si v tom cyklu pamatovat poslední vypsané datum a vypsat ho jen, když je jiné.
vincent
Profil *
aha a aspoň malinko nástřel myslenky prosím? budu dlužník .... díky
Kajman_
Profil *
$posledni='';
while($row=mysql_fetch_array($result))
{
if($posledni!=$row['datum'])
{
$posledni=$row['datum'];
echo '<br><br>'.$posledni;
}
echo "- $row[nazev_diskoteky]";
}
vincent
Profil *
aha v php-ku ja pořad spekuloval jak to vyřešit ješte v DB, i tak obdivuji vaše znalosti a ochotu poradit lidem díky ....
Kajman_
Profil *
V db to jde taky, ale přijdete o možnost použít smlysluplně hvězdičku.

select ak_datum, group_concat(ak_nazev) nazvy
from foto_akce
where ak_zobrazeni = '1' and ak_datum >= curdate()
group by ak_datum
order by ak_datum

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:

0