2016-01-10 3 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

Является ли ваш код онлайн o, вы работаете в автономном режиме на своем локальном компьютере? – Gianca

+0

Я работаю с xamp. вставка данных в порядке. но только один статус и комментарий. поэтому проблема с данными просмотра. –

Смежные вопросы