Добавление новой записи в базу данных предотвращает отображение других записей

Здравствуйте, я создал веб-сайт форума, на котором вошедшие в систему пользователи могут создавать темы, используя форму для каждой темы форума, однако, когда я добавляю новую запись, используя форму, она предотвращает отображение себя и предыдущих тем.

Я понятия не имею, почему и был бы благодарен за любую помощь.
У меня есть страница форума, на которой отображаются категории, темы (если выбрана категория) и ответы (если выбрана тема). Вот код для моей страницы forum.php

    <div id="midclmn">
<?php

If (isset($_GET['topic'])){

// Show topic & replies

$queryreply = "SELECT a.reply_id,a.reply_text, a.reply_date, b.topic_title, b.topic_date,c.username AS reply_user, (SELECT username FROM users
WHERE user_id=b.user_id) AS topic_creator FROM forum_replies a
LEFT JOIN forum_topics b ON a.topic_id=b.topic_id
LEFT JOIN users c ON a.user_id=c.user_id

WHERE a.topic_id = '".$_GET['topic']."'    ";
$result = mysql_query($queryreply) or die (mysql_error());
$row = mysql_fetch_array($result);
if(empty($row['reply_id'])){
echo "No replies have been posted in this Topic, be the first to have your say using form below.";} ?><table id="categorytable">

<tr><td><?php echo '<b>'.$row['topic_title'].'</b>';?></b><br></td></tr>
<tr><td><?php echo 'Topic published by '.$row['topic_creator'].' - ( '.$row['topic_date'].' )'.'';?><br><br></td></tr>
<tr><td><?php $row['reply_user'].' Replied with: ';?><br></td></tr>
<tr><td><?php echo $row['reply_text'].'<br><br><i>Published:  '.$row['reply_date'].' by    '.$row['reply_user'].'</i>';?></td></tr><?php

while ($row = mysql_fetch_array($result)){ ?>

<tr><td><?php $row['reply_user'].' Replied with: ';?><br></td></tr>
<tr><td><?php echo $row['reply_text'].'<br><br><i>Published:  '.$row['reply_date'].' by    '.$row['reply_user'].'</i>';?></td></tr><?php
}
?>
</table><?php

}elseif (isset($_GET['cat'])){
// Show topics in that category$querytopic = "SELECT topic_id, topic_title,topic_description, topic_date, category_id FROM forum_topics WHERE category_id = '".$_GET['cat']."'";
$result = mysql_query($querytopic) or die (mysql_error());
$row = mysql_fetch_array($result);
if(empty($row['topic_id'])){
echo "No topics have been posted in this category, be the first to submit a topic using form below."; ?>
<table id="categorytable">
<tr><td><?php echo '<a href="forum.php?topic='.$row['topic_id'].'&cat='.$row['category_id'].'"><b>'.$row['topic_title'].'</b></a>';?></td></tr>
<tr><td><?php echo $row['topic_description'];?><br><br></td></tr>
<tr><td><?php echo "<b>Date Posted:</b>   ".$row['topic_date'];?><br><br></td></tr>
<?php

while ($row = mysql_fetch_array($result)){ ?>
<tr><td><?php echo '<a href="forum.php?topic='.$row['topic_id'].'&cat='.$row['category_id'].'"><br>'.$row['topic_title'].'</b></a>';?></td></tr>
<tr><td><?php echo $row['topic_description'];?><br><br></td></tr>
<tr><td><?php echo "<b>Date Posted:</b>   ".$row['topic_date'];?><br><br></td></tr><?php
}} ?></table><?php
if($_SESSION['loggedin'] === true){
$userid = $_SESSION['id'];
$catid = $_GET['cat'];

?>

<br>
<form method="post" action="topic_process.php" id="topicform">
<h3>Add New Topic</h3>
<input type="hidden" id="catid" name="catid"  value=<?php echo $catid?> >
<input type="hidden" id="userid"    name="userid"  value=<?php echo $userid ?>>
<label for="topictitle">Topic Title:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
<textarea rows="2" cols="80"  id="topictitle" name="topictitle"  required ></textarea>
<br><br>
<label for="topicdescription">Topic Description:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
<textarea  rows="10" cols="80" id="topicdescription" name="topicdescription"   required ></textarea>
<input type= "hidden" id="topicdate" name="topicdate" value=<?php echo ''.date('Y-m-d').'' ?>>

<br><br>
<input type="submit" name="topicsubmit" id="topicsubmit" value="Create Topic"></form>

<?php
}
?><?php
}else{
//Just display the list of categories
$querycategory = "SELECT category_id, category_title,category_description FROM forum_category";
$result = mysql_query($querycategory) or die (mysql_error());
$row = mysql_fetch_array($result); ?>

<table id="categorytable">
<tr><td><?php echo '<a href="forum.php?cat='.$row['category_id'].'">'.$row['category_title'].'</a>';?></td></tr>
<tr><td><?php echo $row['category_description'];?><br><br></td></tr>
<?php

while ($row = mysql_fetch_array($result)){ ?>
<tr><td><?php echo '<a href="forum.php?cat='.$row['category_id'].'">'.$row['category_title'].'</a>';?></td></tr>
<tr><td><?php echo $row['category_description'];?><br><br></td></tr><?php
}
?>
</table>
<?php   }?>

</div>

и вот страница процесса

session_start();
include "includes/connection.php";

echo $_POST['topictitle'];
echo $_POST['topicdescription'];
echo $_POST['userid'];
echo $_POST['catid'];$query = "INSERT INTO forum_topics
(
category_id,
user_id,
topic_title,
topic_description,
topic_date
)
VALUES
(
'".$_POST['catid']."',
'".$_POST['userid']."',
'".$_POST['topictitle']."',
'".$_POST['topicdescription']."',
'".$_POST['topicdate']."'
)";
mysql_query($query) or die (mysql_error());
header('Location: /TEST/forum.php?'.$_POST['catid'].'');?>

Я также изо всех сил пытаюсь записать topic_date как сегодняшнюю дату, которую я пробовал date (‘Y-m-d’) для 2015-04-28, но она сохранилась как 00-00-00.

Я знаю, что много кода для чтения, но я действительно застрял и не хочу ничего пропустить, также я знаю, что mysql_functions устарели, но меня попросили использовать их в uni.

Я использую PHPmyadmin в качестве базы данных, я знаю, что это мусор!
Спасибо

РЕДАКТИРОВАТЬ: Я настроил страницу так, чтобы она отображала все темы, хранящиеся в базе данных (topic_title, topic_description, user_id, topic_date). до того, как я добавлю новую тему в базу данных, это работает нормально, но после этого все темы, включая новую, исчезают, оставляя только форму на странице. Все записи все еще существуют в базе данных, и удаление новой записи возвращает все темы, отображаемые на странице.

0

Решение

Задача ещё не решена.

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

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

По вопросам рекламы [email protected]