0

これがコードです...

<?php
    $query = mysql_query("SELECT * FROM subjects");
    while($fetch = mysql_fetch_array($query)){
    echo "<li>" .  $fetch["menu_name"] . "</li>";   
        echo "<ul>";
        $query = mysql_query("SELECT * FROM pages WHERE subject_id = {$fetch["id"]}");
        while($fetch = mysql_fetch_array($query)){
        echo "<li>" .  $fetch["menu_name"] . "</li>";}
        echo "</ul>";
    }?>

問題は、1つの「件名」とその下の残りの「ページ」を取得することです...

すべての件名とその下のすべてのページを取得したい

あなたが私を理解してくれることを願っています 事前にありがとう FarrisFahad

4

3 に答える 3

1

変数を再利用して上書きしてい$queryます。内側のwhileループが結果セットをループした後は、外側のループがループすることはありませんwhile

2番目の$query変数の名前を別の名前に変更します。

于 2012-04-20T00:00:29.397 に答える
1

表示したいものを含めてください。

データを表示する正しい方法は次のとおりです。

<?php 
$query = "SELECT * FROM subjects";
$result = mysql_query($query);
while($row= mysql_fetch_assoc($result)):
?>
     <ul>
        <!-- field_name is the field name of the table you want to display-->
        <li><?php echo $row['field_name']?></li>
        <li><?php echo $row['field_name2']?></li>
        <li><?php echo $row['field_name3']?></li>
     </ul>
<?php endwhile; ?>

また、2 つのクエリが必要な場合、もう一方のクエリの名前は他とは異なる必要があるため、上記のコードがあり、別のクエリが必要な場合は、次のようなコードを作成します。

<?php 
$query2 = "SELECT * FROM pages WHERE subject_id = '$row['id']'";
$result2 = mysql_query($query2);
while($row2 = mysql_fetch_assoc($result2)):
?>
    <!-- code for fetching of data here -->
<?php endwhile; ?>
于 2012-04-20T00:47:16.633 に答える
0

私は間違っているかもしれません。$queryただし、両方の mysql クエリに変数を使用している可能性があります。などの別の変数を使用してみてください$query1。または、内側の変数に別の便利な名前を付けてください。

于 2012-04-20T00:01:36.493 に答える