0

我已经弄清楚如何显示提交到 mysql 的信息,但我还没有弄清楚如何将过去的信息保留在那里。它将在顶部显示当前帖子并在每次提交新信息时继续添加,但一次仅显示 10 个帖子。我希望我能很好地解释这一点。

如何去做这件事,我完全迷失了。我已经连接到数据库和一切,现在我要:

echo $hit, $amount, $category;

并卡住了。那是显示提交的信息,但是当我提交新信息时,该信息会更改并且过去的信息消失了。我的问题是,我将如何让过去的信息保留下来并让新信息建立在过去的信息之上?

谢谢。

编辑:这里有更多代码。另外,有人告诉我mysqli。我只是还没有改变它。

if(!$link){
    die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link); 

if(!$db_selected){
    die('can not use' . DB_NAME . ': ' . mysql_error());
}
$hit = $_POST['hit'];
$amount = $_POST['amount'];
$category = $_POST['category'];



$sql = "INSERT into hit (hit, amount, category) VALUES ('$hit', '$amount', '$category')";
$result = mysql_query($sql);

if(!mysql_query($sql)){
    die('Error: ' . mysql_Error());
}
 echo $hit, $amount, $category;

mysql_close();
?>
4

2 回答 2

0

在您的代码中,您绝不会从数据库中获取数据。您只是将表单中的数据提交到 mysql,并同时显示它。

您可以通过执行以下操作从 mysql 获取数据:

$data = mysql_query("SELECT hit, amount, category FROM hit");
// Adding MYSQL_ASSOC as a second argument tells mysql_fetch_array that
// we want an associative array (we can refer to fields by their name, not just by number)
while($row = mysql_fetch_array($data, MYSQL_ASSOC)) {
    echo '<p>'
    .'Hit: ' . $row['hit']
    .', Amount: ' . $row['amount']
    .', Category: ' . $row['category']
    .'</p>';
}

请记住,这只是一个简化的版本,还需要更多的工作,尤其是在安全方面。我可能应该htmlentities()在这里使用,具体取决于数据。如果数据直接来自用户,那么您绝对应该防止 SQL 注入。

于 2013-04-29T16:11:09.727 回答
0

在插入 sql 之后,您需要执行选择查询以从数据库中检索所有行,因为您只回显当前设置的值。

您还需要注意 sql 注入,因为您添加到数据库中的值不会以任何方式进行清理。为此,请使用诸如 mysql_real_esape_string 或 htmlentities 之类的命令。

在回显结果的行之前...

 echo $hit, $amount, $category;

您需要将 select 查询与 while 循环和 mysql_fetch_array 或 mysql_fetch_assoc 命令相结合,以从数据库中输出行。第一个检查是查看记录是否正在添加到表中。

于 2013-04-29T16:04:22.450 回答