2011-01-16 12 views
0

私はfacebookのようなアルバムビューアを作っています。facebookのようなアルバムビューアを作る

私は「セットアップ」を行っています。写真を見ることができます。そのアルバムはどのようなものなので、今度は「次の」「前の」ボタンを作ってみたいと思います。

私は電流を見ながらプリロードを使って見ました。そのようなことを達成したいと思います。

しかしまず第一に、私はどのように「次へ」を作ることができますか? 「次の」仕事をするための手続きは何ですか?

これは私がどのようにコード化すればいいのかということなので、次にどのピクチャがあるのか​​分かりますか?私は日付(日付順)からソートしたいので、次の日付は現在の日付よりも新しいもので、前の日付は現在の日付より古いものでなければなりません。

私のデータベースには、次のようになります。

album 
id uID title 

album_photos 
id aID uID photo date 

AIDは、アルバム(アルバムID)のIDを保持して、UIDは、ユーザ(ユーザID)のIDを保持しています。

また、javascriptも使用したいと考えています。ページ全体をリフレッシュするのではなく、ajaxリクエストを作成します。

だから、私の質問は:

私は、どのようにjavascriptのように見えるん、それは日付DESC後に動作させるために希望の場合は、次/前のボタンを作成する手順は、何ですか? file.phpへのajaxリクエスト。データベースから最新のイメージを取得しています。そして成功すれば、現在の写真を置き換えて表示しますか?アドレスバーについては、フェイスブックではアドレスバーの変更が新しい写真の読み込みと一致します。

これを作る手順のための任意のよく説明答えは、あなたが日付DESCであなたの写真を並べ替えしていて、次の操作を行い、現在の写真の日付を持っている場合の答え

+0

近い – Karem

答えて

0

を受け入れます:

  • を見つけるには次の写真:日付DESCで写真を注文し、日付が現在の写真の日付よりも小さい最初の写真を選択します。最初のものだけを取り出します。
  • 前の写真を検索するには:写真を日付ASCで注文し、日付が現在の写真の日付よりも大きい最初の写真を選択します。最初のものだけを取り出します。

このためのSQL文を自分で作成します。

+0

はいに投票ありがとうなぜ!どのように動作する必要がありますか? – Karem

1

ここでは、ajax(次/前)を使用してデータベースから画像を読み込みます。ガイドとプリローダーも含まれています(http://www.preloaders.net/)。ご質問がある場合はお知らせください。

ここに行きます。これらは、画像だけで

  • show.php ...ロード画像
  • のためのデータベースを読む... 3つのファイル

    1. のindex.php ...表示ページ
    2. ajax.phpですホスト、ユーザ、パスワード&のajaxにdatabasenameを設定することを忘れないでください。PHP


      コピー&は、これらを貼り付けます。
      1. index.phpの

      <?php 
      include("ajax.php"); 
      ?> 
      
      
      
      <script type="text/javascript" src="JQUERY/jquery.js"></script> 
      <script> 
      var ID = "<?php echo $id; ?>"; 
      var inc = ID + 1; 
      var dec = ID; 
      var totalpages = "<?php echo $totalpages + 1; ?>"; 
      
      $(function(){ 
          $('.loader').hide(); 
      
          <!-- np = next & prev button functions --> 
          $('.np').click(function() { 
      
           if($(this).attr('id') == "next") { 
      
            $(this).attr('push', inc++); 
            if($(this).attr('push')<totalpages) {    
             $.ajax({url:"show.php", data:"id=" + $(this).attr('push'), success: AjaxFunc, cache:false }); 
             $('.loader').show();    
             dec = inc - 2; 
             $('#images').hide(); 
            } 
           } 
      
      
           else if($(this).attr('id') == "prev") { 
      
            $(this).attr('push', dec--);   
            if($(this).attr('push')>-1) { 
      
             $.ajax({url:"show.php", data:"id=" + $(this).attr('push'), success: AjaxFunc, cache:false }); 
             $('.loader').show(); 
             inc = dec + 2; 
             $('#images').hide(); 
            } 
           } 
      
      
      
          }); 
      }); 
      
      <!-- this function is called after ajax send its request --> 
      function AjaxFunc(return_value) { 
          $('#images').html(return_value); 
          $('.loader').hide(); 
          $('#images').show(); 
      } 
      
      </script> 
      
      <div id="images"> 
      
          <!-- loads default numbers of images. whats inside here will change once you click next or prev --> 
          <?php 
           for($i=$id * $limit; $i<$limit + $id * $limit; $i++) { 
            echo $imagearray[$i]."<br/>"; 
           } 
          ?> 
      </div> 
      
      
      <!-- next & previous buttons --> 
      <a class="np" id="prev" push="<?php echo $id; ?>" href="#">Prev</a> 
      <a class="np" id="next" push="<?php echo $id + 1; ?>" href="#">Next</a> 
      
      
      <!-- preloader. hidden on start. will show while images load --> 
      <img class="loader" src="http://www.preloaders.net/generator.php?image=75&speed=5&fore_color=000000&back_color=FFFFFF&size=64x64&transparency=0&reverse=0&orig_colors=0&uncacher=26.066433149389923"/> 
      



      2. ajax.php

      <?php 
      
      //id is tjhe page number. it is 0 by default. while clicking next/prev, this will not change. set it like this: file?id=0 
      $id = $_GET['id']; 
      
      //connect to the databsae 
      $host="localhost"; 
      $user = "username"; 
      $password = ""; 
      $database = "database_name"; 
      $connect = mysql_connect($host, $user, $password) or die("MySQL Connection Failed"); 
      mysql_select_db($database) or die ("Database Connection Fail"); 
      
      //set your the limit of images to be displayed 
      $limit = 5; 
      
      //push images into array 
      $q = mysql_query("SELECT * FROM image_table"); 
      $num = mysql_num_rows($q); 
      while($r = mysql_fetch_array($q)) { 
          $imagearray[] = "<img src='" 
              .$r['IMAGE_URL'] 
              ."'/>"; 
      } 
      
      //will determine total number of pages based on the limit you set 
      $totalpages = ceil($num/$limit) - 1; 
      ?> 
      



      3. show.php

      <?php 
      include("ajax.php"); 
      for($i=$id * $limit; $i<$limit + $id * $limit; $i++) { 
          echo $imagearray[$i]."<br/>"; 
      } 
      ?> 
      
    関連する問題