4

ロジックに関して混乱しています。最初に検証したいフォームであり、次にデータベースに保存し、別のページに表示したいと考えています。

私はそれを検証し(フォームを同じページに転送(つまりフォームアクション))、データベースに保存しました。そして今、別のページにデータを表示しようとしています。

私が考えたことは、データをデータベースに保存し、一意の値を別のページに転送することです。おそらく、同じフォームに関連するデータベースによって自動生成された何らかの数値です。

今、私はそれを行う方法に問題がありますか? アイデアはありますか?

これはロジックなので、php、MySQL、および JS にタグを付けています。

4

3 に答える 3

2

このような操作を実行したら、mysql_insert_id()を呼び出します。INSERT

$lastInsertedId =  mysql_insert_id(); # Assuming you have an auto increment column in your table.
header('Location: view.php?id='.$lastInsertedId);

view.phpget the id & fetch record で表示するよりも、

$id = $_GET['id'];

:新しいコードでは関数を使用しないでくださいmysql_*。それらはもはや保守されておらず、公式に非推奨です赤いボックスが見えますか? 代わりに準備済みステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事は、どちらを決定するのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

于 2013-03-12T08:04:49.043 に答える
1

使うmysql_insert_id()のは方法です。しかし、データベースにクエリを実行したくないが、まだそれを持っている場合は、この方法で実行できます。以下に例を示します

<form name="frm" method="POST" action="display.php">
 <input type="text" name="your_name" value="" />
 <input type="text" name="age" value="" />
 <input type="submit" name="save" value="Save" />
</form>

これで、display.phpページに

<?php
 // DO YOUR DATABASE CONNECTIVITY
 $name = $_POST['your_name'];
 $age = $_POST['age'];

 $query = "insert into table_name values('$name','$age')";
 if(mysql_query($insert)) {

?>
<table>
 <tr>
  <td>Name</td>
  <td>Age</td>
 </tr>
 <tr>
  <td><?php echo $name;?></td>
  <td><?php echo $age;?></td>
 </tr>
</table>
<?php } else { echo "No Insertion"; } ?>

mysql_* 関数は減価償却されていることに注意してください。だからそれらを避けてください。SQLインジェクションもチェック

于 2013-03-12T08:29:24.050 に答える