同时停留在另一个内部

问题描述

| 我有以下代码。我想知道为什么我的“
echo \'<font color=\"#FF0000\">\'.$update_date2.\'</font><br><br>\'.$status.\'<br>\';
”没有显示在屏幕上? 。可以在另一个while语句中使用while语句吗?如下面的代码所示。
<?PHP
$getquery = MysqL_query(\"SELECT * FROM it_task ORDER BY task_id DESC\");
while ($rows = MysqL_fetch_array($getquery))
{
    $id= $rows[\'task_id\'];
    $date=$rows[\'date\'];
    $update_date = $rows[\'update_date\'];
    $project=$rows[\'project\'];
    $topic=$rows[\'topic\'];
    $instby=$rows[\'instby\'];
    $inst=$rows[\'inst\'];
    $dline=$rows[\'dline\'];
    $ocome=$rows[\'ocome\'];
    $comm=$rows[\'comm\'];
    $fin=$rows[\'fin\'];
    echo \"<div id=\\\"container\\\">\";
    echo \"<table>\";
    echo \"<tr>\";
    echo \"<div id=\\\"conid\\\">$id</div>\";
    echo \"<div id=\\\"condate\\\">$date</div>\";
    echo \"<div id=\\\"conproject\\\">$project</div>\";
    echo \"<div id=\\\"contask\\\">$topic</div>\";
    echo \"<div id=\\\"conselect\\\">$instby</div>\";
    echo \"<div id=\\\"conselect1\\\">$inst</div>\";
    echo \"<div id=\\\"condline\\\">$dline</div>\";
    echo \"<div id=\\\"conocome\\\">\";
    $updatesquery = \"SELECT * FROM it_task_update WHERE update_id=$id\";
    while($rows1 = MysqL_fetch_array($updatesquery));
    {
        $update_date2 = $rows1[\'update_date\'];
        $status = $rows1[\'ocome\'];
        $update_id = $rows1[\'update_id\'];
        echo \'<font color=\"#FF0000\">\'.$update_date2.\'</font><br><br>\'.$status.\'<br>\';
    }
    echo \"</div>\";
    echo \"<div id=\\\"concomm\\\">$comm</div>\";
    echo \"<div id=\\\"confin\\\">$fin</div>\";
    echo \"</tr>\";
    echo \"</table>\";
    echo \"</div>\";
}
?>
在这代码中做错了什么。谁能指导我。 TIA!更大的力量! :)     

解决方法

        你在里面的时候后面有一个分号
while($rows1 = mysql_fetch_assoc($updatesquery));
{
 // stuff
}
应该
while($rows1 = mysql_fetch_assoc($updatesquery))
{
 // stuff
}
    ,        
$updatesquery = \"SELECT * FROM it_task_update WHERE update_id=$id\";
     <---dude,where\'s my query?
while($rows1 = mysql_fetch_assoc($updatesquery));
您实际上并没有执行查询。您正在尝试对字符串执行抓取,这是MySQL中的错误情况,导致抓取调用返回FALSE,这使得while()循环立即终止。 换句话说,您在这些行之间缺少对
mysql_query()
的呼叫。 另外要注意的是,如果要执行内循环“多次”,则应将两个查询作为一个单独的查询使用JOIN子句进行检索。几乎总是在执行单个大型查询然后运行多个较小的查询之后。     ,        您有ѭ6results的结果吗? 尝试做
print_r($rows1); before line $update_date2 = $rows1[\'update_date\'];
并查看结果。     ,        您正试图从从未执行过的查询中检索处理查询的结果。请注意,在开始循环搜索结果之前,您已调用mysql_query。然后注意,您尝试从从未在内部while循环内执行的查询开始获取结果。     ,        是的,在另一个循环中有一段时间或另一种循环是可以的,因为这取决于您的业务逻辑。但是,您忘记了在while循环之前执行第二个查询。如果用8英镑之类的东西来做,那会更好,这样就不会浪费资源。 另外,我建议您不要打印出带有echo的DOM元素,而应像这样“ 9”将它们放置在那里。但是,即使您遇到这种情况,也有地方可以保持代码干净。这是我的建议:
<?php
$getquery = mysql_query(\"SELECT * FROM it_task ORDER BY task_id DESC\");
while ($rows = mysql_fetch_array($getquery))
{
    $id= $rows[\'task_id\'];
    $date=$rows[\'date\'];
    $update_date = $rows[\'update_date\'];
    $project=$rows[\'project\'];
    $topic=$rows[\'topic\'];
    $instby=$rows[\'instby\'];
    $inst=$rows[\'inst\'];
    $dline=$rows[\'dline\'];
    $ocome=$rows[\'ocome\'];
    $comm=$rows[\'comm\'];
    $fin=$rows[\'fin\'];
    echo \'<div id=\"container\\\">\'.
            \'<table>\'.
                \'<tr>\'.
                    \"<div id=\\\"conid\\\">$id</div>\".
                    \"<div id=\\\"condate\\\">$date</div>\".
                    \"<div id=\\\"conproject\\\">$project</div>\".
                    \"<div id=\\\"contask\\\">$topic</div>\".
                    \"<div id=\\\"conselect\\\">$instby</div>\".
                    \"<div id=\\\"conselect1\\\">$inst</div>\".
                    \"<div id=\\\"condline\\\">$dline</div>\".
                    \"<div id=\\\"conocome\\\">\";

    $updatesquery = \"SELECT * FROM it_task_update WHERE update_id=$id\";
    // you need to execute the query
    $updatesresult = mysql_query($updatesquery);
    while($rows1 = mysql_fetch_assoc($updatesresult)) // <-- no semicolon here
    {
        $update_date2 = $rows1[\'update_date\'];
        $status = $rows1[\'ocome\'];
        $update_id = $rows1[\'update_id\'];
        echo \'<font color=\"#FF0000\">\'.$update_date2.\'</font><br><br>\'.$status.\'<br>\';
    }
    echo            \'</div>\'.
                    \"<div id=\\\"concomm\\\">$comm</div>\".
                    \"<div id=\\\"confin\\\">$fin</div>\".
                \'</tr>\'.
            \'</table>\'.
        \'</div>\';
}
?>
更新资料 您的内部while语句不应在逻辑点处以分号终止。请检查上面的代码,以查看我为您发表评论的位置。