| Autor | Zpráva | ||
|---|---|---|---|
| arnoost Profil |
#1 · Zasláno: 11. 9. 2008, 11:59:02
Dobrý den,
nasel jsem si návod na http://php.vrana.cz/group-by.php ale chci jeste k datumu poslední odpovědi načíst jméno uživatele z tabulky uzivatelů podle poslení odpovědi. Ale nejak me to nefunguje.? Podadí mi někdo kde je chyba.? Muj dotaz: SELECT project_messages.id, project_messages.projectID, project_messages.nazev, DATE_FORMAT(project_messages.date,'%d.%m.%Y %H:%i') AS date, project_messages.private, COUNT(po.reply) AS pocet, MAX(po.date) AS posledni, re.jmeno AS rejmeno, re.prijmeni AS reprijmeni, us.jmeno AS jm, us.prijmeni AS pr FROM project_messages LEFT JOIN project_messages AS po ON po.reply = project_messages.id JOIN project_users AS us ON us.user_id = project_messages.userID LEFT JOIN project_users AS re ON re.user_id = po.userID WHERE project_messages.projectID = '1' AND project_messages.reply = '0' GROUP BY project_messages.id ORDER BY po.date DESC Se sice načte, ale ne správně. |
||
| nightfish Profil |
#2 · Zasláno: 11. 9. 2008, 12:05:57
„Se sice načte, ale ne správně.“
paráda... ukázka dat, vráceného výsledku a očekávaného výsledku by nebyla? |
||
| arnoost Profil |
#3 · Zasláno: 11. 9. 2008, 13:14:58
NEvim zda je to ironie?
Toto je výstup: Pokusna messagesa Author: Martin Havelka | Last RE: User Testovací | 2008-09-09 16:36:00 | 2 PHP:
<?php while ($data = mysql_fetch_assoc($messList)) { ?>
<? $link = "mess_show.php?messid=".$data[id]."&prID=".$data[projectID]; ?>
<div class="replycount<?php if($data['private']) { echo " private"; } ?>"> </div>
<div class="right">
<?php echo $data[date]; ?>
<br/><span class="green"><?php echo TimeAGO(strtotime($data[date])); ?></span>
</div>
<a title="<?php echo $data[nazev]; ?>" class="bigBlack" href="<?php echo $link; ?>"><?php echo $data[nazev]; ?></a>
<br/><?php echo $lang_label_messautor; ?> <? echo $data[jm]; ?> <? echo $data[pr]; ?>
<?php if($data[pocet] > 0) { ?>
| Last RE: <? echo $data[rejmeno]; ?> <? echo $data[reprijmeni]; ?> | <?php echo $data[posledni]; ?> | <?php echo $data[pocet]; ?>
<?php } ?>
<hr size="1"/>
<? } ?>
|
||
| Kajman_ Profil * |
Zkuste něco na způsob
SELECT project_messages.id, project_messages.projectID, project_messages.nazev, DATE_FORMAT(project_messages.date,'%d.%m.%Y %H:%i') AS date, project_messages.private, po.pocet, lst.date AS posledni, re.jmeno AS rejmeno, re.prijmeni AS reprijmeni, us.jmeno AS jm, us.prijmeni AS pr FROM project_messages LEFT JOIN (select reply, count(*) pocet, max(id) id from project_messages group by reply) AS po ON po.reply = project_messages.id LEFT JOIN project_messages lst on po.id=lst.id LEFT JOIN project_users AS us ON us.user_id = project_messages.userID LEFT JOIN project_users AS re ON re.user_id = lst.userID WHERE project_messages.projectID = '1' AND project_messages.reply = '0' ORDER BY lst.date DESC Kdyby to nefungovalo, hledejte inspiraci zde: http://dev.mysql.com/doc/refman/5.0/en/example-maximum-column-group-ro w.html NEvim zda je to ironie? Nebyla. Když je příklad toho, co máte za data v tabulkách, co z nich select vrátí a co má vrátit, tak je to jednoznačnější. |
||
| arnoost Profil |
#5 · Zasláno: 11. 9. 2008, 15:06:51
Krutý... děkuji :)
|
||
|
Časová prodleva: 17 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0