2016-01-10 75 views
0

我只是想構建類似於Facebook的評論和狀態系統。當我給它一個狀態它的節目和評論關於這個狀態它的節目。但是當我給出一個新的狀態,它不顯示。我想創建類似Facebook的狀態和評論系統

<?php 

// show status. 

mysql_connect("localhost","root",""); 
mysql_select_db("saif"); 
$sql="select id, st from status "; 
$result=mysql_query($sql); 


while($row= mysql_fetch_array($result)) 
{ 
    echo $row['id']. " " .$row['st']; 
    echo "<br>"; 

    //show comment; 

    mysql_connect("localhost","root",""); 
    mysql_select_db("saif"); 
    $sql="select com from comment "; 
    $result=mysql_query($sql); 


    while($row= mysql_fetch_array($result)) 
    { 
     echo $row['com']; 
     echo "<hr>";  
    } 
    // end of show comment 

    //new comment area. 
    include('textarea.php'); 
    echo "<hr>"; 
} 

?> 
+0

有很多錯誤。我不知道你想要達到什麼目的,並且有一些關於你的sql表格會有所幫助。也許是你最終結果的劃痕。 – Gianca

+1

有點格式化和固定的語法。 –

+0

我只是想建立類似於Facebook的評論和狀態系統。當我給它一個狀態它的節目和評論關於這個狀態它的節目。但是當我給出一個新的狀態,它不顯示。 –

回答

1

好吧,這是我的解決方案: 首先,我創造我的數據庫的兩個表,我填充他們,然後我創建使用的MySQLi我的數據庫連接(MySQL是不建議使用)。 我選擇了所有狀態,併爲每個狀態選擇了相關注釋。爲此,在評論表中,我需要一些東西來建立狀態和評論之間的關係。 只是要了解評論與哪個狀態相關。

首先讓我們創建並填充表:

SQL:

CREATE TABLE `status` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `st` text, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

INSERT INTO `status` (`id`, `st`) 
VALUES 
    (1, 'This is the first status in your DB, let\'s say \"Hello World\"'), 
    (2, 'This is the second status'); 


CREATE TABLE `comment` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `id_status` int(11) DEFAULT NULL, 
    `com` text, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

INSERT INTO `comment` (`id`, `id_status`, `com`) 
VALUES 
    (1, 1, 'This is just a comment to the first status'), 
    (2, 1, 'This is another comment to the first status'), 
    (3, 2, 'This is a comment to the second status'), 
    (4, 1, 'This is the third comment to the first status'); 

好吧,php文件:

<?php 

$con = mysqli_connect("localhost","YourUsername","YourPassword","YourDB"); 

// Check connection 
if (mysqli_connect_errno()) { 
     echo "Connection error: ".mysqli_connect_error(); 
     exit(); 
} 

$sql = "SELECT * FROM status"; 
$result = $con->query($sql); 

while($row = $result->fetch_array(MYSQLI_ASSOC)) 
{ 
    echo $row['id']." ".$row['st']."<br>"; 

//show comment 
    echo "<ol>"; 
    $id_status = $row['id']; 
    $query = "SELECT com FROM comment WHERE id_status = $id_status"; 
    $comments = $con->query($query); 
    while($comment = $comments->fetch_array(MYSQLI_ASSOC)) 
    { 
     echo "<li>".$comment['com']."</li>"; 
    } 
    echo "</ol>"; 
// end of show comment 

//new comment area. 
    include('textarea.php'); 
    echo "<hr>";  
} 
?> 

這是結果(我沒有輸出文本區,因爲我沒有textarea.php)

enter image description here

我希望這有助於。

+0

我試過了。但只有一個狀態和評論顯示。別人不顯示。 –

+0

您的代碼是否在線?您是否在本地PC上離線工作? – Gianca

+0

我正在與xamp合作。數據插入是可以的。但只有一個狀態和評論顯示。因此查看數據時出現問題。 –