作者Snow2112 (Snow)
看板Database
标题[SQL ] 两个有关系的SQL语法回圈问题
时间Thu Aug 11 17:20:56 2011
程式码如下:
$sql="SELECT * FROM discuss WHERE dt_r IS NULL";
$result=mysqli_query($link,$sql);
echo "<table border=1>";
while($row1=mysqli_fetch_array($result,MYSQLI_BOTH)){ //第一个SQL
$dt[]=$row1["dt"];
echo "<tr><td>".$row1["dt"]."</td>";
echo "<td>".$row1["id"]."</td>";
echo "<td>".$row1["dis_title"]."</td>";
echo "<td>".$row1["dis_content"]."</td></tr>";
for($i=0;$i<=count($dt);$i++){
$sql1="SELECT * FROM discuss WHERE dt_r IS NOT NULL AND id_r
IS NOT NULL AND dt_r='$dt[$i]'"; //第二个SQL
^^^^^^^^^^^^^^^
(这里必需用到第一个SQL的$row1["dt"])
$result1=mysqli_query($link,$sql1);
while($row2=mysqli_fetch_array($result1,MYSQLI_BOTH)){
echo "<tr><td>".$row2["dt"]."</td>";
echo "<td>".$row2["id"]."</td>";
echo "<td>".$row2["dis_title"]."</td>";
echo "<td>".$row2["dis_content"]."</td></tr>";
}
}
}
echo "</table>";
这个程式执行後它会先印出第一个SQL的所有笔资料再印出第二个SQL的所有笔资料。
我的问题是,我想要取得第一个SQL的$row1["dt"]值,然後把每一个值给第二个SQL语
法使用,但是$dt[$i]抓到的值都是第一个SQL的最後一个值,其前面的值似乎都被覆
盖掉了,以至於第二个SQL只会抓到(假设i最大为10)$dt[10]的值,$dt[0]~$dt[9]都
抓不到,我应该怎麽改才会是先印出第一个SQL的第一笔资料再印出第二个SQL的所有
笔资料?然後再印出第一个SQL的第二笔资料和第二个SQL的所有资料?以此类推。
SQL语法使用while回圈时是不是跟一般php用while不太一样阿?
(如果表达不清楚我再修正,麻烦各位了。)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.254.155.24