Autor | Zpráva | ||
---|---|---|---|
Aaron135 Profil |
#1 · Zasláno: 24. 7. 2011, 21:07:41
Ahojte,
vytvářím aplikaci chat a potřebuji, aby se po odeslání (např.: 2 příspěvků) opětovně nezobrazovalo jméno odesílatele, ale místo toho prázdný text. můj kód vypisuje z DB chat texty. Pomůže někdo ?? :) // ... // ..... // zjištění odesílatele a přijímatele $select = mysql_query("select * from chat where chat='$z[id]' ORDER BY id DESC"); while($zaznam = mysql_fetch_array($select)) { echo '<span style="color:green;font-weight: bolder;font-size:16px;">'; if($zaznam["od"] == $me) echo "Já"; else echo $zaznam["od"]; echo ': </span>'.$zaznam["text"]."<br />"; } |
||
panther Profil |
#2 · Zasláno: 24. 7. 2011, 21:10:19
Aaron135:
na konec cyklu si do proměnné ukládej poslední jméno, které porovnávej s tím v současném průchodu cyklem. |
||
Aaron135 Profil |
#3 · Zasláno: 24. 7. 2011, 21:11:53 · Upravil/a: Aaron135
a mohl by si mi dodat prosím kód ??
víš studuju stylem pokus omyl a nejsem si jist tím, co myslíš. |
||
johnl Profil |
#4 · Zasláno: 24. 7. 2011, 21:26:48 · Upravil/a: johnl
$select = mysql_query("select * from chat where chat='$z[id]' ORDER BY id DESC"); while($zaznam = mysql_fetch_array($select)) { if($posldni!=$zaznam["od"]){ echo '<span style="color:green;font-weight: bolder;font-size:16px;">'; if($zaznam["od"] == $me){ echo "Já"; } else { echo $zaznam["od"]; } echo ':</span>'; } echo $zaznam["text"]."<br />"; $posledni = $zaznam["od"]; } |
||
Aaron135 Profil |
#5 · Zasláno: 24. 7. 2011, 21:36:36
Díky moc. Pomohl jsi mi hodně :)
|
||
Aaron135 Profil |
#6 · Zasláno: 25. 7. 2011, 19:13:26 · Upravil/a: Aaron135
Sorry že zas otravuju, ale toto řešení má menší chybu. Pokaždé když reloadnu stránku nezobrazí se ani to první Jméno. Nějaké rozumné řešení ?? :)
Dosavadní kód: while($zaznam = mysql_fetch_array($select)) { if($posledni==$zaznam["od"] or $posledni == "Já"){} else { if($zaznam["od"] == $me) echo '<span style="color:green;font-weight: bolder;font-size:16px;">Já: </span>'; else echo '<span style="color:green;font-weight: bolder;font-size:16px;">'.$zaznam["od"].': </span>'; } echo ''.$zaznam["text"]."<br />"; if($zaznam["od"] == $me) $posledni = "Já"; else $posledni = $zaznam["od"]; } |
||
jenikkozak Profil |
#7 · Zasláno: 25. 7. 2011, 19:28:47 · Upravil/a: jenikkozak
Aaron135:
Co to je za divnou podmínku? Neguj výraz a nemusíš používat prázdné složené závorky. To s tím „"Já"“ taky nechápu. Má to znamenat, že když jsem ten předchozí záznam psal já ($posledni="Já") a ty mna mne zareaguješ, nemá se zobrazit tvé jméno? Pak proč tam vůbec manipuluješ s tou hodnotou Já, když ji můžeš porovnat až ve druhém průběhu cyklu? |
||
Aaron135 Profil |
#8 · Zasláno: 25. 7. 2011, 20:27:23
pořád to nějak nefachá :((( Nedodal by si mi pls kód ??? :)
|
||
jenikkozak Profil |
#9 · Zasláno: 25. 7. 2011, 20:40:41
Aaron135:
„Nedodal by si mi pls kód ??? :)“ Bys mi nejdřív musel odpovědět, vždyť nevím, jak to má fungovat. |
||
Aaron135 Profil |
#10 · Zasláno: 25. 7. 2011, 20:43:17
prostě pokaždé když se odešle 1. příspěvek tak se má zobrazit Jméno odesílatele ale jak odešle druhou zprávu tak už to jméno nechci zobrazit... tak jak na to ??
|
||
panther Profil |
#11 · Zasláno: 25. 7. 2011, 20:48:55 · Upravil/a: panther
$last_name = ''; $select = mysql_query("select * from chat where chat='$z[id]' ORDER BY id DESC"); while($zaznam = mysql_fetch_array($select)) { echo '<span style="color:green;font-weight: bolder;font-size:16px;">'; if ($zaznam['od'] != $last_name) { // pokud neni jmeno stejne jako posledni zaznam pokracuj if ($zaznam["od"] == $me) { // kde beres promennou me? echo "Já"; } else { echo $zaznam["od"]; } } echo ': </span>'.$zaznam["text"]."<br />"; $last_name = $zaznam['od']; // nastav promennou last_name na posledni vypsane jmeno } |
||
Aaron135 Profil |
#12 · Zasláno: 25. 7. 2011, 20:52:48
Pokusím se to nějak zpracovat. Dík. Kdyžtak zas napíšu :)
|
||
Aaron135 Profil |
#13 · Zasláno: 26. 7. 2011, 14:49:22
Netuším proč ale nefunguje to. Po každím reloadu zmizí to jméno. Asi se záhadným způsobem nepředává proměnná last_name.
Nešlo by to udělat v časových intervalech ?? Jakože když se pošle zpráva v určitém čaasovém intervalu? např(po 5 sekundách od poslední odeslané zprávy) |
||
motik Profil |
#14 · Zasláno: 26. 7. 2011, 21:36:57
Aaron135
tak si to poslední id co tam uživatel přidal ukládej do cookie bo do session a pak to porovnávej s největším (když se to rovná, tak je to já a když je to menší, tak je to jméno - jestli jsem tě teda dobře pohopil) |
||
Časová prodleva: 13 let
|
0