2014-01-09 3 views
1

Я создал форму для окна комментариев, которое я собираюсь использовать на нескольких разных страницах. Он отправляет данные в таблицу «комментарии» в моей базе данных, в которой есть столбцы «id», «author», «body» «created» и «page_name». Я новичок в php, и я пытаюсь понять, как просто отображать комментарии с таким же значением «page_name», что и текущая страница.Как отображать определенные комментарии, хранящиеся в базе данных

Чтобы получить «PAGE_NAME», я использовал этот код в виде:

<input type="hidden" name="page_name" value="<?=$_SERVER['REQUEST_URI']?>" /> 

Это код, который я строю, чтобы отобразить комментарии:

<div id="comments"> 
    <?php foreach($comments as $comment): ?> 
    <div class="comment" style="margin-bottom: 2em;"> 
     <div class="author"> 
      <b><?php echo htmlentities($comment->author); ?>:</b> 
     </div> 
     <div class="meta-info" style="font-size: 0.8em;"> 
      <?php echo datetime_to_text($comment->created); ?> 
     </div> 
     <div class="body"> 
      <?php echo strip_tags($comment->body, '<strong><em><p>'); ?> 
     </div> 
    </div> 
    <?php endforeach; ?> 
    <?php if(empty($comments)) { echo "No Comments."; } ?> 
</div> 

Я просто не уверены, как указать странице отображать только те комментарии, которые имеют то же значение «page_name», что и страница, на которой пользователь включен. Любая помощь будет оценена!

+1

Где запрос к базе данных, которая получает комментарии? Вы должны добавить простой оператор 'if' в цикле, чтобы проверить значение' page_name' комментариев в отношении текущего 'page_name', но вы действительно должны отредактировать запрос базы данных, чтобы в первую очередь загружались только соответствующие комментарии. –

+0

Каков ваш запрос на получение данных. – Damith

+0

вам нужно сделать это по запросу, применить фильтр по запросу на основе имени страницы – user1844933

ответ

0

Вы должны запросить данные, соответствующие URL-адресу.

Для подключения к базе данных используется код ниже:

<?php 
// Create connection 
$db_con=mysql_connect('servername','db username','dbpassword'); 
if (!$db_con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 
$connection_string=mysql_select_db('db name',$db_con); 
?> 

Для запроса используйте код:

$url=$_SERVER['REQUEST_URI']; 
$query=mysql_query("select * from comments where page_name='".$url."'"); 
while($result=mysql_fetch_row($query)) 
{ 
echo $result[0]."<br>".$result[1]."<br>";   // echo all values that are needed for displaying. You can do the coding for displaying formatted values inside this loop. 
} 
+0

Спасибо, похоже, что он будет делать то, что мне нужно. Я просто уверен, что строка «echo $ result [0]».
". $ Result [1]." ;.. Когда я попытался вставить его, он предупреждает меня о синтаксической ошибке, но поскольку я не понимаю эту строку, я не знаю, как ее исправить. Спасибо! – ScarletLark

+0

Эхо предназначено для печати текста/Значение в php Здесь, если в таблице содержится всего 3 записи, удовлетворяющих запросу, тогда цикл while будет выполняться 3 раза, т. е. он будет выполняться до тех пор, пока не будут записаны записи, удовлетворяющие условию. Каждый раз запись будет сохранена в переменный $ result, поэтому, чтобы получить каждое значение поля для записи, мы должны вызвать набор результатов, здесь $ result с индексом как числом поля. Если id - первое поле, тогда мы должны использовать $ result [0] для получения идентификатора. – Jenz

+0

Мы можем печатать теги html с PHP, заключая его внутри «". Таким образом, ";?> создаст элемент break. – Jenz

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