Php 向数据库中添加新记录可防止回显其他记录

Php 向数据库中添加新记录可防止回显其他记录,php,mysql,sql,forum,Php,Mysql,Sql,Forum,您好,我已经创建了一个论坛网站,登录用户可以在每个论坛主题上使用表单创建主题,但是当我使用表单添加新记录时,它会阻止自己和以前的主题显示 我不知道为什么,如果有任何帮助,我将不胜感激。 我有我的论坛页面,其中显示类别、主题(如果选择了类别)和回复(如果选择了主题)。下面是我的forum.php页面的代码 <div id="midclmn"> <?php If (isset($_GET['topic'])){ // Show topic

您好,我已经创建了一个论坛网站,登录用户可以在每个论坛主题上使用表单创建主题,但是当我使用表单添加新记录时,它会阻止自己和以前的主题显示

我不知道为什么,如果有任何帮助,我将不胜感激。 我有我的论坛页面,其中显示类别、主题(如果选择了类别)和回复(如果选择了主题)。下面是我的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'].'');


?>
我也在努力将主题日期记录为我在2015年4月28日尝试的日期(“Y-m-d”),但它保存为00-00-00

我知道有很多代码需要阅读,但我真的被卡住了,不想错过任何东西,我还知道mysql_函数已经被弃用,但uni已经要求使用它们

我使用PHPmyadmin作为数据库,我知道这是垃圾! 谢谢


编辑:我已设置页面,使其显示数据库中存储的所有主题(主题标题、主题描述、用户id、主题日期)。在我向数据库添加一个新主题之前,这很好,但之后所有主题(包括新主题)都消失了,只留下页面上的表单。所有记录仍存在于数据库中,删除新记录会返回页面上显示的所有主题。

您是否可以展开“它会阻止自身和以前的主题显示”。您实际观察到了什么情况?你希望观察到什么?想象一下,你正在和一个从未见过或听说过你的网站,却不知道它在做什么的人交谈。。。因为那是我们:)对不起,我的不好,基本上在我使用表单添加新主题之前。该网站在一个整洁的表格中显示所有主题(标题、主题描述、用户创建者和发布日期),但在我使用表单添加新主题后,网页上不会显示任何主题(仅显示表单)。所有记录仍然存在于数据库中,尽管(1)phpMyAdmin不是数据库,MySQL是。phpMyAdmin与您发布的代码无关。(2) 由于您的uni,您可能必须使用
mysql\uuu
,但至少要清理数据。(3) 如果您的
topic\u date
是一个日期列,则它不可能像
0000-00-00
那样保存为
00-00
。不要试图构建自己的日期,只需使用MySQL的
NOW()
填充字段即可。(4) 看起来您的位置
标题('location:/TEST/forum.php?cat='.$\u POST['catid'.')中缺少
cat=
主题日期设置为date,我将插入值更改为NOW(),但仍然得到了00-00-00,因此不确定问题出在哪里。cat=think很有效,谢谢你,但我试图解决的主要问题是,为什么这些记录阻止我的主题像新记录不存在时那样显示
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'].'');


?>