0

こんにちは、結果をループアウトしようとすると、同じ変数が何度もループアウトされるというクエリを作成しました。これは無限ループではなく、データのために、正しい回数ループしたかどうかを判断するのは非常に困難です。私がやろうとしているのは: start_cycle_uid (start_cycle テーブルから) が同じ customer_home id と渡された同じ start_date を持つ customers テーブルからすべての個別の customer_uid を選択することです。したがって、各顧客の 1 つを取得します。その開始日にその customer_home に属します。私が得るのは、同じcustomer_uidのリストです。私の論理は間違っていますか?

$homeQuery=$DB->prepare("select distinct customer_uid from customers
                            where start_cycle_uid =
                                (select uid from start_cycles
                                    where customer_home_uid=".$DB->quote_smart($_REQUEST['homeid'])."
                                    and start=".$DB->quote_smart($_REQUEST['start']).")");

$homeResult=$DB->query($homeQuery);
$homeRow=$DB->fetchArray($homeResult);  
if ($DB->numRows($homeResult) > 0) {
    for ($x=0; $x<=$DB->numRows($homeResult); $x++){
        echo $homeRow['customer_uid']."<br />";
    }
}

更新: 現在のコードは次のようになります。

$homeQuery=$DB->prepare("select distinct customer_uid from customers
                                where start_cycle_uid =
                                    (select uid from start_cycles
                                        where customer_home_uid=".$DB->quote_smart($_REQUEST['homeid'])."
                                        and start=".$DB->quote_smart($_REQUEST['start']).")");

    $homeResult=$DB->query($homeQuery);
    while($row = $DB->fetchArray($homeResult))
    {
       echo $row['customer_uid']."<br />";
    }

これは現在、無限ループに陥っています。

4

2 に答える 2