Галерея для изображений

Discussion in 'PHP' started by maxdjab, 17 Feb 2012.

  1. maxdjab

    maxdjab New Member

    Joined:
    7 Nov 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Галерея для изображений. Берет все изображения из папки /walp.
    Автоматически считает все картинки в папке и постранично выводит их уменьшенные копии ( по 4 на странице ). При нажатии на мини - картинку, кидает на оригинал.
    НО на всех страницах выводит только первые 4 картинки
    Подскажите как исправить?


    PHP:
            $dir opendir ("./walp");
               
    $count_f 0;
                while ( 
    $file readdir ($dir))
                 {
                  if (( 
    $file != ".") && ($file != ".."))
                 { 
    $count_f $count_f 1; }
                   
    $walp[$count_f] = $file;
                 }
              
    closedir ($dir);

               
    //  Выводим картинки в зависимоти от страницы

              
    if ($p $count_f/4)
             {
              for (
    $i = ($p*3); $i <= ($p*4); $i++)
              {
                print (
    "<a href = ./walp/$walp[$i]><img src = ./walp/$walp[$i] width=400></a><br><br><hr width = 80%><br>");
              }
                  print (
    "<br><br>");
             }
              if ( 
    $p >= $count_f/4)
              {
              for (
    $i = ($p*3); $i <= $count_f$i++)
              {
                print (
    "<a href = ./walp/$walp[$i]><img src = ./walp/$walp[$i] width=400></a><br><br><hr width = 80%><br>");
              }
                  print (
    "<br><br>");
               }
               
    //  Выводим список страниц

                  
    print ("<br><br>");
                  
    $pp $p 1;
                  print (
    "pages :");
                  if (
    $p 1) { print ("<a href = ?p=$pp> <<prev..</a>"); }
                  print (
    "<a href = ?p=1>1</a>");
                  for (
    $i 2$i <= ($count_f/4); $i++)
                  { print (
    "..<a href = ?p=$i>$i</a>"); }
                  
    $count_fn $count_f/4;
                  if ((
    $i 1)*$count_f)
                  { print (
    "..<a href = ?p=$i>$i</a>"); }
                  
    $pn $p 1;
                  if (
    $p $count_f/4) { print ("<a href= ?p=$pn>..next>></a></a>"); }
                  print (
    "<br><hr width = 80%>");
     
  2. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    PHP:
    <?php

    $page_count 
    "5"//Количество картинок на странице

    if(is_numeric($_GET['page'])){
    $page $_GET['page'];
    }else{
    $page=1;}
    $finish $page $page_count;
    $start $finish $page_count 1;
    $finish $page $page_count 1;
    $dirs scandir("walp/");
    if(empty(
    $dirs[2])){echo "Нету картинок";exit;}
    foreach(
    $dirs as $d){
    if(
    $d != "." && $d != ".."){
    $res[]=$d;
    }
    }
    #####################
    for($i=$start;$i<$finish;$i){
    $it=$i++ - 1;
    if(empty(
    $res[$it])){break;}
    echo 
    "<img src=/walp/".$res[$it]."><br>";
    }
    #####################
    if(ceil(count($res) / $page_count)>"1"){
    for(
    $i=0;$i<ceil(count($res) / $page_count);$i){
    $p=$i++ + 1;
    echo 
    "<a href=?page=$p$p </a>";
    }
    }

    ?>
     
  3. maxdjab

    maxdjab New Member

    Joined:
    7 Nov 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    ваш код тоже выводит на всех страницах первые 5 картинок с папки где 50картинок)
     
  4. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    <?php

    $ImagesPerPage 
    6;
    $ImagesFolder 'walp';

    $Images array_diff(scandir(dirname(__FILE__).'/'.$ImagesFolder), 
                         array(
    '..''.'));
    $ImagesCount count($Images);

    $PagesCount ceil($ImagesCount/$ImagesPerPage);
    $PageCurrent = (@$_GET['page'] != 0) ? ((int)$_GET['page']) : 1;

    for(
    $i 1$i <= $PagesCount$i++)
        echo 
    " <a href='?page=$i'>$i</a> ";
        
    echo 
    '<br />';

    $From $PageCurrent $ImagesPerPage $ImagesPerPage 2;

    for(
    $i 0$i $ImagesPerPage$i++)
    {
        if(!isset(
    $Images[$From $i]))
            break;
        echo 
    '<img src=\'./'.$ImagesFolder.'/'.$Images[$From $i].'\' />';
    }
     
  5. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Количество картинок на странице задается в переменной $page_count, и у меня мой код работает отлично.
    Тоесть у тебя при перемотке страниц показываются всегда одни и те же картинки, или как?
     
  6. maxdjab

    maxdjab New Member

    Joined:
    7 Nov 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    да первые 5 на всех страницах
     
  7. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Мой код, и код Chaak у меня работают правильно.
    У меня нету никаких предположений кроме как почистить кэш.