約 11 人の出席を取るフォームを作成しました。データベースに毎日の出席を挿入する必要があります。従業員ごとに 11 の異なるクエリを記述するのではなく、1 つのクエリを使用してすべての従業員の出席を一度に挿入したいと考えています。私のテーブル構造は次のようになります:attendance(date,eid,ename,attendance) 一括挿入のために次のコードを試しましたが、うまくいきませんでした。助言がありますか??
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbname = "gail";
$conn = mysql_connect($dbhost, $dbuser,"") or die ('Error connecting to mysql');
mysql_select_db($dbname);
$dbh->beginTransaction();
$stmt = $dbh->prepare("INSERT INTO attendance VALUES (curdate(),'$_POST[eid]','$_POST[ename]','$_POST[pora]')");
foreach($valuesToInsert as $insertRow)
{
// now loop through each inner array to match binded values
foreach($insertRow as $column => value)
{
$stmt->bindParam(":{$column}", value);
$stmt->execute();
}
}
$dbh->commit();
?>
私もこれを試しました:
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbname = "gail";
$conn = mysql_connect($dbhost, $dbuser,"") or die ('Error connecting to mysql');
mysql_select_db($dbname);
$employees=array();
while($row=mysql_fetch_assoc($result))
{
$employees[$row["eid"]]=array("ename"=>$row["ename"]);
$employees[$row["eid"]][$row["dated"]]=array();
$employees[$row["eid"]][$row["dated"]][$row["ename"]]=$row["pora"];
$inserts = array();
foreach($employees as $v)
{
$inserts[] = "(curdate(),'$_POST[eid]','$POST[ename]','$POST[pora]')";
$query = "INSERT INTO attendance VALUES ". implode(", ", $inserts);
echo "query = $query"; // for debugging purposes, remove this once it is working
mysql_query($query) or die(mysql_error());
}
}
?>
しかし、これはテーブルに現在の日付を何度も挿入するだけです。助けてください。よろしくお願いします:)
私はこれをもう1つやりました。必要な行数とまったく同じ数の行をデータベースに挿入しますが、すべて空白です。それに対処する方法についてのアイデアはありますか?
html ファイル:
ビームラインIDの流れ
ビームラインIDの
流れ
ビームラインIDの流れ
ビームラインIDの流れ
ビームラインIDの流れ
php:
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbname = "gail";
$conn = mysql_connect($dbhost, $dbuser,"") or die ('Error connecting to mysql');
mysql_select_db($dbname);
$cnt = count($_POST['bline_id']);
$cnt2 = count($_POST['flow']);
if ($cnt > 0 && $cnt == $cnt2) {
$insertArr = array();
for ($i=0; $i<$cnt; $i++) {
$insertArr[] = "('" . mysql_real_escape_string($_POST['bline_id'][$i]) . "', '" . mysql_real_escape_string($_POST['flow'][$i]) . "')";
}
$query = "INSERT INTO bltest (bline_id, flow) VALUES " . implode(", ", $insertArr);
mysql_query($query) or trigger_error("Insert failed: " . mysql_error());
}
echo("<pre>\n");
print_r($_POST);
echo("</pre>\n");
mysql_close($conn);
?>