0


PHPコーディングについてお聞きしたい..
配列コーディングを行っていますが、データを送信すると、データベースの「説明」および「数量」列に配列が表示されます..
私はmysqlを使用しています..以下私の配列コーディングです..

$item = array(
'item_description' => '',
'price' => '',
'qty' => '',
'amount' => '',
);
foreach ($item as $key => $value){
$item_description = $_POST['item_description'][$key];
$price = $_POST['price'][$key];
$qty = $_POST['qty'][$key];
$amount = $_POST['amount'][$key];}
}

これは私の挿入クエリです。

$sql1="INSERT INTO payment_item (payment_id, payment_item_id, item_description, price, qty, amount)
VALUES
('$last_insert_payment_id','NULL','$_POST[item_description]','$_POST[price]','$_POST[qty]','$_POST[amount]')";

これは私のフォームです:

<form>
<h1>Payment Item</h1>
Payment ID :<input id="payment_id" name="payment_id" type="text"><br>
<input type="button" value="Add Row" onClick="addRow('tableID')"/>
<input type="button" value="Delete Row" onClick="deleteRow('tableID')"/>
<table class="table" bgcolor="#CCCCCC">
<thead>
<tr>
<td></td>
<td><center>Item Description</center></td>
<td><center>Price (RM)</center></td>
<td><center>Month</center></td>
<td><center>Amount (RM)</center></td>
</tr>
</thead>
<tbody id="tableID">
<tr>
<td><input type="checkbox" name="chk"></td>
<td>
<select name="item_description">
    <option value="deposit">Deposit</option>
    <option value="rental">Rental</option>
    <option value="stamp">Stamp Duty</option>
    <option value="process">Process Fee</option>
    <option value="ap">AP</option>
</select>
</td>
<td><input id="price" name="price" type="text"></td>
<td><input id="month" name="qty" type="text"></td>
<td><input id="amount" name="amount" type="text"></td>
</tr>
</tbody>
</table>
<input name="submit" type="submit" value="Submit">
<input name="reset" type="reset" value="Reset">
</form>

英語が下手で申し訳ありません..
しかし、これについて誰かの助けが本当に必要です..
ありがとう..

4

2 に答える 2

1

PHP が配列を文字列としてキャストしようとすると、「配列」という単語が表示されます。
したがって、Array何らかの方法で処理する必要があるため、フィールドが表示され、アプリケーションロジックに依存し、必要な配列を適切な文字列に変換します。

ただし、質問はmysqlとは関係ありません。

また、SQL 文字列をフォーマットする必要があることも覚えておいてください。せめてそうしろよ

$var = mysql_real_escape_string($var);

クエリに入力するすべての変数に対して、クエリで一重引用符で囲みます。

于 2012-05-07T08:39:38.797 に答える
0

$_POST に何が含まれているかわかりません。しかし、私はあなたがこれを必要とすると思います

<?php 
$item = array(
   'item_description' => '',
   'price' => '',
   'qty' => '',
   'amount' => '',
);
foreach ($item as $key => &$value)
{
    $value = $_POST[$key];
}
?>

EDIT:フォームメソッドを指定する必要があります

<form method="post">

そして最後にINSERTクエリを

$sql1="INSERT INTO payment_item (payment_id, payment_item_id, item_description, price,qty, amount) VALUES ('$last_insert_payment_id','NULL','$item[item_description]','$item[price]','$item[qty]','$item[amount]')";
于 2012-05-07T07:42:23.660 に答える