带有while循环的SQL请求然后在while循环中再次发出SQL请求

时间:2014-04-08 12:52:09

标签: php sql

我用php做了一个SQL请求,一切正常,但是当我在while循环中执行SQL请求时,我只得到第一个'kenmerk'的1个结果。

// Per kenmerk
$query = "SELECT kenmerk FROM kenmerken WHERE user_id = ".$user."";
$result = mysqli_query($conn, $query);
while($row = mysqli_fetch_assoc($result))
{
    $query = "SELECT gezette_vruchten, uitgroeiduur FROM gewasregistratie WHERE user_id = ".$user." AND kenmerk = '".$row["kenmerk"]."'";
    $result = mysqli_query($conn, $query);

    $week = 1;
    while($row = mysqli_fetch_assoc($result)) // Eerst van week 1 tot 52 de gezette_vruchten een lege waarde meegeven om zo te voorkomen dat ze niet gedefieneerd zijn.
    {
        echo ${'gezette_vruchten_week_'.$week}  = $row["gezette_vruchten"];
        echo ${'uitgroeiduur_week_'.$week}      = $row["uitgroeiduur"];

        $week++;
    }
}

第一个查询在数据库中有2个'kenmerk'结果:'standaard'和'natugro' 例如,第二个查询在每个'kenmerk'的数据库中有52个结果。 “gezette_vruchten”和“kenmerk”'标准'有52周,'gezette_vruchten'和'kenmerk''natugro'也有52周。所以我想要'kenmerk'这一周的结果现在都在。

我希望你能理解这个

1 个答案:

答案 0 :(得分:3)

更改while循环的名称..

while($row2 = mysqli_fetch_assoc($result)) // Eerst van week 1 tot 52 de gezette_vruchten een lege waarde meegeven om zo te voorkomen dat ze niet gedefieneerd zijn.
{
    echo ${'gezette_vruchten_week_'.$week}  = $row2["gezette_vruchten"];
    echo ${'uitgroeiduur_week_'.$week}      = $row2["uitgroeiduur"];

    $week++;
}

因为你的两个while循环的变量名是相同的...所以我认为它是comflict。所以改变while循环的变量名之一。