Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Emoty
Forum PHP.pl > Forum > Przedszkole
ferr
  1. <?php
  2. $query = &#092;"SELECT * FROM newsy ORDER BY 'id' DESC LIMIT 5\" ;
  3. $qresult = mysql_query($query);
  4.  
  5. if (mysql_num_rows($qresult) > 0) {
  6.  
  7. $query7 = &#092;"SELECT * FROM emots\";
  8. $result7 = mysql_query($query7);
  9. while ($row7 = mysql_fetch_array($result7))
  10. {
  11. $emoty = array(&#092;"\".$row7[\"emot1\"].\"\" => \"<img src='http://xxx/emots/\".$row7[\"emot2\"].\"'>\" );
  12. }
  13.  
  14.  
  15.  
  16. while ($row = mysql_fetch_array($qresult)) {
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24. if ($_SESSION[&#092;"emots\"]==\"1\")
  25. {
  26.  
  27.  
  28.  $tresc = str_replace($emoty, $emoty, $row[&#092;"tresc\"]);
  29.  
  30. }
  31.  
  32. else {
  33. $tresc = $row[&#092;"tresc\"];
  34. }
  35.  
  36.  
  37. list($ile)=mysql_fetch_row(mysql_db_query('xxx',&#092;"SELECT count(*) FROM kom_news WHERE news LIKE \".$row['id'].\"\"));
  38. echo &#092;"<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" class=g7><tr bgcolor=\"#384B5A\"><td>\".$row[\"tytul\"].\"</td></tr></table>
  39. <table width=&#092;"100%\" cellspacing=\"0\" cellpadding=\"2\" class=g4><tr bgcolor=\"#334B5E\"><td><div align=justify>\".$tresc.\"<p align=right><a href=index.php?co=news&id=\".$row[\"id\"].\" class=link1>skomentuj ($ile)</a></p></td></tr></table><br>\";
  40. } }
  41.  
  42. ?>


w bazie w polu emot1 jest znak do zastapienia a w polu emot2 adres obrazka ktory ma zastapic ten znak. Jak wiec zastapic wszystkie emoty w newsach?
hwao
strtr" title="Zobacz w manualu PHP" target="_manual()
  1. <?php
  2.  $tresc = strtr( $row[&#092;"tresc\"], $emoty);
  3. ?>

Moze tak?
ferr
wszystko cacy, tylko widzisz, zastepuje tylko jedna emote, te ktora pierwsza pobral z zapytania. Czyli np. gdy w jednym newsie sa ";)" i ":D" to zastapi tylko ":D".

Moze cos z ukladem petli?
sf
Ty jesteś koderem... pokombinuj. Popatrz też do manuala i na komentarze... próbuj i wybierz to co Ci pasuje.
ferr
uwierz, ze odwoluje sie do tego forum w ostatecznosci, kiedy brakuje mi pomyslu po wielu probach... W tej sytuacji probowalem juz wiele i nie jakos nie osiagnalem zamierzonego w skrypcie celu... :/
sf
No to uwierz, że daleko jako programista nie zajdziesz...
  1. <?php
  2. $emoty = array(';)' => '!!', 'tongue.gif' => '!!');
  3. $zmienna = &#092;"aaa;) tongue.gif tongue.gif sese\";
  4.  
  5. $tresc = strtr($zmienna, $emoty);
  6. echo $tresc;
  7. ?>

Pisze jak wół w manualu, że można stosować tablicę jako drugi argument, a temat był poruszany już nie raz i były podane też inne rozwiązania. Np. z str_replace lub przy użyciu wyrażeń regularnych.
ferr
  1. <?php
  2. $query7 = &#092;"SELECT * FROM emots\";
  3. $result7 = mysql_query($query7);
  4. while ($row7 = mysql_fetch_array($result7))
  5. {
  6. $emoty = array(&#092;"\".$row7[\"emot1\"].\"\" => \"<img src='http://xxx/emots/\".$row7[\"emot2\"].\"'>\" );
  7. }
  8.  
  9. ?>


podobne rozwiazanie wlasnie stosowalem, nie dalo jednak rezultatu, bo jak powiedzialem, zastepywalo tylko jedna emote. Po szczegolowej analizie zrozumialem ze powyzszy kod przypisuje tylko jedna wartosc do tablicy emoty. Jak rozwiazac ten problem?

sf: gratuluje mniemania o sobie...
hwao
  1. <?php
  2. // przed petal
  3. $emoty = arrya();
  4. // tam gdzie kiedys tytlko dodaj []
  5. $emoty[] = array( $row7[&#092;"emot1\"] => '<img src=\"http://xxx/emots/'.$row7[\"emot2\"].'\">' );
  6. ?>

Spokojnie chlopaki :-)

Czasme wystarczy tablice wrzucic w print_r" title="Zobacz w manualu PHP" target="_manual() i wsszytko wiadomo :-)
Polecam
pozdro

- mala poprawka
ferr
  1. <?php
  2. $query7 = &#092;"SELECT * FROM emots\";
  3. $result7 = mysql_query($query7);
  4.  
  5. while ($row7 = mysql_fetch_array($result7))
  6.  
  7.  
  8.  
  9. {
  10. $emoty[] = $row7['emot1'];
  11.  $emoty2[] = '<img src=\"http://xxx/emots'.$row7[&#092;"emot2\"].'\">';
  12.  
  13. }
  14.  
  15. while ($row = mysql_fetch_array($qresult)) {
  16.  
  17.  if ($_SESSION[&#092;"emots\"]==\"1\")
  18. {
  19. print_r($emoty);
  20.  
  21.  
  22.  
  23. $tresc = str_replace( $emoty, $emoty2 , $row['tresc'] );
  24.  
  25.  
  26. }}
  27.  
  28. ?>


tak to rozwiazalem i dziala. Dzieki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.