Autor Zpráva
jval
Profil *
Zdravím mám 3 tabulky

tabulka messages
id,date,product_id,message,user_id

tabulka users
id,name,realname

tabulka messages_reads
message_id,user_id

Potřeboval bych vypsat v html tabulce zprávy s tím, že u každé zprávy bylo vidět kdo ji četl viz.

Díky
whoami
Profil
Doporučuji kouknout na www.notorm.com/. Je to jednoduché pro začátečníka a dobrý pomocník pro pokročilého.. Je tam dobře vyřešené něco na tento způsob jako example..
Tori
Profil
Postupovala bych asi takhle:
- načíst z DB všechny uživatele do pole (id => jméno) a seřadit (v kódu jako pole $users)
- vypsat jména uživ. do hlavičkového řádku tabulky
- dalším dotazem načíst zprávy a kdo je četl a po řádkách vypsat

$result = mysql_query("SELECT message, GROUP_CONCAT(u.id SEPARATOR ';') AS 'kdoCetl' FROM messages m
    LEFT JOIN messages_reads r ON m.id = r.message_id
    INNER JOIN users u ON r.user_id = u.id
    GROUP BY m.id ORDER BY m.date");

while ($row = mysql_fetch_assoc($result)) {
    // ID uzivatelu, kteri to cetli, prevedete z "id1;id2;id3" na array(id1, id2, id3)
    $row['kdoCetl'] = explode(';', $row['kdoCetl']);  

    // vypis pro jednotlive uzivatele
    echo "<tr><td>$row[message]";
    foreach ($users as $id => $name) {
        echo (in_array($id, $row['kdoCetl']) ? "<td>Četl/a" : "<td>Nečetl/a");
    }
    echo '</tr>';
}

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: