[ milan_sr @ 07.09.2011. 09:27 ] @
Imam tabelu: course_materials

-id (int 10) unique AutoInc
-files (text) (tuka ce biti pateka do uploadiranih fajlova)
-date (date)

Kako mogu prikazati sve zapise grupirani po (date)? Koristio sam Group By ali to prikazuje samo po jedan zapis od svaku datu.

Hocu kako ovaj primer:

pr. 05-01-2011
-lesson1.pdf
-lesson2.pdf
06-01-2011
-lesson3.pdf
08-01-2011
-lesson4.pdf
-lesson5.pdf
-lesson6.pdf
-lesson7.pdf
[ VladaSu @ 07.09.2011. 10:19 ] @
Tebi trebaju svi zapisi SORTIRANI po datumu a ne grupisani.
Code (sql):

SELECT * FROM  course_materials ORDER BY DATE;
 

Sa ovim si dobio sve potrebne podatke delimicno pripremljene za prikaz a na tebi, tj. programskom jeziku je kako ces te podatke prikazati korisniku.
Ja bih to uradio tako sto bi odradio onaj SQL i onda punio neki Array gde je key jednak sa datumom i prosirivao bih array sa files kolonom.
Kasnije bih dobio jedan
Array[05-01-2011] {lesson1.pdf, lesson2.pdf]
Array[06-01-2011] {lesson3.pdf]
Array[08-01-2011] {lesson4.pdf, lesson5.pdf, lesson6.pdf, lesson7.pdf]

Ili bih kod ispisa gledao da li se datum predhodnog ispisa razlikuje i ako se razlikuje onda bih ispisao datum i nastavio sa lesson.pdf.

[ milan_sr @ 07.09.2011. 10:57 ] @
Koristim smarty template engine, a imam ovaj kod vo PHP delot:

Code:
$dates_ids = array();
$dates = array();
$sql = "SELECT *
        FROM course_materials
        ORDER BY date";
if(count( $results = $db->get_results($sql, ARRAY_A)) > 0) {
        foreach($results as $row) {
                $dates_ids[] = $row['course_materials_id'];
                $dates[$row['course_materials_id']] = $row;
                }
        }
}


a vo prezentaciju (HTML) za da izlistem sve date koristim:

Code:

{foreach $dates as $d}
      {$d.date}
{/foreach}


ili sva materijala {$d.course_files}

pretpostavljam da meni treba jos jedan foreach unutra prvog ili 2 razlicni query od koi u jednog bi listao sva data (SELECT * FROM course_materials ORDER BY date) a u drugog bi listao sva kursa koi sodrzi to datu ( IN ($date))
[ VladaSu @ 07.09.2011. 11:18 ] @
Code (php):

    $grouped = array();
    $sql = "SELECT *
            FROM course_materials
            ORDER BY date"
;
    if (count( $results = $db->get_results($sql, ARRAY_A)) > 0)
    {
        foreach($results as $row)
        {
            $grouped[$row['date']][] = $row;
        }
    }
 


ispis preko php-a
Code (php):

foreach ($grouped as $dKey => $d)
{
    echo $dKey . "<br/>";
    foreach ($d as $key => $val)
    {
        echo $val['files'] . "<br/>";
    }
}
 


I ovo nije tema za SQL vec za PHP.