submitメソッドを使用してBookという名前のMySQLテーブルに本の詳細を送信するための単純なHTMLフォームといくつかのphp変数があります。clcodeは自動インクリメントフィールドです。
$isbn =$_POST["isbn"];
$bno =$_POST["b_no"];
$bname =$_POST["b_name"];
$qty =$_POST["qty"];
$price =$_POST["price"];
そして、数量に応じてレコードを挿入する必要があります。例:-qty = 2の場合、挿入クエリを2回実行する必要があります(自動インクリメントclcodeを使用して2つの同じレコードを挿入する必要があります)。qty = 5の場合、挿入クエリを5回実行する必要があります(自動インクリメントclcodeを使用して5つの同じレコードを挿入する必要があります)など...ストアドプロシージャと次のSQLクエリを使用して実行しました。
$query ="CREATE PROCEDURE myproc()
BEGIN
DECLARE i int DEFAULT 0;
DO
INSERT INTO book (isbn, b_no, b_name, qty, price) VALUES ('$isbn', '$bno', '$bname', '$qty', '$price');
SET i = i + 1;
WHILE i < $qty;
END WHILE;
END";
$result = mysql_query($query) or die ( mysql_error());
ただし、構文エラーが返されます。何が悪いのか理解できません。pls。誰でも私を助けることができます...?Tnx。
要件を満たす手順を作成することは意味がありません。
最初の実行で機能したが、プロシージャがすでに存在するため、createプロシージャは次の実行でエラーを表示するとします。
挿入クエリを何度も実行するか、複数の値を使用して挿入クエリを作成して1回実行するだけです。これがあなたがすべきだと私が思うことです。
1.for($i=0;$i< $qty;$i++){ $sql = "INSERT INTO table_name (field1,field2,fieldn) VALUES ('field-val1','field-val2','field-valn')"; $result = mysql_query($sql) or die ( mysql_error()); }
またはアプローチ2
$sql = "INSERT INTO table_name (field1,field2,fieldn) VALUES";
for($i=0;$i< $qty;$i++){
$sql .= "('val1','val2','valn')";
if($i < ($qty -1 )){
$sql .=",";
}
}
$ result = mysql_query($ sql)またはdie(mysql_error());
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加