Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Galeria zdjęć oparta o mySQL.
Mazur_pl
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 11.05.2007

Ostrzeżenie: (0%)
-----


Witam winksmiley.jpg.
Napisałem galerie zdjęć ale tym razem opartą o bazę danych mySQL i w bazie danych mam tabele a w niej:
Kod
-id
-title
-image
-opis
-katalog


Oto kod:
  1. <?php
  2. define("db_host", "localhost");
  3. define("db_user", "Mazur");
  4. define("db_password", "#######");
  5. define("db_name", "galeria");
  6. mysql_connect(db_host, db_user, db_password);
  7. mysql_select_db(db_name);
  8. $file_name = "./big/";
  9. if(file_exists($file_name)) {
  10. if($_GET['id']>0) {
  11. $gallery = mysql_query("SELECT * FROM galeria WHERE id=".$_GET['id']."");
  12. if($gallery && $id = mysql_fetch_assoc($gallery)) {
  13. if($_GET['id']>1) {
  14. echo("<a href="gallery.php?id=".($_GET['id']-1)."">Poprzednie zdjecie</a>");
  15. }
  16. echo("<a href="gallery.php">&nbsp; | Galeria |&nbsp; </a>");
  17. if($_GET['id']<count($id)) {
  18. echo("<a href="gallery.php?id=".($_GET['id']+1)."">Następne zdjecie</a>");
  19. }
  20. echo("<table width="600" align="center" border="1" bordercolor="#e9e9e9" style="border-collapse: collapse;">rn");
  21. echo(" <tr>rn");
  22. echo(" <td colspan="2">Tytul pracy:&nbsp;".$id['title']."</td>rn");
  23. echo(" </tr>rn");
  24. echo(" <tr>rn");
  25. echo(" <td colspan="2" style="text-align: center; padding: 10px;">rn");
  26. echo(" <a href="".$file_name.$id['image']."" target="_new">");
  27. echo("  <img src="image.php?link=".$file_name.$id['image']."&amp;size=100" />rn");
  28. echo(" </a>");
  29. echo(" </td>rn");
  30. echo(" </tr>rn");
  31. echo(" <tr>rn");
  32. echo(" <td colspan="2">Katalog:&nbsp;".$id['katalog']."</td>rn");
  33. echo(" </tr>rn");
  34. echo(" <tr>rn");
  35. echo(" <td colspan="2">Opis pracy:&nbsp;".$id['opis']."</td>rn");
  36. echo(" </tr>rn");
  37. echo("</table>rn");
  38. } else {
  39. echo("Nie ma obrazka o takim numerze !<br />Spróbuj ponownie!");
  40. }
  41. } elseif(count($file_name)>0) {
  42.  echo("<center><h2>Galeria</h2></center>");
  43.  echo("Miniatury");
  44. } else {
  45. echo("Katalog jest pusty");
  46. }
  47. } else {
  48. echo("Folder $file_name nie istnieje!<br />");
  49. }
  50. ?>


Lecz mam taki problem. Kiedy przejdę pod adres na przykład gallery.php?id=1 mam u góry linki do:
Galeria | Następne zdjęcie . Wszystko chodzi. Lecz kiedy przejdę pod ostatni id obrazku mam :
Poprzednie zdjęcie | Galeria | Następne zdjęcie
Chociaż następnego zdjęcia nie ma dry.gif .
A drugi problem to jak zrobić tutaj:
  1. <?php
  2. } elseif(count($file_name)>0) {
  3.  echo("<center><h2>Galeria</h2></center>");
  4.  echo("Miniatury");
  5. ?>

Aby były wszystkie zdjęcia z bazy? A zdjęcie to link do id tego obrazka?
Próbowałem zrobić to na przykładzie mojej starej galerii ale nic mi nie wychodzi angrysmiley.gif .

Przy okazji. Jak zrobić ostatnie 3 wpisy do bazy? smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Chociaż następnego zdjęcia nie ma

  1. <?php
  2. if($_GET['id']<count($id))
  3. ?>
a co te count($id) ma niby zwracac? Patrzac wyzej to $id to:
$id = mysql_fetch_assoc($gallery)
czyli jeden rekord z tabeli (tablica pol z danego rekordu), a nie wszystkie elementy.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Mazur_pl
post
Post #3





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 11.05.2007

Ostrzeżenie: (0%)
-----


Dzięki winksmiley.jpg . Czegoś się nauczyłem . Zrobiłem tak:
  1. <?php
  2. if(!($_GET['id']>1)) {
  3. echo("<a href="gallery.php?id=".($_GET['id']+1)."">Następne zdjecie</a>");
  4. }
  5. ?>


A wiecie może co do tych zdjęć ?
Go to the top of the page
+Quote Post
michas999
post
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.05.2007

Ostrzeżenie: (0%)
-----


proste,
jak masz kod:
  1. <?php
  2. $gallery = mysql_query("SELECT * FROM galeria");
  3. ?>
to dodajesz do tego limit, czyli:
  1. <?php
  2. $gallery = mysql_query("SELECT * FROM galeria LIMIT 3");
  3. ?>

i pokazuje 3 zdjecia, lecz jak by nie pokazywalo 3 ostatnich dodaj: LIMIT 3 DESC

a potem juz normalny kod na pokazanie smile.gif

pozdr!

Ten post edytował michas999 15.05.2007, 21:22:00
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #5





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


Witam chciałbym sie dowiedziec jak stworzyc galerie oparta własnie o mysql php z podziałem na kategorie co prawda mam juz jakis skrypt ale to nie jest to sad.gif o to ten kod smile.gif
  1. <?phpmysql_connect('host','login','haslo');mysql_select_db('baza');if(!isset($_GET['zdj']))$_GET['zdj']=0;if(strlen($_GET['zdj'])>4)$_GET['zdj']=0;$zapytanie = 'SELECT * FROM kategorie WHERE id_rodzica='.$_GET[zdj];$odpowiedz = mysql_query($zapytanie) or die(mysql_error());while ($wiersz = mysql_fetch_array($odpowiedz)) {extract($wiersz);echo '<a href=index.php?akcja=galeria&kat='.$wiersz[nazwa].'&zdj='.$wiersz[id].'><b>'.$wiersz[nazwa].'</b></a><br> ';}$zapytanie = 'SELECT * FROM galeria WHERE id_kategorii='.$_GET[zdj];$odpowiedz = mysql_query($zapytanie) or die(mysql_error()); echo '<table>'; $i=1;while ($dane = mysql_fetch_assoc ($odpowiedz)) {if($i==1) echo '<tr>';echo '<td><img src=\"galeria/male/'.$dane['zdjecie'].'\" alt=\"'.$dane['tytul'].'\" /></td>';if($i==3) { echo '<tr>'; $i=0;}$i++;}echo '</table>';mysql_close();?>
ok to jest kod smile.gif a teraz moje pytania ...
  1. <?phpecho '<td><img src=\"galeria/male/'.$dane['zdjecie'].'\" alt=\"'.$dane['tytul'].'\" /></td>';?>
w tym fragmęcie wyswietla mi tylko małe obrazki sad.gif jak widac:P a chciałbym aby po kliknięciu w jakie kolwiek z nich pokazało sie duże nie wiem jak to wykonac robiłem a href i cos cudowałem ale nie wychodzilo sad.gif ?2 pytanie mozna jakos rozdzielic albo jakos inaczej to napisac abym mogl na głownej stronie galerii wyswietlac same kategorie po czym jak sie w nie kliknie pokażą sie fotki bo teraz robi sie tak ze jak chce zrobic po wyswietleniu obrazów wpisac a href z opcja powrót do głównej to tez mi sie to wyswietla na stronie głównej przy kategoriach ten powrót :/ to chyba na tyle winksmiley.jpg bede naprawde wdzieczny za pomoc smile.gif pozdrawiam smile.gif


I co nikt nic nie wie questionmark.gif? sad.gif

Ten post edytował FliSs_tCv 16.08.2007, 15:48:24


--------------------
Go to the top of the page
+Quote Post
Hazel
post
Post #6





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


A mógłbyś zrobić z tego burdelu w kodzie coś normalnego?
Bo próbowałem się w to wczytać i niewiele udało mi się wypatrzeć :/
Nie lubię takiego kodu...


--------------------
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #7





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


nie wie co sie stalo ze sie ze soba skleil ;/ jescze raz go wkleje smile.gif jak patrzałem wczesniej bylo ok smile.gif o to ten kod jescze raz smile.gif

  1. <?php
  2. mysql_connect('localhost','login','haslo');
  3. if(!isset($_GET['zdj']))$_GET['zdj']=0;
  4. if(strlen($_GET['zdj'])>4)$_GET['zdj']=0;
  5.  
  6.  
  7. $zapytanie = 'SELECT * FROM kategorie WHERE id_rodzica='.$_GET[zdj];
  8.  
  9. $odpowiedz = mysql_query($zapytanie) or die(mysql_error());
  10.  
  11. while ($wiersz = mysql_fetch_array($odpowiedz)) {
  12. extract($wiersz);
  13.  
  14. echo '<a href=index.php?akcja=galeria&kat='.$wiersz[nazwa].'&zdj='.$wiersz[id].'><b>'.$wiersz[nazwa].'</b></a><br>';
  15.  
  16. }
  17.  
  18. $zapytanie = 'SELECT * FROM galeria WHERE id_kategorii='.$_GET[zdj];
  19.  
  20. $odpowiedz = mysql_query($zapytanie) or die(mysql_error());
  21. echo '<table>'; $i=1;
  22. while ($dane = mysql_fetch_assoc ($odpowiedz)) {
  23.  
  24. if($i==1) echo '<tr>';
  25.  
  26. echo '<td><img src="galeria/male/'.$dane['zdjecie'].'" alt="'.$dane['tytul'].'" /></td>';
  27.  
  28. if($i==3) {
  29.  echo '<tr>';
  30.  $i=0;
  31. }
  32. $i++;
  33. }
  34. echo '</table>';
  35.  
  36. ?>


Ten post edytował FliSs_tCv 17.08.2007, 09:08:57


--------------------
Go to the top of the page
+Quote Post
Hazel
post
Post #8





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Zeksportuj mi baze danych, bo się nie łapię w tym, co Ci ten kod wyświetla, a nie chce mi sie tworzyc Twojej bazy od początku...
Daj kod SQL.


--------------------
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #9





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


O to kod sql tabeli galeria
  1. CREATE TABLE `galeria` (
  2. `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `id_kategorii` int(30) NOT NULL,
  4. `tytul` varchar(150) NOT NULL,
  5. `zdjecie` varchar(100) DEFAULT NULL,
  6. `opis` varchar(200) DEFAULT NULL,
  7. PRIMARY KEY (`id`)
  8. ) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=latin2 AUTO_INCREMENT=30 ;


jescze jej wnetrze ;P

  1. INSERT INTO `galeria` (`id`, `id_kategorii`, `tytul`, `zdjecie`, `opis`) VALUES
  2. (1, 1, 'tytul', 'P1050642.JPG', 'opis'),
  3. (2, 1, 'tytul', 'P1050659.JPG', 'opis'),
  4. (3, 1, 'tytul', 'P1050688.JPG', 'opis'),
  5. (4, 1, 'tytul', 'P1050717.JPG', 'opis'),
  6. (5, 1, 'tytul', 'P1050742.JPG', 'opis'),
  7. (6, 1, 'tytul', 'P1050792.JPG', 'opis'),
  8. (7, 1, 'tytul', 'P7280045.JPG', 'opis'),
  9. (8, 1, 'tytul', 'P7280053.JPG', 'opis'),
  10. (9, 1, 'tytul', 'P7280055.JPG', 'opis'),
  11. (10, 1, 'tytul', 'P7280070.JPG', 'opis'),
  12. (11, 1, 'tytul', 'P7280076.JPG', 'opis'),
  13. (12, 1, 'tytul', 'P7280082.JPG', 'opis'),
  14. (13, 1, 'tytul', 'P7280083.JPG', 'opis'),
  15. (14, 1, 'tytul', 'P7280085.JPG', 'opis'),
  16. (15, 1, 'tytul', 'P7280093.JPG', 'opis'),
  17. (16, 2, 'tytul', 'P7280094.JPG', 'opis'),
  18. (17, 2, 'tytul', 'P7280097.JPG', 'opis'),
  19. (18, 2, 'tytul', 'P7280098.JPG', 'opis'),
  20. (19, 2, 'tytul', 'P7280099.JPG', 'opis'),
  21. (20, 2, 'tytul', 'P7280105.JPG', 'opis'),
  22. (21, 2, 'tytul', 'P7280109.JPG', 'opis'),
  23. (22, 2, 'tytul', 'P7280119.JPG', 'opis'),
  24. (23, 2, 'tytul', 'P7280120.JPG', 'opis'),
  25. (24, 2, 'tytul', 'P7280132.JPG', 'opis'),
  26. (25, 2, 'tytul', 'P7280137.JPG', 'opis'),
  27. (26, 2, 'tytul', 'P7280138.JPG', 'opis'),
  28. (27, 2, 'tytul', 'P7280143.JPG', 'opis'),
  29. (28, 2, 'tytul', 'Zlot IK1 2007.JPG', 'opis'),
  30. (29, 2, 'tytul', 'Zlot IK11 2007.JPG', 'opis');


a oto kod tabeli kategorie

  1. CREATE TABLE `kategorie` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(100) NOT NULL,
  4. `kategoria` varchar(50) NOT NULL,
  5. `id_rodzica` int(10) NOT NULL DEFAULT '0',
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin2 AUTO_INCREMENT=3 ;


jej wnetrze smile.gif

  1. INSERT INTO `kategorie` (`id`, `nazwa`, `kategoria`, `id_rodzica`) VALUES (1, 'Test1', '1', 0),
  2. (2, 'Test2', '2', 0);


dzieki za zainteresowanie sie moim problemem smile.gif


--------------------
Go to the top of the page
+Quote Post
Hazel
post
Post #10





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Nie wiem dokladnie, czy o coś takiego Ci chodziło, czy nie bardzo, ale masz tyle:

  1. <?php
  2. mysql_connect('localhost','login','haslo');
  3.  
  4. if (!isset($_GET['zdj']))
  5. {
  6.  $_GET['zdj']=0;
  7. }
  8. if (strlen($_GET['zdj'])>4)
  9. {
  10.  $_GET['zdj']=0;
  11. }
  12.  
  13.  
  14. $zapytanie1 = 'SELECT * FROM kategorie WHERE id_rodzica='.$_GET[zdj];
  15.  
  16. $odpowiedz1 = mysql_query($zapytanie1) or die(mysql_error());
  17.  
  18.  
  19. $zapytanie2 = 'SELECT * FROM galeria WHERE id_kategorii='.$_GET[zdj];
  20.  
  21. $odpowiedz2 = mysql_query($zapytanie2) or die(mysql_error());
  22.  
  23. if ($_GET['akcja']=='zdjecie')
  24. {
  25.  echo '<img src="'.$dane['zdjecie'].'" alt="'.$dane['tytul'].'" height=300 width=400/>';
  26.  echo '<a href="index.php">Powrót</a>';
  27.  exit;
  28. }
  29.  
  30. while ($wiersz = mysql_fetch_assoc($odpowiedz1))
  31. {
  32.  echo '<a href=index.php?akcja=galeria&kat='.$wiersz[nazwa].'&zdj='.$wiersz[id].'><b>'.$wiersz[nazwa].'</b></a><br>';
  33. }
  34.  
  35. echo '<table>';
  36. $i=1;
  37. while ($dane = mysql_fetch_assoc ($odpowiedz2))
  38. {
  39.  if($i==1)
  40.  {
  41. echo '<tr>';
  42.  }
  43.  echo '<td><a href="index.php?akcja=zdjecie&zdj='.$dane['zdjecie'].'"><img src="'.$dane['zdjecie'].'" alt="'.$dane['tytul'].'" /></a></td>';
  44.  if($i==3)
  45.  {
  46. echo '<tr>';
  47. $i=0;
  48.  }
  49.  $i++;
  50. }
  51. echo </table>;
  52.  
  53. ?>


A drugie pytanie sprecyzuj, bo do końca nie zrozumiałem.

Ten post edytował Hazel 17.08.2007, 12:22:09


--------------------
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #11





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


To tez nie rozwiązało sytuacji

--------> EDIT <-------

czy da rade jakos rozdzieloc te 2 rzeczy jakimi sa galeria i kategorie ? w sensie takim abym mogł tak jak w formularzu np wypelniam cos i odwołuje sie do 2 pliku który cos zaczyna wykonywac tak samo chyba tongue.gif chcialbym aby ten podzial galeri na kategorie wygladał ze w 1 pliku kategorie.php pokaze mi same kategorie a w 2 pliku galeria.php wyswietlalo by zdjecia z danej kategori smile.gif da rade tak zrobic ? bo teraz jak jest to wszystko w tym jednym pliku to nie moge np dac opcji w powrót aby powrócic do kategorii (czyli strony głównej galerii) bo ta opcja wyswietli mi sie także pod kategoriami czyli wygladało by to tak ze wchodzac na strone galeria otrzymałbym takie cos


kategoria 1
kategoria 2
kategoria 3
kategoria 4
kategoria 5

powrót

a po co mi powrót do strony na której jestem biggrin.gif kurde mam nadzieje ze jest to zrozumiałe smile.gif

Ten post edytował FliSs_tCv 17.08.2007, 14:35:08


--------------------
Go to the top of the page
+Quote Post
Hazel
post
Post #12





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(FliSs_tCv @ 17.08.2007, 13:21:05 ) *
kurde mam nadzieje ze jest to zrozumiałe


Szczerze to raczej średnio.
Musisz pokombinować z adresami odwołań w odnośnikach <a> po prostu...
Utwórz plik galeria.php i zamiast odwołań do index.php?akcja=galeria odwołuj się do galeria.php?zdj=$zdj.


--------------------
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #13





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


Czyli jak mam stworzyc plik galeria i kategorie tak ? czy jak bo nie wiem tongue.gif heh chyba ze masz inny pomysł w sprawie tego powrót ;>


--------------------
Go to the top of the page
+Quote Post
Hazel
post
Post #14





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Powiem Ci tak:
Jeżeli uważasz, że jest to potrzebne do rozwiązania problemów - tak.
W przeciwnym przypadku - nie.
Eksperymentując, niczego nie tracisz. Tu trzeba trochę logiki (całkiem niedużo), więc ja Ci kodu nie napiszę. Myśl.
Inne pomysły mam, ale sam też na nie wpadniesz.


--------------------
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #15





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


dobra sama logikie to moze i bym mial ale napisac sam bez kierunku nie napisze tongue.gif bo nie znam sie az tak dobrze smile.gif przerobic przerobie troche jak nie jest trudne smile.gif . Wiec miałbym prosbe abys mi cos tak tylko podsunoł moze cos mi sie zacznie układac w glowie tym bardziej goni mnie czas bo na jutro musze miec gotowy projekt sad.gif no i taka lipa sad.gif ... zaznaczam nie chce gotowca bo to nie bylo by moje tylko twoje biggrin.gif


--------------------
Go to the top of the page
+Quote Post
Hazel
post
Post #16





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


No to będziesz miał 3 pliki:
1. index.php
2. kategoria.php
3. zdjecie.php

W indexie masz spis kategorii (np.: )
  1. <?php
  2. echo '<a href='kategoria.php?kat="'.$_GET['kat'].'">;
  3.  // to jest tylko forma odnośnika, pobrać z bazy danych potrafisz ;>
  4. ?>


W pliku kategoria.php sprawdzasz $_GET['kat'] i zależnie od tego wyświetlasz odpowiednią kategorię.
Odnośniki będące zdjęciami mają postać:
  1. <?php
  2. echo '<a href="zdjecie.php?zdj="'.$_GET['zdj'].'">'; // to też odnośnik, dalej musisz wstawić znacznik <img>
  3. ?>


No i w pliku zdjecie.php wyświetlasz duże zdjęcie, sprawdziwszy $_GET['zdj']. Odnośnik Powrót zrobisz w zależności od tego, gdzie on ma przekierowywać po kliknięciu - albo do index.php, albo do kategorie.php?kat=$_GET['kat'] (w drugim przypadku musisz zarejestrować zmienną sesji albo zrobić formularz z ukrytym polem). To wszystko.

Ten post edytował Hazel 17.08.2007, 15:19:48


--------------------
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #17





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


Ok dzieki smile.gif zobaczę co mi sie uda zrobic smile.gif pozdro i dobrej nocy wszystkim biggrin.gif


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 09:25