Autor Zpráva
Aaron135
Profil
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
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
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
$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
Díky moc. Pomohl jsi mi hodně :)
Aaron135
Profil
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
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
pořád to nějak nefachá :((( Nedodal by si mi pls kód ??? :)
jenikkozak
Profil
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
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
$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
Pokusím se to nějak zpracovat. Dík. Kdyžtak zas napíšu :)
Aaron135
Profil
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
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)

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:

0