【问题标题】:Generate a mysql query for each item in an array为数组中的每个项目生成一个mysql查询
【发布时间】:2023-04-06 13:53:01
【问题描述】:

我有一个包含 3 个值的数组。这三个值会根据用户帐户而变化(用于通过他们的 id 引用恢复问题)。

当他们使用电子邮件地址提交表单时,系统会对其进行检查,如果存在,则会获取存储在不同数据库中的 3 个恢复问题 ID 以及来自其帐户的 3 个答案。

然后它将信息存储到一个数组中,如下所示:

<?php
    $questions = Array($question1id, $question2id, $question3id);
?>

我怎样才能为这个查询的数组创建一个foreach()

Select * FROM recovery_questions WHERE rid='$val'

并为每个问题返回它并将它们存储在单独的变量中,例如 $cleanquestion1$cleanquestion2$cleanquestion3

每次我尝试都会覆盖最后一个值,这让我很沮丧。谢谢

【问题讨论】:

  • 为什么不发出 1 条声明 Select * FROM recovery_questions WHERE rid in ($question1id,$question2id,$question3ID) order by rid 以便您在 1 通话中获得所有 3 合一通话?
  • 这似乎可行,但我该如何分别称呼它们呢?我不经常捆绑我的查询,这就是我问的原因。我想象它类似于 $row[0]、$row[1] 等?
  • 假设使用 PDO,这里有一个示例链接:stackoverflow.com/questions/1756743/…

标签: php mysql arrays


【解决方案1】:
<?php
$a = 1;
$questions = Array($question1id, $question2id, $question3id);
foreach ($questions as $v){
    $sel = "Select * FROM recovery_questions WHERE rid='$v'";
    $stmt = $db->query($sel);
    while($r = $stmt->fetch()){
          $qvar = "cleanquestion".$a;
          $qqvar = $<<results>>
    }
    $a++;
 }
 ?>

用从 db 返回的任何结果替换结果。

然后

  echo $cleanquestion1

无论 question1id 是什么结果都会产生结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多