PHP和SQL不能正常工作
我在一个小网站上遇到了一个小问题。基本上,我设置了一些东西,用户可以在元素中输入他们想要的任何内容。提交该表单时,会将其发送到PHP脚本以将其存储在数据库中。然后,页面被重定向到索引年龄,其中显示了他们提交的所有条目。这是可行的,但方式很奇怪 因此,到目前为止,他们键入的任何内容都不会显示在index.php上,直到他们再次转到表单并提交另一个条目。然后,以前的那条出现了,而不是他们刚刚放进去的那条,而那条链条还在继续 我希望它能显示所有内容,包括他们提交表格时的内容。这是我的3个脚本 index.phpPHP和SQL不能正常工作,php,mysql,Php,Mysql,我在一个小网站上遇到了一个小问题。基本上,我设置了一些东西,用户可以在元素中输入他们想要的任何内容。提交该表单时,会将其发送到PHP脚本以将其存储在数据库中。然后,页面被重定向到索引年龄,其中显示了他们提交的所有条目。这是可行的,但方式很奇怪 因此,到目前为止,他们键入的任何内容都不会显示在index.php上,直到他们再次转到表单并提交另一个条目。然后,以前的那条出现了,而不是他们刚刚放进去的那条,而那条链条还在继续 我希望它能显示所有内容,包括他们提交表格时的内容。这是我的3个脚本 inde
define("HOSTNAME", "localhost");
define("USERNAME", "root");
define("PASSWORD", "");
define("DB_NAME", "testdatabase");
$retrieve = new mysqli(HOSTNAME, USERNAME, PASSWORD, DB_NAME);
$query = "SELECT * FROM entries ORDER BY EntryID DESC";
$rs = $retrieve->query($query);
if (!$rs){
echo($retrieve->error);
} else {
$array = $rs->fetch_array(MYSQL_ASSOC);
while($array = $rs->fetch_array(MYSQL_ASSOC)){
echo("<div class='panel panel-default'>
<p>" . $array['EntryContent'] . "</p>
</div>");
}
}
newentry.php表单,此页面上没有php代码
<form method='post' action='addentry.php'>
<textarea name='EntryContent' class='styled'></textarea>
<span class='pull-right'>
<input type='reset' class='btn btn-default'/>
<input type='submit' class='btn btn-primary'/>
</span>
</form>
php处理表单并将其添加到数据库中
<?php
$EntryContent = htmlentities($_POST['EntryContent']);
define("HOSTNAME", "localhost");
define("USERNAME", "root");
define("PASSWORD", "");
define("DB_NAME", "testdatabase");
$connection = new mysqli(HOSTNAME, USERNAME, PASSWORD, DB_NAME);
$sql = "INSERT INTO entries VALUES(null, \"$EntryContent\")";
if ($connection->query($sql) == true){
header("Location: index.php");
} else {
echo("Error connecting to database.<br>" . $connection->error);
}
?>
我认为这段代码为您带来了问题
$array = $rs->fetch_array(MYSQL_ASSOC); // Remove this line
while($array = $rs->fetch_array(MYSQL_ASSOC)){
}
因此,将其更改为“仅”
while($array = $rs->fetch_array(MYSQL_ASSOC)){
}
因为当您调用fetch_数组方法时,它将获取第一条记录。因此,当您再次调用while循环中的方法时,它将仅从第二条记录开始 我认为这段代码为您带来了问题
$array = $rs->fetch_array(MYSQL_ASSOC); // Remove this line
while($array = $rs->fetch_array(MYSQL_ASSOC)){
}
因此,将其更改为“仅”
while($array = $rs->fetch_array(MYSQL_ASSOC)){
}
因为当您调用fetch_数组方法时,它将获取第一条记录。因此,当您再次调用while循环中的方法时,它将仅从第二条记录开始