Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Grupiranja zapise

[es] :: MySQL :: Grupiranja zapise

[ Pregleda: 1779 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

milan_sr
Milan Savov
Strumica

Član broj: 262218
Poruke: 108
77.28.195.*



+26 Profil

icon Grupiranja zapise07.09.2011. u 09:27 - pre 153 meseci
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
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Grupiranja zapise07.09.2011. u 10:19 - pre 153 meseci
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.


[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

milan_sr
Milan Savov
Strumica

Član broj: 262218
Poruke: 108
77.28.195.*



+26 Profil

icon Re: Grupiranja zapise07.09.2011. u 10:57 - pre 153 meseci
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))
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Grupiranja zapise07.09.2011. u 11:18 - pre 153 meseci
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.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

[es] :: MySQL :: Grupiranja zapise

[ Pregleda: 1779 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.