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 に答える