Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Pętla w pętli
tenloginjestzaje...
post 14.04.2016, 03:23:50
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
rad11
post 14.04.2016, 06:00:59
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Oj podejrzewam że masz złą strukturę skoro to robisz w pętli , pokaż strukturę dla tabelki z $query i $queryodp(comments)
Go to the top of the page
+Quote Post
nospor
post 14.04.2016, 07:16:58
Post #3





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




$rowodp a nie $row. ...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tenloginjestzaje...
post 14.04.2016, 13:18:07
Post #4





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


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..


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
nospor
post 14.04.2016, 14:10:31
Post #5





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tenloginjestzaje...
post 14.04.2016, 15:12:46
Post #6





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


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ź.

Ten post edytował tenloginjestzajety 14.04.2016, 15:18:23


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 10:23