Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pętla w pętli
Forum PHP.pl > Forum > Przedszkole
tenloginjestzajety
Witam mam problem z zapytaniami w SQL. Nie wiem jak zrobić drugie zapytanie sql w pętli while. Używam drugiego zapytania bez pętli - wszystko działa. Na jednej stronie mam kilka tekstów, które posiadają po kilka komentarzy i nie mogę zrobić, aby dla każdego tekstu było więcej niż jeden komentarz. Dziękuje za pomoc.

  1. <?php
  2. while($row = mysql_fetch_assoc($query)) {
  3. $id = $row['id'];
  4. $text = $row['text'];
  5. $queryodp = mysql_query("SELECT * FROM `comments` WHERE `top` = '$id'");
  6. $rowodp = mysql_fetch_assoc($queryodp);
  7. $comments = $row['comments'];
  8. }
  9. ?>
rad11
Oj podejrzewam że masz złą strukturę skoro to robisz w pętli , pokaż strukturę dla tabelki z $query i $queryodp(comments)
nospor
$rowodp a nie $row. ...
tenloginjestzajety
Struktura dla tabeli z artami oraz komentarzami jest taka sama.
ID
TOP
TEXT
TAG
COMMENTS
VER

DLA ARTU:
ID:1
TOP:
CONTENT:tekst
TAG:tytul
VER:1

DLA ARTU:
ID:2
TOP:1
CONTENT:tekst
TAG:tytul
VER:0

W top dla komentarza jest numer id artu oraz ver = 0 żeby nie wyświetlił jako artykuł. więc dokładne zapytanie wygląda tak:


  1. $query = mysql_query("SELECT * FROM `comments` WHERE `tag` = '$tag' AND `ver` = '1' ORDER BY `id` ASC");
  2. while($row = mysql_fetch_assoc($query)) {
  3. $id = $row['id'];
  4. $text = $row['content'];
  5. $queryodp = mysql_query("SELECT * FROM `comments` WHERE `top` = '$id' AND `ver` = '0' ");
  6. $rowodp = mysql_fetch_assoc($queryodp);
  7. $comments = $rowodp['content'];
  8. }


Wyświetla ok, ale jak zrobię rowodp w while to zaczyna się bałagan..
nospor
Toz komentarzy tam miales szukac a nie content
$comments = $rowodp['comments'];

Swoja droga nie ogarniam twojego kodu... dwa razy lecisz do tej samej tabeli zczego raz w petli... Ze niby komentarze i arty trzymasz w tej samej tabeli?
tenloginjestzajety
tak jest to ta sama tabela z tą różnicą, że komentarz ma dodatkowo w polu "top" id posta, do którego jest przypięty komentarz oraz ver = 0, ver = 1 jest postów, to właśnie ver określa co jest postem, a co komentarzem, a pole top łączy komentarz z postem - wszystko działa fajnie tylko wyświetla jeden komentarz, bo nie ma pętli. Stworzenie nowej tabeli w mojej ocenie problemu nie rozwiąże, bo przecież i tak będę musiał stosować 2 x while.

Na przykładzie forum. Każdy post ma swoje id i próbuje zrobić, aby można było odpowiedzieć na każdy post.
Lub FB, tam na każdy komentarz możesz również odpowiedzieć i to próbuje zrobić u siebie, na każdy post odpowiedź.
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.