[SQL ] 兩個有關係的SQL語法迴圈問題
程式碼如下:
$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