формы — родительский и дочерний при переполнении стека цикла

Я пытаюсь создать временную шкалу для обновления статуса вместе с комментарием, но я застрял в while for комментарий цикла. это зацикливает весь статус как это:

$_session['name1'] update:
lol
test comment //comment
test2 comment //comment

$_session['name2'] update:
lol2
test comment //comment
test2 comment //comment

Мне нужно зациклить комментарий ребенка только в родительском статусе, как этот код будет выглядеть? Или это с помощью класса или функции?

Вывод должен выглядеть так:

$_session['name1'] update:
lol
test comment //comment
test2 comment //comment

$_session['name2'] update:
lol2
another comment //comment

Мой код до сих пор:

<?php
session_start();
require "koneksi.php";

echo 'selamat datang, '.$_SESSION['nama']." <a href='logout.php'>logout</a><br>";
?>

<form action='' method='POST'>
<h5>Update Status</h5>
<textarea name='textarea' cols='30' rows='3' placeholder="what's on your mind?">    </textarea><br>
<input type='submit'>
</form>

<?php
if(isset($_POST['textarea'])){
$text = $_POST['textarea'];
$pemilik = $_SESSION['nama'];
$sql1 = "INSERT INTO `home` VALUES(0,'$text','$pemilik')";
mysqli_query($conn,$sql1);
}

if(isset($_POST['comment'])){
$comment = $_POST['comment'];
$pemiliks = $_SESSION['nama'];
$sqlcom = "INSERT INTO `comment` VALUES(0,'$comment','$pemiliks')";
mysqli_query($conn,$sqlcom);
}

if(isset($_GET['del_stat'])){
$del = $_GET['del_stat'];
$delsSql = "DELETE FROM `home` WHERE `id`='$del'";
mysqli_query($conn,$delsSql);
}

if($query2 = mysqli_query($conn,$sql2 = "SELECT * FROM `home`")){
while($row = mysqli_fetch_assoc($query2)){
$stat = $row['id'];
echo '<table>';
echo '<tr>';
echo '<td>';
echo $row['pemilik'].' <font color=blue>post</font> ';
if($_SESSION['nama']==$row['pemilik']){echo "<a href=home.php?del_stat=$stat>delete</a>";}
echo '</td>';
echo '</tr>';
echo '<td>';
echo $row['timelines'];
if($results = mysqli_query($conn,$sql = "SELECT * FROM `comment`")){
while($theRows = mysqli_fetch_array($results)){
$roww = $theRows['comment'];
echo '<table>';
echo '<tr>';
echo '<td>';
echo $roww;
echo '</td>';
echo '</tr>';
echo '</table>';
}
}
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td>';
?>
<form action='' method='POST'>
<textarea name='comment' rows='3' cols='20' placeholder='comment...'></textarea><br>
<input type='submit'>
</form>
<?php
echo '</td>';
echo '</tr>';
echo '</table>';
}
}

моя база данных дома для цикла обновленного статуса:

моя база комментариев для цикла обновленного комментария

Мне не разрешено публиковать 2 изображения ссылок для вывода, я не ожидаю, поэтому я хочу, чтобы вывод был похож на это:

Faddi Susanto post delete
hahahahahaha //comment belongs to Faddi Susanto
hello //comment belongs to Faddi Susanto
hello again //comment belongs to Faddi Susanto
s //comment belongs to Faddi Susanto

adi post delete
hohohohohohoho //comment belongs to adi
tes adi //comment belongs to adi
tes adi //comment belongs to adi

это как фейсбук для обновления статуса

-1

Решение

Если честно, мне не ясно, что вы пытаетесь сделать. Я не знаю, как настроены ваши таблицы базы данных, поэтому трудно предложить что-то действительно стоящее. В общем, вот что я заметил:

Выполнение запроса в каждом созданном цикле — очень дорогой способ справиться с этим. Возможно, есть случаи, когда это неизбежно, но в идеале вы хотели бы сначала выполнить запросы, а затем запустить циклы. Поскольку у вас есть две разные таблицы со связанными данными, вам, скорее всего, понадобится JOIN.

Кроме того, ваши теги таблицы не правы. Вы не должны начинать <table> тег внутри цикла, если вы не закрыли его (</table>) в том же цикле, поскольку это создаст новый <table> для каждого цикла без закрытия предыдущего.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector