tenloginjestzajety
14.04.2016, 03:23:50
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.
<?php
$id = $row['id'];
$text = $row['text'];
$queryodp = mysql_query("SELECT * FROM `comments` WHERE `top` = '$id'"); $comments = $row['comments'];
}
?>
rad11
14.04.2016, 06:00:59
Oj podejrzewam że masz złą strukturę skoro to robisz w pętli , pokaż strukturę dla tabelki z $query i $queryodp(comments)
tenloginjestzajety
14.04.2016, 13:18:07
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:
$query = mysql_query("SELECT * FROM `comments` WHERE `tag` = '$tag' AND `ver` = '1' ORDER BY `id` ASC"); $id = $row['id'];
$text = $row['content'];
$queryodp = mysql_query("SELECT * FROM `comments` WHERE `top` = '$id' AND `ver` = '0' "); $comments = $rowodp['content'];
}
Wyświetla ok, ale jak zrobię rowodp w while to zaczyna się bałagan..
nospor
14.04.2016, 14:10:31
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
14.04.2016, 15:12:46
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ź.