これはAJAXの初心者です。ですから、私は在庫管理システムをphpmyadminとwampでビルドしています。登録/ログインシステムは素晴らしいです。ユーザーがログインすると、現在のユーザーがアイテムをチェックインまたはチェックアウトすることを可能にする各インベントリアイテムの横にあるボタンとともに、すべてのインベントリのテーブルが画面上に生成されます。ボタンはすべて生成され、私はそれらにPHPを使用して一意のIDを与え、コードはこのように見えます。PHPで在庫を更新するためのボタンを生成する
<table class = "table">
<thead>
<tr>
<td><center><strong>Item Id</strong></center> </td>
<td><center><strong>Item Description</strong></center> </td>
<td><center><strong>Item Type</strong> </center></td>
<td><center><strong>Availability</strong></center></td>
<td><center><strong>Name</strong></center></td>
<td><center><strong>Check in/out button</strong></center></td>
</tr>
</thead>
<tbody>
<?php
mysql_select_db('inventory management system');
$query="SELECT * FROM inventory";
$results = mysql_query($query);
$a = 0;
while($row = mysql_fetch_array($results)) {
$a++;
echo '<script type = "text/javascript">c++;</script>'
?>
<tr>
<td><center><?php echo $row['item_id']?></center></td>
<td><center><?php echo $row['item_desc']?></center></td>
<td><center><?php echo $row['item_type']?></center></td>
<td><center><?php echo $row['availability_status']?></center></td>
<td><center><?php echo $row['name']?></center></td>
<td><center><?php
if(is_null($row['name'])){
//this is what is generating each button with a unique id echo '<input class="btn btn-default" type="submit" value="Check Out" id = "<?php echo $a; ?>" onclick="<?php ?>">';
}else if(!is_null($row['name'])){
echo '<input class="btn btn-default" type="submit" value="Check In" id = "<?php echo $a; ?>" onclick="updateinventory()">';
}
?></center></td>
</tr>
<?php
}
?>
</tbody>
</table>
は今、ユーザーがボタンをクリックすると、それは誰もアイテムは、他のユーザーがログインして中のアイテムをチェックアウトすることができ、その方法をチェックアウトしていないことを意味するnullに名前フィールドを設定するためのデータベースを更新します在庫。私は本当に苦労していますし、何らかの理由で私が働くことができなかったクリックメソッドから、AjaxやPHPでたくさんのことを試してきました...そして、私は一見単純な機能を働かせません...ありがとう可能な限り助けてください。
あなたは、PHPの初心者だと言っています。 ** mysql_ *関数を使わないよう強く**お願いします。 2年以上前から廃止されています。私はあなたのアプリケーションがSQLインジェクションに広く開かれているなら、驚くことはありません。つまり、ユーザーはすべてを非常に簡単に(意図的にまたは間違って)破ることができます。あなたのデータベースを完全に消去することは言うまでもありません。 Prepared Statementsを使用しているMySQLiまたはPDOは、これらの日に進む方法です。 – icecub
@icecub yeaはあなたの目に見えるよりもずっと多くのコードを作成します。私はSQLインジェクションが複数のものになるのを防ぐためにすべての措置を取ってきました。私はトリム、ストリップタグ、およびPHPのhtmlspecialcharsメソッドを使用して、可能なSQLインジェクションを処理しました。正直、ちょうど私が数年前にphpとsqlを教えていたものです。しかし、私は最近までそれに夢中になったことはありませんでしたので、私はすべての新しいものに慣れています:3 – lionetti12345
それらはあなたを完全に保護しません。したがって、彼らはphp7以降の 'mysql_ *'関数を削除したのです。だから、あなたが持っているものを十分に快適に感じても、あなたがサーバーを更新するだけでなく、ただちに機能しなくなるので、コード全体を書き直す必要があります。開始からちょうど良いこともあります:) – icecub