2016-12-18 6 views
0

私はすでにアップロードされた画像(タイトル、サイズ、カテゴリなど)をギャラリーに読み込む作業スクリプトを作成しました。 https://i.stack.imgur.com/RWASu.jpgMYSQL/PHP/JQUERY - イメージギャラリーのブロブ、問題の解決方法

問題は、ランダムIDの画像をロードしました。右/左にスライドさせた後にそのような画像がさらに表示されますが、IDで表示させたいのですがNEXT IDである他のものを、同じまたはランダムではなく、どのように私はそれを動作させることができますか?ここで

は、これまでのスクリプトです:

<?php 
$result = mysql_query("SELECT id, rozmiar, technika, kategoria, image_time, title FROM {$table} ORDER BY RAND() LIMIT 1"); 
if (mysql_num_rows($result) == 0) 
    echo '<ul><li>Nie wgrano żadnych plików.</li>'; 
else 
{ 
    echo '<ul>'; 
    while(list($id, $rozmiar, $technika, $kategoria, $image_time, $title) = mysql_fetch_row($result)) 
    { 
     echo "<div class='image-frame left-image'>"; 
     echo "<a href='".$_SERVER['PHP_SELF']."?show=$id' data-lightbox='galeria' data-title='{$title}, {$technika} | {$rozmiar}'><img width='450' src='".$_SERVER['PHP_SELF']."?show=$id'></a>"; 
     echo "<div class='description'><p>{$technika}, {$rozmiar}</p></div></div>"; 
    } 

    echo '</ul>'; 
} 
?> 
     <?php 
$result = mysql_query("SELECT id, rozmiar, technika, kategoria, image_time, title FROM {$table} ORDER BY RAND() LIMIT 1"); 
if (mysql_num_rows($result) == 0) 
    echo '<ul><li>Nie wgrano żadnych plików.</li>'; 
else 
{ 
    echo '<ul>'; 
    while(list($id, $rozmiar, $technika, $kategoria, $image_time, $title) = mysql_fetch_row($result)) 
    { 
     echo "<div class='image-frame right-image'>"; 
     echo "<a href='".$_SERVER['PHP_SELF']."?show=$id' data-lightbox='galeria' data-title='{$title}, {$technika} | {$rozmiar}'><img width='450' src='".$_SERVER['PHP_SELF']."?show=$id'></a>"; 
     echo "<div class='description'><p>{$technika}, {$rozmiar}</p></div></div>"; 
    } 

    echo '</ul>'; 
} 
?> 

IDを昇順で画像を複数のブロックをロードするでしょう私は1つのスクリプトにそれを行うことができる方法上の任意のアイデアは、? すべての提案に感謝します。

+0

検索した画像にどのようにクラスを適用する予定ですか?つまり、一方は「左画像」、それ以外は「右画像」となるでしょうか? –

+0

私はLeftブロックとRightブロックを表示します。それらはID#1とID#2の画像を表示しますが、右にスライドするオプションがあるので、左はID#3、右ID#4になります。私はブロックを自動的にギャラリーの他の部分を表示する設定に問題があります。私は変数を作る方法があると思っていました。それはCSSにも入れられ、各ブロックはユニークで自動化されます。 –

+0

多分、2つのブロックから辞めて、さらにいくつかの画像が追加されたときに水平方向に拡大するものを作るべきですか? –

答えて

0

溶液は次のようになり:

  • このような、任意ORDER BY又はLIMIT句なしでテーブルからすべての行を取得:

    SELECT id, rozmiar, technika, kategoria, image_time, title FROM {$table} 
    
  • 取り出される行の数の合計数と

    $rowCount = mysql_num_rows($result); 
    $resultArray = array(); 
    
  • のように空の $resultArray配列を作成します。結果セットを介して
  • ループと、このように、$resultArrayアレイに行を追加:$resultArrayアレイからランダムに一つの行を選択し、この$resultArrayアレイからに円形アレイ・ロジックを実装する

    while($row = mysql_fetch_array($result)){ 
        $resultArray[] = $row; 
    } 
    
  • 使用rand()機能あなたの望ましい結果を達成するため、次のように:

    $i = $randValue = rand(0, $rowCount - 1); 
    do{ 
        list($id, $rozmiar, $technika, $kategoria, $image_time, $title) = $resultArray[$i]; 
        echo "<div class='image-frame'>"; 
        echo "<a href='".$_SERVER['PHP_SELF']."?show=$id' data-lightbox='galeria' data-title='{$title}, {$technika} | {$rozmiar}'><img width='450' src='".$_SERVER['PHP_SELF']."?show=$id'></a>"; 
        echo "<div class='description'><p>{$technika}, {$rozmiar}</p></div></div>"; 
        $i = ++$i % $rowCount; 
    }while($i != $randValue); 
    

ここで完全なコード、

です
$result = mysql_query("SELECT id, rozmiar, technika, kategoria, image_time, title FROM {$table}"); 

$rowCount = mysql_num_rows($result); 
$resultArray = array(); 
while($row = mysql_fetch_array($result)){ 
    $resultArray[] = $row; 
} 

$i = $randValue = rand(0, $rowCount - 1); 
do{ 
    list($id, $rozmiar, $technika, $kategoria, $image_time, $title) = $resultArray[$i]; 
    echo "<div class='image-frame'>"; 
    echo "<a href='".$_SERVER['PHP_SELF']."?show=$id' data-lightbox='galeria' data-title='{$title}, {$technika} | {$rozmiar}'><img width='450' src='".$_SERVER['PHP_SELF']."?show=$id'></a>"; 
    echo "<div class='description'><p>{$technika}, {$rozmiar}</p></div></div>"; 
    $i = ++$i % $rowCount; 
}while($i != $randValue); 

追記:mysql_*機能を使用しないでください、彼らは、PHP 5.5で廃止されており、PHP 7.0で完全に削除されます。代わりにmysqliまたはpdoを使用してください。 And this is why you shouldn't use mysql_* functions

+0

今のところ私は左画像と右画像を方程式の外に保ちました。これらの 'class'値を組み込むための要件に従ってコードを微調整することができます。 –

+0

うわー、それはまさに私が意味するものです! –

+0

ありがとうございます、先生、解決策とそれが部分的にどのように機能するかを説明するために、今私にとって完璧に機能します。とても感謝しています! –

関連する問題