在同一个php页面上发布和显示信息

时间:2014-08-15 18:48:39

标签: php html css

我正在处理一个常见问题,但是对于管理,我希望能够看到存储在数据库中的当前常见问题,并在下面找到一个表单以发布新问题&回答,提交后将用新的问题和答案刷新页面。

这就是事情:

我已经把它发布得很好,但我只能显示最新的...

到目前为止,这是我的代码:

获得:

<?php

        //select database table
          $sql = "SELECT question, answer FROM faq";
          $queryresult = mysql_query($sql) or die (mysql_error());

        //Request Values
          while ($row = mysql_fetch_array($queryresult)){
            $faqQuestion = $row['question'];
            $faqAnswer = $row['answer'];
          }

        //echo variables
          echo "<p>$faqQuestion</p>" . "<p>$faqAnswer</p>" . "<br />";

        //if question and answer have null values
          if ((empty($faqQuestion))&&(empty($faqAnswer))){
            echo("<div><p>No Questions available</p></div>");
          } 
      ?>
      <?php
        mysql_free_result($queryresult);
        mysql_close($conn);
      ?>

张贴:

<?php
    include("database_conn_dcs.php");

    if($_POST){

      $question = ($_POST['question'])? $_POST['question']:null;
      $answer = ($_POST['answer'])? $_POST['answer']:null;

      $sql="INSERT INTO faq (talen_idtalen, question, answer)
            VALUES ('$idtalen', '$question', '$answer')";

      if (!mysql_query($sql)) {
        die('Error: ' . mysql_error());
      }

      header("location: faq_admin.php");
    }
?>

我的另一个问题是它也发布空白的东西。我如何阻止PHP向数据库发送空值(已经说明变量是非空的?

提前非常感谢!!!

1 个答案:

答案 0 :(得分:1)

首先,你的echo应该在while循环中,否则每次循环时,你的两个变量都会被覆盖。

其次,如果没有返回任何结果,您只想显示没有可用的问题,这将由mysql_num_rows检查。

第三,您的输入代码容易受到SQL注入攻击,这可能会使您的网站受到攻击。要防止这种情况,请使用prepared statements,并绑定用户输入($ _POST变量),而不是直接将它们包含在查询中。

<?php

        //select database table
          $sql = "SELECT question, answer FROM faq";
          $queryresult = mysql_query($sql) or die (mysql_error());

        //Request Values
          while ($row = mysql_fetch_array($queryresult)){
            $faqQuestion = $row['question'];
            $faqAnswer = $row['answer'];

            //echo variables
            echo "<p>$faqQuestion</p>" . "<p>$faqAnswer</p>" . "<br />";
          }
          if(mysql_num_rows($queryresult) <= 0) {
            echo("<div><p>No Questions available</p></div>");
           }


        mysql_free_result($queryresult);
        mysql_close($conn);
?>
相关问题