0

誰かの友達全員を表示するアコーディオン(twitter bootstrap)を作成しようとしていますが、最終的には無限ループを作成するだけです。基本的には、結果の各行にphp文字列をエコーアウトするだけです。

誰かが私が愚かなことをしているのを見つけることができますか(mysqliを使用しないことを除いて)?

    while ( $rowresult = mysql_fetch_assoc(mysql_query("SELECT * FROM friends WHERE id='".$user["ID"]."' ")) ) {
        $auto = "0px";
        echo '<div class="accordion-group"><div class="accordion-heading"><div class="accordion-heading">';
        echo '<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapse'. $counter . '">';       
        echo $rowresult['firstname'];
        echo ' ';
        echo $rowresult['lastname'];
        echo ', ';
        echo $rowresult['headline'];
        echo '</a></div> <div id="collapse'. $counter .'" class="accordion-body ';
        if ($counter == 0){
        echo 'in ';
        $auto = "auto";
        }
        echo 'collapse" style="height: '. $auto .'; "><div class="accordion-inner">';
        echo '<img src="'.$rowresult["pictureUrl"].'">';        
        echo '</div></div></div></div>';    
        $counter++;
    }
4

3 に答える 3

2

同じクエリを何度も実行しているため、機能しません。
代わりにそれを行います:

$res = mysql_query("SELECT * FROM friends WHERE id='".$user["ID"]."'");
while ( $rowresult = mysql_fetch_assoc($res) ) {
....
}

また、 MySQLiまたはPDOを使用することをお勧めします。

于 2012-09-04T01:01:15.443 に答える
1

反復ごとにクエリを繰り返しています。mysql_query() をループから変数に移動します。

$q = mysql_query("SELECT * FROM friends WHERE id='".$user["ID"]."' ");
while ($rowresult = mysql_fetch_assoc($q)) {
    // ...
}
于 2012-09-04T00:58:32.087 に答える
0

while ループの前にクエリを配置します。IE

 $q=mysql_query("SELECT * FROM friends WHERE id='".$user["ID"]."' ");
 while ( $rowresult = mysql_fetch_array($q)) { 

...

しかし、もちろんPDOを使用してください... :)

于 2012-09-04T00:59:39.657 に答える