Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] jedno zapytanie sql
Forum PHP.pl > Forum > Przedszkole
tenloginjestzajety
Witam
Próbuje zoptymalizować zapytania, zminimalizować do jednego.

Posiadam komentarze oraz odpowiedzi na dany komentarz w jednej tablicy:

id | idkomentarz | tekst

Wszystkie komentarze zawierają id, a idkomentarz zawiera numer wybranego id, do którego jest przypisany.
Lub inaczej, jeżeli idkomentaz zawiera 0 to jest to komentarz, a jeżeli != 0 to jest odpowiedź na dany komentarz z jego numerem ( id ).

  1. $text = '';
  2. $sql = "SELECT * FROM `rewievs` WHERE `text` LIKE '$adress' AND `ver` = '1'";
  3. $result = $conn->query($sql);
  4. $row_cnt = $result->num_rows;
  5. if($row_cnt == '0') {header('location:../404.html');} else {
  6. while($row = $result->fetch_assoc())
  7. $idkomentarz = $row['idkomentarz'];
  8. $id = $row['id'];
  9. if($idkomentarz == 0)
  10. {
  11. $text.= 'Komentarz: '.$row['text'];
  12. }
  13. if($idkomentarz == $id)
  14. {
  15. $text.= 'Odpowiedz na komentarz: '.$row['text'];
  16. }
  17. }


Nie mogę się z tym uporać, nie pokazuje odpowiedzi na komentarz. Dzięki
nospor
if($idkomentarz == $id)
Jakim cudem ID i IDKOMENTARZ maja byc sobie rowne dla danego rekordu? Toz sam w opisie napisales ze nie sa, po czym w kodzie totalnie ignorujesz te regule

ps: WHILE nie ma w ogole {} przez co WHILE dotyczy tylko jednej linijki po WHILE co juz w ogole jest bez sensu
tenloginjestzajety
tak z while to przeoczenie, ponieważ pisałem kod na świeżo.

komentarze w bazie wyglądają tak:

ID | IDKOMENTARZ | TEKST

1. 0. jakiś tekst.
2. 0. jakiś tekst.
3. 0. jakiś tekst.
4. 2. odpowiedź na komentarz o ID 2.
nospor
Ja wiem jak wygladaja komentarze, nie musisz mi tego tlumaczyc. Wytlumacz to sobie bo to ty piszesz kod niezgodny z tym co masz w bazie a nie ja smile.gif
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.