Коментар към коментарите

botevis2

Registered
Значи пробвах да направя като добавя коментар и в коментара който добава да има поле от където да добавя коментар към главния коментар
Имам 2 таблици comments и comments2 те са еднакви id int (12)/avtor varchar (255)/komentar text/data varchar (255)/ip varchar (255)

Проблема е следния Добавям коментар и след това като добавя коментар към главния коментар този ПОДкоментар ми излиза във всички главни коментари

http://prikachi.com/images.php?images/321/5788321q.jpg
Зелено и Червено - Главни коментари
Синио - Подкоментари
 
Код:
<?php
session_start();
ob_start();
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<table align="center" width="400" id="main">
<form method="POST" action="comments.php">
<tr><td>Име:</td><td><input type="text" name="avtor" size="25"/></td></tr>
<tr><td valign="top">Коментар:</td><td><textarea name="komentar" rows="4" cols="27"></textarea></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Добави коментара" /></td></tr>
</form>
</table><hr /><br />

<?php
include "config.php"; //Инклудваме конфиг файла!
if (isset($_POST['submit'])) { //Проверяваме дали е натиснат бутона submit!
$avtor = htmlspecialchars(addslashes($_POST['avtor'])); //Взимаме написаното от полето за въвеждане на автор и добавяме малко защити!
$komentar = htmlspecialchars(addslashes($_POST['komentar'])); //Взимаме написаното от полето за въвеждане на коментар и добавяме малко защити!
$data = date("h:i"); //Взимаме датата и часът на вавеждането на коментара!
$ip = $_SERVER['REMOTE_ADDR']; //Взимаме ипто на потребителят който е въвел коментара!
if ($avtor == NULL || $komentar == NULL) { //Правим провекра дали полетата са празни!
echo "Моля попълни име и парола!"; //И ако са празни извеждаме грешка!
} else {
$sql = "INSERT INTO comments (avtor, komentar, data, ip) VALUES ('$avtor', '$komentar', '$data', '$ip')"; //Ако всичко е попълнено както трябва въвждаме данните в Базата данни!
mysql_query($sql) or die (mysql_error()); //Испълняваме заявката!
header("LOCATION: comments.php?id=$id"); //Този код прави така, че когато рефрешнете страницата след добавянето на коментар да не добавя коментара на ново! 
}
}
?>

<?php // От тук на доло е кодът за извеждане на коментарите!
$our = mysql_query("SELECT * FROM comments ORDER BY id DESC"); // Селектираме Базата данни и извеждаме резултатите! Всеки най-от горе!
while ($row = mysql_fetch_assoc($our)) { // Правим си един цикъл в който ще извеждаме коментарите!

echo "<table width='300' align='center' border='1'>
<tr><td colspan='2'><b>Автор: <font color='red'>$row[avtor]</font></b></td></tr>
<tr><td align='center' colspan='2'><b>$row[komentar]</b></td></tr>
<tr><td align='right' colspan='2'><b><font color='red'>$row[data]</font></b></td></tr>
<tr><td></td>
<td><table align='center' width='400' id='main'>
<form method='POST' action='comments.php'>
<tr><td>Име:</td><td><input type='text' name='avtor' size='25'/></td></tr>
<tr><td valign='top'>Коментар:</td><td><textarea name='komentar' rows='4' cols='27'></textarea></td></tr>
<tr><td></td><td><input type='submit' name='submit2' value='Добави коментара' /></td></tr>
</form>
</table></td>";
if (isset($_POST['submit2'])) { //Проверяваме дали е натиснат бутона submit!
$avtor2 = htmlspecialchars(addslashes($_POST['avtor'])); //Взимаме написаното от полето за въвеждане на автор и добавяме малко защити!
$komentar2 = htmlspecialchars(addslashes($_POST['komentar'])); //Взимаме написаното от полето за въвеждане на коментар и добавяме малко защити!
$data2 = date("h:i"); //Взимаме датата и часът на вавеждането на коментара!
$ip = $_SERVER['REMOTE_ADDR']; //Взимаме ипто на потребителят който е въвел коментара!
if ($avtor2 == NULL || $komentar2 == NULL) { //Правим провекра дали полетата са празни!
echo "Моля попълни име и парола!"; //И ако са празни извеждаме грешка!
} else {
$sql = "INSERT INTO comments2 (avtor, komentar, data, ip) VALUES ('$avtor2', '$komentar2', '$data2', '$ip2')"; //Ако всичко е попълнено както трябва въвждаме данните в Базата данни!
mysql_query($sql) or die (mysql_error()); //Испълняваме заявката!
header("LOCATION: comments.php?id=$id"); //Този код прави така, че когато рефрешнете страницата след добавянето на коментар да не добавя коментара на ново! 
}
}
$our2 = mysql_query("SELECT * FROM comments2 ORDER BY id DESC"); // Селектираме Базата данни и извеждаме резултатите! Всеки най-от горе!
while ($row2 = mysql_fetch_assoc($our2)){
echo "<tr><td></td><td><table width='300' align='center' border='1'>
<tr><td colspan='2'><b>Автор: <font color='red'>$row2[avtor]</font></b></td></tr>
<tr><td align='center' colspan='2'><b>$row2[komentar]</b></td></tr>
<tr><td align='right' colspan='2'><b><font color='red'>$row2[data]</font></b></td></tr></table></td></tr>

</tr>


</table>";
}
}
?>
 
Ето заявките с която вкарам коментарите в BD и с която извеждам коментарите


$sql = "INSERT INTO comments2 (avtor, komentar, data, ip) VALUES ('$avtor2', '$komentar2', '$data2', '$ip2')";

$our2 = mysql_query("SELECT * FROM comments2 ORDER BY id DESC");
 
Всеки под коментар трябва да съдържа ИД на главния коментар.

И при показване на под коментарите трябва да стане:

[sql]
SELECT * FROM main_comments as mc, pod_comments as pc WHERE pc.main_comments_id = mc.main_comments_id
[/sql]
 
eddyy93 каза:
Всеки под коментар трябва да съдържа ИД на главния коментар.

И при показване на под коментарите трябва да стане:

[sql]
SELECT * FROM main_comments as mc, pod_comments as pc WHERE pc.main_comments_id = mc.id
[/sql]

В таблицата "coments2" трябва да добавя ново поле така ли?
 
Понеже малко не чаткам заявката ти кажи ми как трябва да се казва полето спрямо нея :)

Имам 2 таблици comments и coments2 двете са еднавки

ID int 11 AI Primary key
AVTOR varchar 255
KOMENTAR text
DA TA varchar 255
IP varchar 255
 

Back
Горе