Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Skrypt wyświetlania obrazków
Forum PHP.pl > Forum > Przedszkole
mareck
Witam jestem tu nowy tak jak w php,na wstępie: szukałem i nie znalazłem sad.gif ale do zeczy potrzebuje skrypt który wyświetlałby linki do obrazków a po kliknięciu w któryś w odpowiednim miejscu wyświelał dany obrazek a po kliknięciu w kolejny link wyświetlał w tym samym miejscu odpowiedni gif tych linków na dzień dzisiejszy może być10-20 ale w przyszłości będzie ich na pewno więcej dla was to pewnie bułka z masłem a ja szukałem kombinowałem z include ale nie wychodzi ... dodawałem zmienne ale pokazywały sie tylko jakieś krzaczki.Prosze o jakis punkt zaczepienia zależy mi też aby obyło się bez bazy

pozdrawiam mareck
ebnott
strasznie mętnie to opisales, ale tyle co zrozumialem by bylo tak:

  1. <?php
  2. //nazwa pliku obrazka bez rozszerzenia
  3. $obrazki = Array (
  4.  'nazwa_obrazka1',
  5.  'nazwa_obrazka2',
  6.  'nazwa_obrazka3',
  7. );
  8. //nazwy linkow
  9. $nazwy = Array (
  10.  'link1',
  11.  'link2',
  12.  'link3',
  13.  
  14. );
  15.  
  16. $id = 0;
  17.  
  18. //menu
  19. echo("<div style='float:left;'>")
  20. foreach($obrazki as $obrazek)
  21. {
  22.  echo("<a href='index?obrazek=$obrazek'>$nazwy[$id]</a><br />");
  23.  $id++;
  24. }
  25. echo("</div>");
  26. $gett = $_GET['obrazek'];
  27. echo("<div style='float:right;'><img src='gfx/".$gett.".jpg' alt='' /></div>")
  28. ?>



to z gifem nie zrozumialem - jaki kolejny link?? i gdzie sie ma wyswietlac??


ps. jezeli polskie znaki nie sa wymagane do zrozumienia tekstu to juz interpunkcja tak, wiec lepiej zacznij jej uzywac.
mareck
chyba troszke namieszałem ale byłem strasznie padnięty,więc jeszcze raz, chciałbym aby mniej wiecej wyglądało to tak jak na rysunku, klikam w link 1 wyświetla obrazek 1, link 2 zmienia obrazek 1 na 2 itd.
Gdyby przy wywołaniu strony automatycznie wyswietlał się obrazek z pierwszej pozycji to byłoby idealnie, miejsce na baner narysowałem ale oczywiscie nie jest konieczne.
ebnott dzieki za odpowiedź wstępnie wrzuciłem twój skrypt ale coś mi nie chula sad.gif oczywiście wstawiam linki i nazwy, i nic sad.gif przypominam, że jestem zielony





ponawiam
ebnott
sorry, wczesniej nie sprawdzilem, poza tym glupoty nawypisywalem troche happy.gif
a tu poprawny kod:

  1. <?php
  2. //nazwa pliku obrazka bez rozszerzenia
  3. $obrazki = array (
  4.  'obraz1',
  5.  'obraz2',
  6.  'obraz3',
  7. );
  8. //nazwy linkow
  9. $nazwy = array (
  10.  'obraz1',
  11.  'obraz2',
  12.  'obraz3',
  13.  
  14. );
  15.  
  16. $id = 0;
  17.  
  18. echo("<html><body>");
  19. if(isSet($_GET['obrazek'])) $gett = $_GET['obrazek'];
  20. else $gett = "obraz1";
  21. echo("<img src='".$gett.".jpg' alt='' /><br />");
  22. foreach($obrazki as $obrazek)
  23. {
  24.  echo("<a href='index.php?obrazek=$obrazek'>$nazwy[$id]</a><br />");
  25.  $id++;
  26. }
  27. echo("</body></html>");
  28. ?>


jak czegos nie rozumiesz to pisz
mareck
ebnott to jest to!! działa świetnie tylko że ja jestem strasznie leniwy i kiedy przyjdzie mi wklepywać kilkadziesiąt linków i nazw plików to chyba zwariuje sciana.gif , więc moje pytanie jest następujące, czy jest możliwość aby link oraz dane o obrazku skrypt generował sam automatycznie z tego co czytałem tu i tam trzeba zastosować pętle ale ja sam jestam na dzien dzisiejszy troszke za include, class, id itp zwyczajnie za wysokie progi... jeszcze raz dzięki za ten skrypt thumbsupsmileyanim.gif


Czy zna ktoś sposób aby skrypt sam pobierał nazwe pliku i tworzył do niego link?
ebnott
w pelni dzialajacy skrypt, wyswietla jako linki nazwy plikow,
jesli chcesz sie pozbyc rozszerzenia z nazw mozesz dac substr($entry, 0, -4) //jak w kodzie
pod warunkiem, ze rozszerzenie pliku jest 3 literowe

  1. <?php
  2. if(isSet($_GET['obrazek'])) $gett = $_GET['obrazek'];
  3. else $gett = "domyslny_obrazek.jpg"; // jaki obrazek ma sie wyswietlic na poczatku
  4. echo("<img src='gfx/$gett' alt='' /><br />");
  5. $dir = dir("gfx"); // folder, w ktorym sa grafiki
  6. while($entry = $dir->read()) { echo("<a href='aaa.php?obrazek=$entry'>".substr($entry, 0, -4)."</a><br />"); }
  7. $dir->close();
  8. ?>


nawet krotszy niz poprzedni smile.gif

edit: chcialem tylko zauwazyc, ze wasze skrypty nie zawieraja wszystkiego tego co chcial mareck...winksmiley.jpg
b_chmura
  1. <?php
  2. $katalog = './galeria/';
  3.  
  4. $files = scandir($katalog);
  5. foreach($files as $file)
  6. {
  7. if(!is_dir($file))
  8. {
  9. echo '<a href="'.$katalog.$file.'">'.$file.'</a>'."<br />\n";
  10. }
  11. }
  12. ?>
mrjozo
może lepiej wykorzystać możliwości PHP5....

  1. <?php
  2. foreach (new DirectoryIterator('galeria') as $fileInfo) {
  3. if ($fileInfo->isFile()) {
  4. echo '<a href="'.$fileInfo->getPathname().'">'.$fileInfo->getFilename().'</a>'."<br />\n";
  5. }
  6. }
  7. ?>
mareck
ebnott jest świetnie dodałem do tego ramki wstawiłem w odpowiednie miejsce baner i jest prawie idealnie.Prawie bo wyswietla ciurkiem wszystkie linki jeden pod drugim, więc przydałoby sie stronicowanie ale popracuje nad tym na razie sam, w miare wolnego czasu sad.gif ale to jest bardzo dobre jeszcze raz dzęki pozostałym też dziękuje ale ebnott trafił w sedno

skrypt działa swietnie ale czy jest możliwość dodania do niego stronicowania wyników myslałem ,że dam sobie rade sam na podstawie jakis gotowców ale z każdym następnym coraz mniej z tego rozumie.Próbowałem z manualem "w ręku" ale zdecydowanie więcej przyswajam patrząc na jakiś przykład o ile skrypt przygotowany przez ebnotta (pozdrawiam) juz rozumie o tyle dopisanie do niego stronicowania mnie po prostu przerasta (mam nadzieje ze na razie)
no ale skrypt chciałbym aby wyswietlało 10 wyników na stronie w tej chwili skrypt wyswietla linki do wszystkich plików z danego katalogu co przy powiedzmy 40-50 linkach jest juz troszke nieporęczne

  1. <?php
  2. if(isSet($_GET['obrazek'])) $gett = $_GET['obrazek'];
  3. else $gett = "domyslny_obrazek.jpg"; // jaki obrazek ma sie wyswietlic na poczatku
  4. ");
  5. $dir = dir("gfx"); // folder, w ktorym sa grafiki
  6. while($entry = $dir->read()) { echo("".substr($entry, 0, -4)."
  7. "); }
  8. $dir->close();
  9. ?>
ebnott
to znaczy jak chcesz, zeby to ostatecznie wygladalo? co jest nie tak, bo nie rozumiem do konca o co Ci chodzi
mareck
Wszystko jest ok chodzi tylko o to, że w tej chwili wyświetlają sie linki do wszystkich plików w katalogu i jjeśli jest w nim(katalogu) np 40 plików to pieknie wyświetla mi jeden pod drugim 40 linków.Natomiast chciałbym aby wyswietlało np. 10 linków a pod spodem coś takiego:
<< 1 2 3 4 5 >>
gdzie pod jedynką byłyby linki do plików od 1-10,po kiknięciu w 2 od 11-20 itd. to sie nazywa chyba stronicowanie wyników (tak mi sie wydaje)

ponawiam
b_chmura
dużo na temat stronicowania (paginacji) w internecie, poszukaj, spróbuj sam coś zrobić.

Na pewno będziesz potrzebował pętli for, zliczyć ilość zdjęć, wyliczyć z tego liczbę stron, ustalić liczbę wyświetlanych zdjęć na pojedynczej stronie, czysta matematyka
mareck
tak tylko ,że skrypt nie wyświetla galerii tylko jeden obrazek a pod nim nazwy pozostałych obrazków jako linki. i mi chodzi właśnie o to aby te linki podzielic np po 10,czy do tego też mam wykozystaśc te funkcje które podałeś?
b_chmura
jak najbardziej

wystarczy ze do każdej aktualnej strony będziesz dodawał 5 i odejmował 4 podstrony (oczywiście jeśli nie ma tylu w przód czy w tył to tyle ile jest)
ebnott
wprowadzasz wszystkie adresy do tabeli, dzielisz liczbe kluczy na 10 (masz liczbe stron), sortujesz jakos tabele (alfabetycznie, data modyfikacji jak chcesz), wyswietlasz np. 10 ostatnich kluczy, na dole wyswietlasz przejscia do innych stron... troche maty, troche kodu
mareck
ok, a czy zna ktoś jakiegoś "tutka" na temat tworzenia własnie stronicowania jako całkiem "zielonemu" na pewno łatwiej jest to zrozumiec na podstawie przykładu, a w tym dziale forum na pewno się to komuś przyda winksmiley.jpg
ebnott
===>>>google nie boli<<===


po angielsku tu mam na razie i przy uzyciu MySQL'a, ale to chyba nie klopot?
http://www.designplace.org/scripts.php?page=1&c_id=25

tu chyba nie skonczony skrypt, ale zobacz:
http://forums.mysql.com/read.php?52,29159,29159
mareck
  1. <?php
  2.  
  3. ini_set ('display_errors' , 1);
  4. error_reporting (E_ALL & ~E_NOTICE);
  5.  
  6. //Pod??czenie i wyb?r bazy
  7.  
  8.  
  9. if($dbc=@mysql_connect ('localhost' , 'root' , 'krasnal')) {
  10.  
  11. if (!@mysql_select_db ('logosy')) {
  12. die('Nie mo?na wybra? bazy danych');
  13. }
  14.  
  15.  
  16. }else {
  17. die('Nie mozna po??czy? sie z MySQl');
  18. }
  19.  
  20. $limit = 5; //Liczba linków
  21.  
  22. $strona = $_GET['strona'];
  23.  
  24.  
  25. if (!isset($strona)) {
  26. $limit1 = 0;
  27. $limit2 = $limit;
  28. } else {
  29. $limit1 = $limit * $strona - $limit;
  30. $limit2 = $limit * $strona;
  31. }
  32.  
  33. //Definicja zapytania
  34. $zapytanie = "SELECT * FROM logo ORDER BY nazwa asc LIMIT $limit1,$limit2";
  35.  
  36.  
  37. if ($r = mysql_query ($zapytanie)) {
  38.  
  39. //Odczytywanie i wy?wietlenie kolejnych rekord?w.
  40. while ($wiersz = mysql_fetch_array($r)) {
  41. print "{$wiersz['nazwa']}<br />";
  42.  
  43. }
  44.  
  45. } else {
  46. die ('<p>Zapytanie nie zosta?o wykonane, bo <b>' . mysql_error() . "</b>. Zapytanie: $zapytanie.</p>");
  47.  
  48. }
  49.  
  50. echo "<left></br>";
  51. list($ile)=mysql_fetch_row(mysql_db_query("logosy","SELECT count(*) FROM logo"));
  52.  
  53. $liczba_stron = $ile / $limit;
  54. $liczba_stron = ceil($liczba_stron);
  55.  
  56. for ($v = 1; $v <= $liczba_stron; $v++) {
  57.  
  58. if ($liczba_stron == 1) {
  59. echo " $v";
  60. } else {
  61. echo " <a href=\"?strona=$v\">$v</a>";
  62. }
  63. }
  64.  
  65.  
  66. mysql_close(); //Zamkni?cie po??czenia.
  67.  
  68.  
  69. ?>


a jak zrobić aby wyswietlane nazwy były linkami do danego obrazka?
wykorzystuje kod znaleziony na tym forum, wydaje mi się że trzeba było zacząc od razu od bazy i w tym kierunku starac sie rozwiązac problem

ponawiam
mareck
mam prosbe ,potrzebuje pomocy udało mi sie dostosować skrypt znaleziony na forum do moich potrzeb ,ale niestety nie do końca sad.gif pierwszy problem jest taki iz, po przejściu na kolejną strone w paginacji i kliknięciu na link obrazka otwiera się on na pierwszej stronie,natomiast druga sprawa to raczej kosmetyka, chciałbym aby po przełączeniu na kolejną strone atomatycznie otwierał sie pierwsz obrazek z listy na stronie np 1 strona obrazki od 1-5 po włączeniu strony wyswietla 1 obrazek, po przejściu na 2 strone stronicowania obrazki od 6-10 domyslnie wyświetla 6 obrazek itd

połączyłem tutaj skrypt z forum oraz kod który napisał ebnott
  1. <?php
  2. if(isSet($_GET['obrazek'])) $gett = $_GET['obrazek'];
  3. else $gett = ""; // jaki obrazek ma sie wyswietlic na poczatku
  4. echo("<img src='catalogue/a/$gett' alt='' /><br />");
  5.  
  6. ini_set ('display_errors' , 1);
  7. error_reporting (E_ALL & ~E_NOTICE);
  8.  
  9. //Pod??czenie i wyb?r bazy
  10.  
  11.  
  12. if($dbc=@mysql_connect ('localhost' , 'root' , 'krasnal')) {
  13.  
  14. if (!@mysql_select_db ('logosy')) {
  15. die('Nie mo?na wybra? bazy danych');
  16. }
  17.  
  18.  
  19. }else {
  20. die('Nie mozna po??czy? sie z MySQl');
  21. }
  22.  
  23. $limit = 5; //Liczba linków
  24.  
  25. $strona = $_GET['strona'];
  26.  
  27.  
  28. if (!isset($strona)) {
  29. $limit1 = 0;
  30. $limit2 = $limit;
  31. } else {
  32. $limit1 = $limit * $strona - $limit;
  33. $limit2 = $limit * $strona;
  34. }
  35.  
  36. //Definicja zapytania
  37. $zapytanie = "SELECT * FROM logo ORDER BY nazwa asc LIMIT $limit1,$limit2";
  38.  
  39.  
  40. if ($r = mysql_query ($zapytanie)) {
  41.  
  42. //Odczytywanie i wy?wietlenie kolejnych rekord?w.
  43. while ($link = mysql_fetch_array($r)) {
  44. print "<a href=?obrazek={$link['nazwa']}>{$link['nazwa']}<br />";
  45.  
  46.  
  47.  
  48. }
  49.  
  50.  
  51.  
  52.  
  53. } else {
  54. die ('<p>Zapytanie nie zosta?o wykonane, bo <b>' . mysql_error() . "</b>. Zapytanie: $zapytanie.</p>");
  55.  
  56. }
  57.  
  58. echo "<left></br>";
  59. list($ile)=mysql_fetch_row(mysql_db_query("logosy","SELECT count(*) FROM logo"));
  60.  
  61. $liczba_stron = $ile / $limit;
  62. $liczba_stron = ceil($liczba_stron);
  63.  
  64. for ($v = 1; $v <= $liczba_stron; $v++) {
  65.  
  66. if ($liczba_stron == 1) {
  67. echo " $v";
  68. } else {
  69. echo " <a href=\"?strona=$v\">$v</a>";
  70. }
  71. }
  72.  
  73.  
  74.  
  75. mysql_close(); //Zamkni?cie po??czenia.
  76.  
  77.  
  78. ?>
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.