2012-01-06 15 views
0

私は順序PHPの問題

$qry2 = "SELECT * FROM bx_photos_main 
     WHERE Categories='Articles' 
     ORDER BY Title ASC"; 

$qryr2 = mysql_query($qry2) or die("Error selecting: ".mysql_error()); 

while($qryrow2 = mysql_fetch_array($qryr2)) { 
    $photo_book_id = $qryrow2['ID']; 

    $a = array ('ID' => $aAuthor['ID'], 'Avatar' => $photo_book_id); 

    $aMedia_book_icon = BxDolService::call('photos', 'get_image', array($a, 'file'), 'Search'); 

    $aMedia_book_iconUrl = $aMedia_book_icon['file']; 

    //if($media_book_id == $photo_book_id) {   
      $sRet .='<a class="fancybox" rel="gallery" href="'.$aMedia_book_iconUrl.'" title=""><img src="'.$aMedia_book_iconUrl.'"></a>'; 
    // } 
} 

すべてはできるだけ早く1は、上記のコメントのように、私は、結果のチェックを入れて正常に動作しますが、して画像を取得し、それらを表示するには、このコードを使用していますif($media_book_id == $photo_book_id) {私は完全に注文を失う。

なぜですか?どうしましたか?なぜ私はPHP文を使用して結果の順序を失うのですか?この問題をどうやって解決するのですか?ここでは何が起こる

おかげ

+0

違いがわかるように、返されるものと返されたものを表示できますか? –

+0

私はあなたにビールを賭けるでしょう。データの順序はこのチェックによって変更されません。 *いくつかのレコードがこれ以上追加されないことがあります。 –

+0

$ media_book_idはどこで定義されていますか? @Pekka終わった人はウォッカだけを飲んだと思った? (あなたがあなたの名前で終わったと仮定して)。 –

答えて

0

は、あなたのif文が原因文自体のあなたの行の一部を取り除くことです。これらの2つの変数が等しくないときは、現在の行の情報が$sRet変数に追加されません。あなたは何ができるか

$sRet .='<a class="fancybox" rel="gallery" href="'.$aMedia_book_iconUrl.'" title=""> 
<img src="'.$aMedia_book_iconUrl.'"></a>'; 

は、それらが等しくないときに表示するためにあなたのif文にelseを追加することです。あなたのifステートメントは、次のようなものになります。

if($media_book_id == $photo_book_id) {   
    $sRet .='<a class="fancybox" rel="gallery" href="'.$aMedia_book_iconUrl.'" title=""> 
      <img src="'.$aMedia_book_iconUrl.'"></a>'; 
} else { 
    echo "Error - Media_book_id: $media_book_id. Photo_book_id: $photo_book_id"; 
}