2017-01-19 9 views
-1

タイムラインを作成して状態をコメントとともに更新しようとしていますが、ループのコメントwhile forにつきました。親と子whileループのPHP

$_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>'; 
    } 
} 

my database home for loop the updated status :

my database comment for loop the updated comment

私は2枚のリンクの画像を投稿することができませんよ出力のために私は期待されていないので、私は出力siをしたいこのようなmilar:

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 

それは正直に言うと、ステータス

答えて

0

を更新するためのFacebookのようなものだ、私はあなたがやろうとしているかについては明らかではありませんよ。あなたのデータベーステーブルがどのように設定されているのかわからないので、何か本当に価値のあるものを示唆するのは難しいです。一般に、私が気付いたことがいくつかあります:

これを処理するためには、すべてのループ内でクエリを実行するのが非常に費用がかかります。たぶんそれはやむを得ない場合がありますが、理想的にはクエリを最初に実行してからループを開始するのが理想的です。接続されたデータを持つ2つの異なるテーブルがあるため、結局JOINが必要になります。

また、あなたのテーブルタグは正しくありません。ループ内で<table>タグを開始しないでください。同じループ内でループを閉じない限り(</table>)、前のループを閉じずにすべてのループに対して新しい<table>が作成されます。

+0

こんにちは、私はデータベースを含む投稿を編集しました。私は親と子供のようなループについて尋ねているだけで、それが明確かどうか疑問に思っています。 – faddi

+0

それはあまり役に立たなかった。私は、2つのテーブル間のデータを接続する外部キーは見ません。テーブル名とカラム名は特に何にも役立ちません。これまで提供されてきたことを私は手助けできません。 – Ben