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中。哇!你有一个鹰眼!谢谢!它成功了!哈哈!