Autor Zpráva
Execol
Profil *
Ahoj,
už asi 3 hodiny řeším problém, jak jednoduše získat počáteční a konečné datum. Z databáze mi přichází tato tabulka:
jmeno prijmeni id_jmeno datum
Jan      novak    1      2015-05-24
Jan      novak    1      2015-05-25
Jan      novak    1      2015-05-26
Filip     cerny     2    2015-05-26
Filip     cerny     2    2015-05-27
....

Tuto tabulku procházím cyklem a snažím se, aby se mi vypsalo jméno a příjmení a datum od a datum do .. tedy nejmenší a nejvyšší datum u daného člověka. Řeším to takto:
while($r=mysql_fetch_array($sql)){
            if(!isset($lastUserId)){
                $start = $r['datum'];
            }else{
                if($lastUserId != $r['id_jmeno']){
                    $end = $r['datum'];
                }
            }
            //echo $start;
            if(isset($start) and isset($end)){    
                    echo "OD".$start." DO".$end." ID".$lastUserId."\n";
                    unset($start);
                    unset($end);
                    unset($lastUserId);
            }else{
                $lastUserId = $r['id_jmeno'];
            }
        }

Bohužel to ale nefunguje uplně jak má :/
Mohl by mi prosím někdo poradit?

Předem moc děkuji.
juriad
Profil
Execol:
A proč nepoložíš do databáze chytřejší dotaz?
SELECT jmeno, prijmeni, id_jmeno, MIN(datum) AS od, MAX(datum) AS do
FROM tabulka
GROUP BY id_jmeno
Pak budeš mít příslušné datumy přimo ve sloupcích od a do.
Execol
Profil *
Neskutečný :))

moc děkuji, budu muset to sql trochu víc nastudovat...

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: