Poniżej znajduje się skrypt, który w pętli (dopóki istnieją wiersze) ma wyświetlać nadawcę i treść wiadomośći z odpowiednich komórek w bazie danych. (Pobrane dane to dyskusja wątkowa między dwoma użytkownikami). Jednocześnie, tuż po wyświetleniu danych powinien dokonywac UPDATE'u bazy w kolumnach (pnadawca lub podbiorca w zależności od tego, czy zalogowany użytkownik to nadawca, czy odbiorca postu).

Nie wiem dlaczego, ale dokonuje tego w obu kolumnach mimo warunku, który teoretycznie powinien to wykluczać...

Jak to poprawić?

  1. <?php
  2. while($wynik and $wiersz = mysql_fetch_assoc($wynik)) 
  3. {
  4. $dziendodania = date('Y.m.d H:i:s', $wiersz['data']);
  5. "<b>".$wiersz["nadawca"]."</b> $dziendodania<br />
  6. ".nl2br($wiersz["tresc"])."<br /><center>. . .</center><br />";
  7. if ($_SESSION["login"]==$wiersz["nadawca"])
  8. {
  9. $zapy = mysql_query("UPDATE priv_tresc SET pnadawca='przeczytana' WHERE id_tematu='$id_rozmowy'");
  10. }
  11. else
  12. {
  13. if ($_SESSION["login"]==$wiersz["odbiorca"])
  14.  {
  15. $zapy = mysql_query("UPDATE priv_tresc SET podbiorca='przeczytana' WHERE id_tematu='$id_rozmowy'");
  16. }
  17. }
  18. }
  19. ?>


Problem dotyczy ostatniej pętli, która nie wiedzieć czemu traktuje użytkownika zalogowanego jednocześnie jako odbiorcę i nadawcę, czego nie powinna, bo w poszczególnych komórkach są rózne dane (jedna to login zalogwanego użytkownika, a druga tego z kim rozmawia)