如何使用PHP和MySQL在textarea中显示最近的两篇文章?

如何使用PHP和MySQL在textarea中显示最近的两篇文章?,php,mysql,Php,Mysql,我的计划是在顶部有一个textarea,在那里你可以键入任何你想要的内容并发布它,然后它下面的两个textarea会更新。但是我不知道怎么做,请帮忙 <?php if ($_POST['submit']) { mysql_connect ("10.246.16.206", "alanay_eu", "hidden") or die ('Error: ' . mysql_error()); mysql_select_db("alana

我的计划是在顶部有一个
textarea
,在那里你可以键入任何你想要的内容并发布它,然后它下面的两个
textarea
会更新。但是我不知道怎么做,请帮忙

<?php
    if ($_POST['submit']) {
        mysql_connect ("10.246.16.206", "alanay_eu", "hidden")
        or die ('Error: ' . mysql_error());

        mysql_select_db("alanay_eu") or die ('Data error:' . mysql_error());

        $post = mysql_real_escape_string($_POST['post']); 

        $query="INSERT INTO Posts (post) VALUES ('$post')";

        mysql_query($query) or die ('Error updating database' . mysql_error());
    }
?>

<center>
  <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
      <textarea name="post" rows="12" cols="60" spellcheck="false">
      Example Comment</textarea> <br/>
      <input name="submit" type="submit" value="submit" /> <br/>
      <textarea rows="12" cols="60" spellcheck="false"></textarea> <br/>
      <textarea rows="12" cols="60" spellcheck="false"></textarea>
  </form>
</center>

更改表格并添加时间戳:

ALTER TABLE Posts ADD postDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
然后通过
postDate
进行订购和限制:

SELECT post FROM Posts ORDER BY postDate DESC LIMIT 2
迭代搜索结果,并在
textarea
标记内回显
post

重要

mysql_*函数已弃用,不应再使用。调查或调查

另外,将
htmlentities()
$\u服务器['PHP\u SELF']
配合使用以防止XSS。有关更多信息,请参阅

使用
mysqli
的示例:

//I usually put the connection in a separate file, and include it as needed
$mysqli = mysqli_connect("myhost","myuser","mypassw","mydb") or die("Error " . mysqli_error($mysqli)); 

$stmt = $mysqli->prepare("SELECT post FROM Posts ORDER BY postDate LIMIT 2"); 
$stmt->execute();
$stmt->bind_result($post);
while($stmt->fetch()) {
    $post = htmlentities($post, ENT_QUOTES, "UTF-8");
    echo "<textarea rows='12' cols='60' spellcheck='false'>$post</textarea> <br/>";
}
//我通常将连接放在一个单独的文件中,并根据需要将其包括在内
$mysqli=mysqli_connect(“myhost”、“myuser”、“mypassw”、“mydb”)或die(“Error”)。mysqli_Error($mysqli));
$stmt=$mysqli->prepare(“按发布日期限制2从发布订单中选择发布”);
$stmt->execute();
$stmt->bind_结果($post);
而($stmt->fetch()){
$post=htmlentities($post,ENT_引号,“UTF-8”);
回显“$post
”; }
您能告诉我数据库中是否有保留时间戳的列吗?如果是,您可以查询数据库并获取前两个帖子。没有,我对PHP还是个新手。我可以使用像SELECT*FROM table ORDER BY id DESC LIMIT 2这样的方法吗?SELECT TOP 2*FROM table ORDER BY Date DESC-editedyes您可以从Posts SELECT*FROM ORDER BY id DESC LIMIT 2添加了一个示例,用于
mysqli
。我在主PHP文件中实现了该代码,所有内容都变为空白。我也像你说的那样添加了日期/打开错误报告以查看错误(但在生产环境中删除):
ini\u集('display\u errors',1);错误报告(E_全部)连接也必须更新:
$mysqli=mysqli_connect(“myhost”、“myuser”、“mypassw”、“mybd”)或die(“Error”)。mysqli_Error($link))
连接线末尾的
$link
应该是
$mysqli
,抱歉。它有点正常,但它显示的不是最近创建的两个链接,而是我创建的前两个链接:SOops,
按postDate DESC排序
。默认值为升序,这将为您提供第一个。更新答案,让我知道任何其他问题,以便我也能在答案中反映出来。