Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem najprawdopodobniej z pętlą while
Forum PHP.pl > Forum > Przedszkole
annn
Witam. Oto kod:

  1. function tablica($connect)
  2. {
  3. if(!isset($_GET['messages']) && !isset($_GET['write']) && !isset($_GET['m']))
  4. {
  5. echo'<strong class="naglowek">Tablica</strong><br /><br />';
  6. if(isset($_GET['skomentowano']))echo'<div id="komunikat">Skomentowano!</div>';
  7. $pobierzdane=mysqli_query($connect, "SELECT * FROM `wpis` ORDER BY id DESC");
  8. while($dane=mysqli_fetch_array($pobierzdane))
  9. {
  10. echo '<br /><div id="wpis"><strong>'. $dane['autor'] .'   <font size=2>'. $dane['data'] .'</font></strong><br />'. $dane['wpis'] .'<br /><br /><font size=2>Polubiło to: <font color="red"><u title="'. $dane['wholike'] .'">'. $dane['like'] .'</u></font></font> osób!</font>';
  11.  
  12. $id=$dane['id'];
  13.  
  14. if(isset($_SESSION['login'])) //Lajkowanie dla zalogowanych
  15. {
  16. $login = $_SESSION['login'];
  17. $daneusera = mysqli_fetch_array(mysqli_query($connect, "SELECT * FROM `user` WHERE `nick`='$login'"));
  18.  
  19. $listalajkujacych = explode(",", $dane['wholike']);
  20. if(!in_array($daneusera['imienazwisko'] ,$listalajkujacych))
  21. {
  22. echo '  <a href="?login=true&like='. $dane['id'] .'">Lubię to!</a>';
  23. if(isset($_GET['like']))
  24. {
  25. $lajkerzy = $daneusera['imienazwisko'] . "," . $dane['wholike'];
  26. mysqli_query($connect, "UPDATE wpis SET wholike='$lajkerzy' WHERE id='$id'");
  27. mysqli_query($connect, "UPDATE wpis SET `like` =`like`+1 WHERE id='$id'");
  28. }
  29. }
  30. }
  31.  
  32.  
  33. if(isset($_SESSION['login'])) //Komentowanie wpisu
  34. {
  35. echo'<br /><form method="POST"><textarea rows="2" cols="50" name="tresc" placeholder="Skomentuj..."></textarea><br /><input type="submit" value="Wyślij"></form>';
  36. if(isset($_POST['tresc']))
  37. {
  38. $tresc = $_POST['tresc'];
  39. $login = $_SESSION['login'];
  40. $user = mysqli_fetch_array(mysqli_query($connect, "SELECT * FROM `user` WHERE `nick`='$login'"));
  41. $imienazwisko = $user['imienazwisko'];
  42. $wpisid = $dane['id'];
  43. $data = date("j.n.Y - H:i");
  44.  
  45. mysqli_query($connect, "INSERT INTO komentarz (autor, komentarz, wpisid, data) VALUES ('$imienazwisko', '$tresc', '$wpisid', '$data')");
  46. unset($_POST['tresc']);
  47.  
  48. header("Location: ?login=true&skomentowano");
  49. }
  50. }
  51.  
  52.  
  53. $sprawdzkomnentarze=mysqli_query($connect, "SELECT * FROM `komentarz` WHERE `wpisid`='$id'"); //Wyświetlanie komentarzy
  54.  
  55. while($komentarz=mysqli_fetch_array($sprawdzkomnentarze))
  56. {
  57. echo'<div id="komentarz"><font size=2<br /><strong>'. $komentarz['autor'] .' ('. $komentarz['data'] .'):</strong> &nbsp'. $komentarz['komentarz'] .'</font></div>';
  58. }
  59.  
  60. echo '</div>';
  61. }
  62. }
  63. }


EDIT: Trochę się pomyliłem w opisywaniu problemu. Teraz poprawiłem smile.gif

Problem polega w tym, że gdy np. skomentuje jakiś wpis, to komentarz będzie wyświetlany nie pod wskazanym wpisem, lecz pod wpisem, który ma największe ID. A jeśli chodzi o lajkowanie - kliknięcie linku "lubię to" lajkuje wszystkie wpisy.
Turson
Cytat(jarek0203 @ 27.02.2014, 20:51:05 ) *
  1. mysqli_query($connect, "UPDATE wpis SET wholike='$lajkerzy' WHERE id='$id'");
  2. mysqli_query($connect, "UPDATE wpis SET `like` =`like`+1 WHERE id='$id'");


zmien na:

  1. mysqli_query($connect, "UPDATE wpis SET wholike='$lajkerzy' WHERE id='$dane['id']'");
  2. mysqli_query($connect, "UPDATE wpis SET `like` =`like`+1 WHERE id='$dane['id']'");



A w komentarzach musisz zrobić coś podobnego jak masz w lajkach czyli wysyłać do konkretnego id w komentarzach. I oczywiście dodać w INSERT INTO '$id'.

Przecież wyżej ma
$id=$dane['id'];
więc nie wiem co twój post ma wnosić
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.