【问题标题】:I am very new to using PHP. I would like to create a comment box我对使用 PHP 很陌生。我想创建一个评论框
【发布时间】:2017-10-07 06:06:45
【问题描述】:

我对使用 PHP 非常陌生。我想为用户创建一个评论框。 1.如何将评论保存在数据库中 2.怎么看有没有帖子 3. 如何将所有帖子显示到当前页面。
我正在使用 Wampsever/MySQL 工作台。我可以帮忙吗?谢谢!

<?php
    require_once("db_connection.php");
    require_once("needed_functions.php");

        if (isset($_POST['submit']))
        {
            //Take  Comment
            $comment_id = $_POST["comment"];

            if ($message == "" )
            {
                $query = "INSERT INTO comment (";
                $query .= "comment";
                $query .= ") VALUES (";
                $query .= " '{$comment}'";
                $query .= ")";

            //connect  &select 
            $mysqli = new mysqli("localhost", "user_id");

            //query 
            $result = $mysqli->query("INSERT INTO Comment () VALUES();") 

            //close
            $result->close();
            }
        }

?>

<!DOCTYPE html>
<html>
<title>JAE Movies</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins">
<style>
body,h1,h2,h3,h4,h5 {font-family: "Poppins", sans-serif}
body {font-size:16px;}
.w3-half img{margin-bottom:-6px;margin-top:16px;opacity:0.8;cursor:pointer}
.w3-half img:hover{opacity:1}
</style>

<body style= "background-image:url(Roll.jpg)">

<!-- Sidebar/menu -->
<nav class="w3-sidebar w3-black w3-collapse w3-top w3-large w3-padding" style="z-index:3;width:300px;font-weight:bold;" id="mySidebar"><br>
  <a href="javascript:void(0)" onclick="w3_close()" class="w3-button w3-hide-large w3-display-topleft" style="width:100%;font-size:22px">Close Menu</a>
  <div class="w3-container">
    <h3 class="w3-padding-64"><b>JAE<br>Movies</b></h3>
  </div>
  <div class="w3-bar-block">
  <a href="Homepage.php" onclick="w3_close()" class="w3-bar-item w3-button w3-hover-white">Home</a> 
    <a href="signin.php" onclick="w3_close()" class="w3-bar-item w3-button w3-hover-white">Sign In</a> 
    <a href="SignUp.php" onclick="w3_close()" class="w3-bar-item w3-button w3-hover-white">Sign Up</a> 
    <a href="Information.php" onclick="w3_close()" class="w3-bar-item w3-button w3-hover-white">Information</a> 
    <a href="Customer.php" onclick="w3_close()" class="w3-bar-item w3-button w3-hover-white">Customer Service</a> 
    <a href="Admin.php" onclick="w3_close()" class="w3-bar-item w3-button w3-hover-white">Administrator</a> 
  </div>
</nav>

<!-- Top menu on small screens -->
<header class="w3-container w3-top w3-hide-large w3-light-blue w3-xlarge w3-padding">
  <a href="javascript:void(0)" class="w3-button w3-light-blue w3-margin-right" onclick="w3_open()">?</a>
  <span>JAE Movies</span>
</header>

<!-- Overlay effect when opening sidebar on small screens -->
<div class="w3-overlay w3-hide-large" onclick="w3_close()" style="cursor:pointer" title="close side menu" id="myOverlay"></div>


<!--Start Inserting Page Content-->
<div class="w3-main" style="margin-left:340px;margin-right:40px">

 <!-- Header -->
  <div class="w3-container" style="margin-top:80px" id="userhome">
    <h1 class="w3-jumbo w3-text-white"><b>Lion King</b></h1>
  </div>

  <!--Image-->

 <div class="w3-half">
      <img src="Images/LionKing.jpg" alt="LionKing" style="width:100%">
    </div>

    <!--Description-->

<div class="w3-half">
<p style="color:white";>Lion cub and future king Simba searches for his identity. His eagerness to please others and penchant for testing his boundaries sometimes gets him into trouble.</p></br>

    </div>

    <!--Buttons-->
 <div>
 <button type="submit"><a href= "http://www.imdb.com/title/tt0110357/videoplayer/vi3764362265?ref_=tt_ov_vi">WATCH TRAILER!</a></button>
 <button type="submit"><a href= "http://123moviesfree.com/watch/the-lion-king-1994-i.1-online-free-123movies.html">WATCH MOVIE</a></button>

    </div>

<!--Comments-->

<div>

<br>
<textarea rows="4" cols="50" name="comment" form="usrform">
Enter comment here...</textarea>

<form action=" " method="post" id="com">
  <input type ="submit" name="submit" value="submit" class="texty" >
</form>


</div>

【问题讨论】:

  • 如果您刚刚开始使用 PHP 开发并想要制作应用程序,请选择适合您的风格和需求的 development framework,例如 Laravel。这些带有许多示例,说明如何完全按照您的要求进行操作。您创建的是一堆令人困惑的 HTML、CSS、PHP 和 SQL,没有关注点分离,这是尝试学习 PHP 时的常见错误。框架可帮助您专注于手头的任务,并使您和其他人都能维护您的代码。
  • @Alton Joyner 据我了解您的问题,您希望在图像或视频下方添加一个评论框。就像现在的电影网站一样。我说得对吗
  • @PavanBaddi 是正确的
  • @Alton Joyne 然后确定在几分钟内我会发布答案
  • @PavanBaddi 谢谢

标签: php mysql sql html wampserver


【解决方案1】:

错误由于某种原因我没有找到:

你的截图正是我想要的

【讨论】:

  • 就是这么简单的错误就在你面前。正如我告诉你的那样做评论那些需要一次()并且语法是mysqli而不是MySQL检查正确。这是语法 $link = new mysqli ('localhost','username','password if not they than leave a white space','database name');他们是你的代码中的错误,不是我的
【解决方案2】:

所以他们是一个将comment保存在数据库中的代码,显示在数据库中,如果评论未发布或不可用,则显示NO COMMENT AVAILABE消息。

我在这里使用 PHP 和 MYSQLI。建议不要使用mysql,因为它已被弃用。

数据库表图像

代码输出图像

php 文件:

    <?php
    $link = new mysqli ('localhost','root','admin','demo1');

    if($link->connect_error){
        die ("Connection failed".$link->error);
    }

    if(isset($_POST['submit'])){

        $comment = mysql_escape_string($_POST['comment']);  

        $sql = "INSERT INTO comments (comment) VALUES ('$comment')";

        if($res = $link->query($sql)){

        }
        else
        {
            echo "Error".$sql."<br>".$link->error;
        }
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
  <title>PHP</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
    <img src="images/1.jpg" alt="loinKing" style="width:100%;height:300px;">
    <br>
    <br>
    <form action="" method="post">
        <div class="form-group">
            <textarea type="text" name="comment" placeholder="Type Comment.."  class="form-control"></textarea>
        </div>
        <div class="form-group">
            <input type="submit" name="submit" value="POST" class="btn btn-primary">
        </div>
    </form>
    <!-- Left-aligned -->

    <?php
        //HERE SHOW OR DISPLAY THE COMMENTS
        $q = "SELECT * FROM comments ORDER BY id DESC";
        if($r = $link->query($q)){
            if($r->num_rows > 0){
                while($row = $r->fetch_assoc()){
    ?>
                    <div class="media">
                        <div class="media-left">
                            <img src="images/img_avatar1.png" class="media-object" style="width:60px">
                        </div>
                        <div class="media-body">
                            <p>Date Posted : <?php echo $row['date'];?></p>
                            <p>Comments :<?php echo $row['comment'];?></p>
                        </div>
                    </div>  
    <?php
                }   
            }
            else
            {
    ?>
                <h4>No Comments Available</h4>
    <?php
            }
        }
        else
        {
            echo "Error".$sql."<br>".$link->error;
        }
    ?>

</div>

</body>
</html>

我希望您的所有问题都能得到解答。如果没有,请回复我....

【讨论】:

  • 谢谢。我一直在第 71 行收到错误消息。我认为 sql 链接已检出。
  • 可能是因为我使用的是 MySQL 而不是 MYSQLi?
【解决方案3】:
 <?php
    require_once("db_connection.php");
    require_once("needed_functions.php");


    if(isset($_POST['submit'])){

        $comment = mysql_escape_string($_POST['comment']);  

        $sql = "INSERT INTO comments (comment) VALUES ('$comment')";

        if($res = $link->query($sql)){

        }
        else
        {
            echo "Error".$sql."<br>".$link->error;
        }
    }
?>
<!DOCTYPE html>
<html>
<title>Movies</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins">
<style>
body,h1,h2,h3,h4,h5 {font-family: "Poppins", sans-serif}
body {font-size:16px;}
.w3-half img{margin-bottom:-6px;margin-top:16px;opacity:0.8;cursor:pointer}
.w3-half img:hover{opacity:1}
</style>
<body>

<div class="container">
    <img src="images/1.jpg" alt="loinKing" style="width:100%;height:300px;">
    <br>
    <br>
    <form action="" method="post">
        <div class="form-group">
            <textarea type="text" name="comment" placeholder="Type Comment.."  class="form-control"></textarea>
        </div>
        <div class="form-group">
            <input type="submit" name="submit" value="POST" class="btn btn-primary">
        </div>
    </form>
    <!-- Left-aligned -->

    <?php
        //HERE SHOW OR DISPLAY THE COMMENTS
        $q = "SELECT * FROM comments ORDER BY id DESC";
            if($r->num_rows > 0){
                while($row = $r->fetch_assoc()){
    ?>
                    <div class="media">
                        <div class="media-left">
                            <img src="images/img_avatar1.png" class="media-object" style="width:60px">
                        </div>
                        <div class="media-body">
                            <p>Date Posted : <?php echo $row['date'];?></p>
                            <p>Comments :<?php echo $row['comment'];?></p>
                        </div>
                    </div>  
    <?php
                    }   
                }
            else
            {
    ?>
                <h4>No Comments Available</h4>
    <?php
            }
        }
        else
        {
            echo "Error".$sql."<br>".$link->error;
        }
    ?>

</div>

</body>

【讨论】:

  • $r = $link-&gt;query($q) 很重要,因为它执行查询时我没有收到任何错误。检查我已经添加了我的数据库表和输出图像..
  • @PavanBaddiok 我明白你在说什么。现在我不断收到错误,第 2 行 $link = new mysql ('localhost', 'root','JAEMovie');
  • '$link = new mysqli('localhost','root','admin','demo1');'检查你的语法我用过 mysqli 并且你正在使用 mysql 。你只需复制代码在 phpmyadmin 中创建一个虚拟数据库演示,然后尝试这个工作没问题...我已经交叉 chexkedchexked 3 次..
  • 请参阅我正在使用 WampServer 和 MySQL Workbench。我也有与此相关的其他页面。
  • 就是这么简单的错误就在你面前。正如我告诉你的那样做评论那些需要一次()并且语法是mysqli而不是MySQL检查正确。这是语法 $link = new mysqli ('localhost','username','password if not they than leave a white space','database name');他们是你的代码中的错误,不是我的..
【解决方案4】:

在 PHP 中使用数据库连接时,请确保执行以下操作

//connect  &select 
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

//query 
$result = $mysqli->query("INSERT INTO tbl_name () VALUES();") // Add the update comment here
//close
$result->close();

永远记住:

连接 选择 询问 关闭

然后,您需要使用相同的过程但使用选择过程而不是插入来获取页面的所有 cmets。

【讨论】:

  • 在正确的轨道上,但与实际答案相去甚远。这个问题可能太宽泛了。
  • 谢谢@Chris Evans。我认为评论可以发布到另一个页面。允许在那里看到评论。
  • 我认为我们需要将其分解为 3 个问题。 1 如何保存评论 2 如何查看是否有任何帖子 3 如何显示所有帖子。您是否也可以将 2 个文件放在脚本顶部。也将它们添加到您的问题中。
  • @ChrisEvans 好的,这有意义吗?
猜你喜欢
  • 1970-01-01
  • 2015-07-23
  • 2016-02-08
  • 2015-07-05
  • 1970-01-01
  • 1970-01-01
  • 2022-06-17
  • 2014-04-30
  • 2014-11-07
相关资源
最近更新 更多