祝你好! `SELECT`变得困惑

时间:2014-10-20 04:54:13

标签: php mysql foreach

疲倦而且变得密集。我试图围绕两个简单的数据库查询嵌套foreach语句。

<?php

try {
    $sql ="SELECT id FROM transmission WHERE person_id = 1;";
    $result = $pdo->query($sql);
    echo "stop <br>";
} catch (PDOException $e) {
    $output = 'Error getting messages ready  etc';
} //END CATCH 

foreach ($result as $row) {
    $id_transmission = $row['id'];  

    try {
        echo "Start <br>";
        $sql ='SELECT day FROM day_schedule WHERE :val ORDER BY FIELD(day, "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");';

        $s = $pdo->prepare($sql);
        $s->bindValue(':val',$id_transmission);
        $result2=$s->execute();
    } catch (PDOException $e) {
        $output = 'Error getting etc';
    }

    foreach ($result2 as $row){
        $id_day = $row['day'];  
        echo "<br><BR>Day id is  $id_day ";
    } //END FOR EACH
} //END FOR EACH
?>

我只是想从第一个选择(1,4和9)中获取值并在第二个选择中使用它们(第一个选择将使用准备BTW)。

我总是因阵列而脑子冻结。有人可以用冷鱼打我的头部。谢谢

编辑:解决方案如果我只是将$result2=$s->execute();替换为$s->execute(); $result2=$s;完全符合我的要求。见下文了解更多。谢谢大家。

2 个答案:

答案 0 :(得分:0)

改变它:

$result = $pdo->query($sql);

为:

$result = $pdo->query($sql)->fetchAll();

在result2中:

$result2=$s->execute();

为:

$s->execute();
$result2=$s->fetchAll(); //or ->fetch() if You want get one row
$s->closeCursor();

答案 1 :(得分:0)

如果我只是替换     $result2=$s->execute();  通过     $s->execute();
    $result2=$s; 完全符合我的要求。请参阅@trzyM的评论 - 以获得更多答案。 谢谢大家。