我有多个 FAQ 字段(问题和答案)并且必须将它们插入到 MySQL 数据库中。我正在使用 PDO。
HTML:
<input type="text" name="qns[]/>
<textarea name="ans[]"></textarea><br>
PHP
$qns=$_POST['qns'];
$ans=$_POST['ans'];
date_default_timezone_set('Asia/Kathmandu');
$created= date('m/d/Y h:i:s a', time());
foreach ($qns as $q){
foreach ($ans as $a){
$stmt=$pdo->prepare("INSERT INTO tbl_faq
(faq_qn, faq_ans, faq_creator, faq_created, faq_updated)
VALUES
(?,?,?,?,?)");
$stmt->bindValue(1, $q);
$stmt->bindValue(2, $a);
$stmt->bindValue(3, $_SESSION['id']);
$stmt->bindValue(4, $created);
$stmt->bindValue(5, $created);
$stmt->execute();
}
}
header("location:dashboard.php?page=faq/view.php");
当我将它插入数据库时,它会产生笛卡尔积。我知道循环出了点问题。但不知道如何修复它..
答案 0 :(得分:3)
只使用一个循环并在$ans[]
中传递问题循环的索引
foreach ($qns as $key => $q)
{
$stmt = $pdo->prepare("INSERT INTO tbl_faq
(faq_qn, faq_ans, faq_creator, faq_created, faq_updated)
VALUES
(?,?,?,?,?)");
$stmt->bindValue(1, $q);
$stmt->bindValue(2, $ans[$key]);
$stmt->bindValue(3, $_SESSION['id']);
$stmt->bindValue(4, $created);
$stmt->bindValue(5, $created);
$stmt->execute();
}