我将从mysql自动更新信息。如何将过去的信息与提交到数据库中的新信息一起显示?

时间:2013-04-29 15:38:08

标签: php mysql ajax database auto-update

我已经想出如何显示提交到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();
?>

2 个答案:

答案 0 :(得分:0)

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

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

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

 echo $hit, $amount, $category;

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

答案 1 :(得分: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注入。