Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Galeria - uno problemo
Forum PHP.pl > Forum > Przedszkole
lukash82
Witam. Mam takie pytanko. Robię sobie taka prostą galerię ale stanąłem w jednym miejscu i nie mogę znaleźć błędu... A więc mam bazę danych, a w niej listę zdjęć i każde przynależy do jakiejś kategorii. Mam zapytanie do bazy aby wyciągnął mi wszytskie kategorie bez powtórzeń, to jest ok. Mam katalog z miniaturkami a w nim foldery ze zdjęciami, które nazywają się tak samo jak dana kategoria... I teraz chciałbym uzyskać taki efekt, że automatycznie wybierają mi się zdjęcia po jednym losowym z każdego katalogu. Kod wygląda tak:
  1. <?php
  2. $zapytanie = "SELECT DISTINCT kategoria FROM galeria";
  3. $wynik=mysql_query($zapytanie);
  4.  
  5. $n=0;
  6.            
  7. while ($row = mysql_fetch_array($wynik))
  8. {  
  9.    extract($row);
  10.    $katalog = 'mini/' . $row['kategoria'];
  11.                            
  12.    if(@$d = opendir($katalog))
  13.    {
  14.        while (!(($plik = readdir($d)) === false))
  15.        {
  16.            if(stristr($plik, '.jpg') or stristr($plik, '.jpeg'))
  17.            {
  18.                $n++;
  19.                $losowy_obr[$n] = "$plik";
  20.            }
  21.        }
  22.        closedir($d);
  23.    
  24.        if(!empty($losowy_obr))
  25.        {
  26.            $losowa_poz = array_rand($losowy_obr);                                          
  27.            echo "<img src=" . $katalog . "/" . $losowy_obr[$losowa_poz] . "><br>";
  28.        }
  29.        else
  30.        {
  31.            echo 'Brak zdjęć';
  32.        }
  33.    }
  34. else echo 'Błąd';
  35. }
  36. ?>

Kod jest zapożyczony ale musiałem trochę go dostosować do swoich potrzeb. A więc katalog z miniaturkami nazywa się "mini". Nie wiem dlaczego polecenie opendir otwiera mi tylko tak jakby katalog mini i z niego wczytuje wszystkie obrazki do tablicy nie zwracając uwagi na to, że zdjęcia podzielone są na katalogi a tak mu sugeruje w zmiennej $katalog. Okazuje się potem, że zdjęcie wylosowane z tablicy w losowych przypadkach nie znajdują się w tych katalogach, z których chcę je wyświetlić. Jak zrobić aby polecenie opendir "zaglądało" tylko do danego podfolderu i tak jakby z jego zawartości robiło tablicę? Jeśli możecie coś podpowiedzieć to będę wdzięczny. Pozdrawiam, Łukasz.
lukaszgolder
A czy zmienna katalog nie powinna wyglądać tak:
  1. <?php
  2.  $katalog = 'mini/' . $row['kategoria'] . '/';
  3. ?>
lukash82
Witam. Logicznie rzecz biorąc tak powinien ten zapis wyglądać ale niestety nie wiem czemu to nie działa...:/ Dlatego nie wiem zbytnio jak to ugryźć i gdzie jest błąd...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.