Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 而在另一个里面_Php_Mysql - Fatal编程技术网

Php 而在另一个里面

Php 而在另一个里面,php,mysql,Php,Mysql,.我有以下代码。我想知道为什么我的“回显”.$update_date2..$status.;”没有显示在屏幕上 .可以在另一个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'];

.我有以下代码。我想知道为什么我的“
回显”.$update_date2.

.$status.
”没有显示在屏幕上

.可以在另一个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>";
}
?>


.我在这套代码中哪里做错了。有人能给我指路吗。蒂亚!更多的力量!:)

您是否从
SELECT*from it\u task\u update WHERE update\u id=$id
获得任何结果

试着做

print\r($rows1);第$update_date2行之前=$rows1['update_date'];
并查看结果。

$updatesquery=“选择*从it\u任务\u更新,其中更新\u id=$id”;
$updatesquery = "SELECT * FROM it_task_update WHERE update_id=$id";
     <---dude, where's my query?
while($rows1 = mysql_fetch_assoc($updatesquery));

您试图在处理查询时从从未执行的查询中检索结果。请注意,在开始遍历结果之前调用了mysql\u query。然后请注意,您尝试从内部while循环中从未执行过的查询中获取结果。

是的,在另一个循环中使用while或其他类型的循环是可以的,因为这取决于您的业务逻辑。但是,您忘记了在while循环之前执行第二个查询。如果您使用
内部联接
或其他方法来实现这一点会更好,这样您就不会浪费资源

另外,我建议您不要用echo打印DOM元素,而是像下面这样将它们打印出来
Username:
。然而,即使在您的情况下,也有保持代码干净的地方。以下是我的建议:

<?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语句不应在逻辑点以分号结尾。请检查上面的代码,以查看我在何处为您放置了注释。

内部while后面有一个分号

while($rows1 = mysql_fetch_assoc($updatesquery));
{
 // stuff
}
应该是

while($rows1 = mysql_fetch_assoc($updatesquery))
{
 // stuff
}

.谢谢你提供的信息。:)。谢谢我没注意到。。我真是太蠢了,反正我试着把它改成
$updatesquery=mysql\u query(“SELECT*FROM it\u task\u update WHERE update\u id=$id”)仍然没有变化。将查询分离成一个字符串,这样您就可以查看它(例如,
$sql=“select…”;$updatesquery=mysql\u query($sql);
,然后尝试手动运行其中一些,看看是否有任何变化。您还需要使用
if($updatesquery==false){die(mysql\u error())检查错误
在调用mysql\u query()后立即执行..我尝试使用if语句检查错误,但没有显示错误。如果没有任何结果,请打印“SELECT*FROM it\u task\u update WHERE update\u id=$id”;并在数据库客户端或phpmyadmin中检查查询。我尝试在phpmyadmin中运行查询并给出结果。如果在phpmyadmin中给出结果,则此查询是正确的。为查询字符串添加mysql_query()并打印($rows1);在while中。哇!你有一个鹰眼!谢谢!它成功了!哈哈!