PHPを使ってmysqlテーブルに複数の行を挿入したいと思います。データは配列になっており、次のコードを使用しようとしていますが、動作しません。私を助けてください。PHP配列をMySQLテーブルに個々の行として挿入します。
クエリ文字列は次のとおりです。
for ($i=1;$i=$rowcount;$i++)
は、これはおそらく次のようになります:
new_document.php?doctype=Inv&paytype=u&docno=3&bookno=31&prname=40329&pename=1001&paydate=07%2F22%2F2011&indate=7%2F30%2F2011&accname1=Man+Site&DrAmount1=20&CrAmount1=1&accname2=Man+Site&DrAmount2=0&CrAmount2=5&ref=Jul%2F2011
これは乱暴に安全ではないという事実を無視して
$rows = explode("&", $_SERVER['QUERY_STRING']);
$rowcount =((count($rows)-9)/3); // Count set of rows received , 9 is the costant no of inputs
$serialno = array();
$acc_name = array();
$debit = array();
$credit = array();
$serialno [] = $i;
array_unshift($serialno,"");
unset($serialno[0]);
$acc_name[] = ($_GET['accname'.$i]);
array_unshift($acc_name,"");
unset($acc_name[0]);
$debit[] = ($_GET['DrAmount'.$i]);
array_unshift($debit,"");
unset($debit[0]);
$credit[] = ($_GET['CrAmount'.$i]);
array_unshift($credit,"");
unset($credit[0]);
echo 'Serial Numbers : '.print_r($serialno);
echo '<br>A/C Names : '.print_r($acc_name);
echo '<br>Debit Amount : '.print_r($debit);
echo '<br>Credit Amount : '.print_r($credit);
This gives me following result :
ARRAY
(
[1] => 1
[2] => 2
)
SERIAL NUMBERS : 1ARRAY
(
[1] => MAN SITE
[2] => MAN SITE
)
A/C NAMES : 1ARRAY
(
[1] => 20
[2] => 0
)
DEBIT AMOUNT : 1ARRAY
(
[1] => 1
[2] => 5
)
CREDIT AMOUNT : 1
for ($i=1;$i=$rowcount;$i++)
{
$amount = ($debit[$i]-$credit[$i]);
$accname=$acc_name[$i];
$insert2 = "INSERT INTO `khata2`.`docitems`
(
`dateinput`,
`docno`,
`itemno`,
`accountname`,
`amount`,
`picrefno`,
`updatestamp`)
VALUES (
NOW(''),
'$docno',
'$i',
'$accname',
'$amount',
'$docno',
Null)";
}
if (!mysql_query($insert2)){
echo '<br><a style="color:RED">Zero</a> items saved! Try Again..<br>';
die('Error: ' . mysql_error());
break;
}
echo '<br><a style="color:GREEN">'.$rowcount.' </a>record inserted.';
exit();
RESULTS AS :
Fatal error: Maximum execution time of 30 seconds exceeded in F:\server\htdocs\xampp\Khata2\processor\new_document.php on line 184 (Line 184 is '$amount',)
返信いただきありがとうございます。現在は動作していますが、配列の最後の値を挿入するだけです。すべてのアイデア私は間違って何をしていますか?乾杯(痛みを伴っています)また、私が望む結果を得るために使用できるその他のものは何ですか? – user837168
PHPは最初の配列をスキップしている可能性があります。なぜなら、PHPは配列が0ではなく1から始まるためです。したがって、forループを0から開始するように変更してください。 – evan