Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc przy galeri php/mysql
Forum PHP.pl > Forum > PHP
MrDove
Kod
$zapytanie="SELECT * FROM foty where login='$login'";
$wynik = $lacz->query($zapytanie);
while($dane = $wynik -> fetch_assoc()){
$id_zdj=$dane['id_zdj'];
$plik=$dane['plik'];
$koment_zdj=$dane['koment_zdj'];
$calosc=$dane['calosc'];
set_time_limit(10);

$katalog ='graf/'.$calosc;
echo"$katalog";
if (!$katalog) die ('Wystąpił bład podczas otwierania folderu');
$roz_graficzne = array('.jpg', '.jpeg', '.gif', '.bmp');
while($pliki = $katalog)
{
  if ($pliki != '.' && $pliki != '..')
  {
    $rozszerzenie = strtolower(strrchr($pliki, "."));
    if(in_array($rozszerzenie, $roz_graficzne))
    $lista[] = $pliki;
  }
}

$id = $_GET['id'];

if (!$id) $id=0;
if ($id < 0 )
    $id = count($lista)-1;
if ($id >= count($lista))
    $id = 0;


echo '<P ALIGN="CENTER">'.$lista[$id].'</P><br /><br />';
if ($lista[$id])
    echo '<P ALIGN="CENTER"><a href="index.php?id='.($id+1).'"><img src="images/'.$lista[$id].'"WIDTH="600" HEIGHT="480"></a></P><br/>';
}


skrypt działa gdy pobiera obrazki bezpośrednio z katalogu, z bazy już nie chce. Może mi ktoś powiedzieć gdzie robię błąd ?

komunikat który się pokazuje to:
echo"$katalog";
Cytat
graf/27041322000


Kod
Fatal error: Maximum execution time of 10 seconds exceeded in D:\WebServ\httpd-users\new\galeria.php on line 87

linia 87:
if ($pliki != '.' && $pliki != '..')
nospor
Co wg ciebie robi ta linijka
while($pliki = $katalog)
?
MrDove
pętla z warunkiem przypisania do $pliki ścieżki do pliku
nospor
No dobrze.... a co wg. ciebie robi warunek $pliki = $katalog ? Zastanów się dobrze zanim odpowiesz. Naprawdę nie zadaje tego pytania bo ja nie wiem, ale zadaję to pytanie bo ty nie wiesz wink.gif
MrDove
tyle ile plików będzie w katalogu tyle razy wykona się instrukcja ?
nospor
No ale przecież $katalog się nie zmienia.... pętla while więc krąży w nieskonczonosc. Naprawde tego nie widzisz??

A jesli chciales czytac katalog, czyli pliki z niego, to przecież ma być readdir itp.
MrDove
coś takiego ?
Kod
$katalog =opendir('graf/');
echo"$katalog";
}
if (!$katalog) die ('Wystąpił bład podczas otwierania folderu');
$roz_graficzne = array('.jpg', '.jpeg', '.gif', '.bmp');
while(($pliki = readdir($katalog)) !== false)




teraz testując tą galerie zauważyłem problem... z folderu pobierane są wszystkie foty, a ja chce tylko widzieć foty zalogowanego użytkownika..

jak dodać do tego zmienna $calosc, żeby nie wyskakiwały warningi..?
Kod
$katalog =opendir('graf/');


pomoże ktoś ?
nospor
normalnie:
opendir('graf/'.$calosc);
A jesli nadal ci bledy wyskakują to albo coś jest nie tak z $calosc albo z katalogiem graf/$calosc. Sprawdź.
MrDove
jak wpisze tak
Kod
echo'<img src="graf/'.$calosc.'"WIDTH="600" HEIGHT="480">';

to zdjecia sie wyswietlaja.

a jak jest tak:
Kod
$katalog =opendir('graf/'.$calosc);
}
if (!$katalog) die ('Wystąpił bład podczas otwierania folderu');
$roz_graficzne = array('.jpg', '.jpeg', '.gif', '.bmp');
while(($pliki = readdir($katalog)) !== false)
{
  if ($pliki != '.' && $pliki != '..')
  {
    $rozszerzenie = strtolower(strrchr($pliki, "."));
    if(in_array($rozszerzenie, $roz_graficzne))
    $lista[] = $pliki;
  }
}

$id = $_GET['id'];

if (!$id) $id=0;
if ($id < 0 )
    $id = count($lista)-1;
if ($id >= count($lista))
    $id = 0;


echo '<P ALIGN="CENTER">'.$lista[$id].'</P><br /><br />';
if ($lista[$id])
    echo '<P ALIGN="CENTER"><a href="index.php?id='.($id+1).'"><img src="graf/'.$lista[$id].'"WIDTH="600" HEIGHT="480"></a></P><br/>';


to wyskakuje cos takiego:
Cytat
Warning: opendir(graf/34755211000) [function.opendir]: failed to open dir: No error in C:\Program Files\WebServ\httpd-users\new\galeria.php on line 81

Warning: opendir(graf/30262320000) [function.opendir]: failed to open dir: No error in C:\Program Files\WebServ\httpd-users\new\galeria.php on line 81

Warning: opendir(graf/21465020000) [function.opendir]: failed to open dir: No error in C:\Program Files\WebServ\httpd-users\new\galeria.php on line 81

Warning: opendir(graf/92735310100) [function.opendir]: failed to open dir: No error in C:\Program Files\WebServ\httpd-users\new\galeria.php on line 81
Wystąpił bład podczas otwierania folderu
nospor
No ale myśl troche.... skoro graf/'.$calosc jest zdjęciem to jakim cudem ty chcesz na tym wykonać operację opendir? opendir operuje na katalogach a nie na plikach.
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.