Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Skrócenie kodu
Xart
post 14.04.2014, 13:29:30
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


Witam, da się może jakoś skrócić taki oto KOD ?

  1. $obrazek1 = $_POST['obrazek1'];
  2. $miniatura1 = $_POST['miniatura1'];
  3. $obrazek2 = $_POST['obrazek2'];
  4. $miniatura2 = $_POST['miniatura2'];
  5. $obrazek3 = $_POST['obrazek3'];
  6. $miniatura3 = $_POST['miniatura3'];
  7. $obrazek4 = $_POST['obrazek4'];
  8. $miniatura4 = $_POST['miniatura4'];
  9. $obrazek5 = $_POST['obrazek5'];
  10. $miniatura5 = $_POST['miniatura5'];
  11. $obrazek6 = $_POST['obrazek6'];
  12. $miniatura6 = $_POST['miniatura6'];
  13. $obrazek7 = $_POST['obrazek7'];
  14. $miniatura7 = $_POST['miniatura7'];
  15. $obrazek8 = $_POST['obrazek8'];
  16. $miniatura8 = $_POST['miniatura8'];
  17. $obrazek9 = $_POST['obrazek9'];
  18. $miniatura9 = $_POST['miniatura9'];
  19. $obrazek10 = $_POST['obrazek10'];
  20. $miniatura10 = $_POST['miniatura10'];
  21. $obrazek11 = $_POST['obrazek11'];
  22. $miniatura11 = $_POST['miniatura11'];
  23. $obrazek12 = $_POST['obrazek12'];
  24. $miniatura12 = $_POST['miniatura12'];
  25. $obrazek13 = $_POST['obrazek13'];
  26. $miniatura13 = $_POST['miniatura13'];
  27. $obrazek14 = $_POST['obrazek14'];
  28. $miniatura14 = $_POST['miniatura14'];
  29. $obrazek15 = $_POST['obrazek15'];
  30. $miniatura15 = $_POST['miniatura15'];
  31. $obrazek16 = $_POST['obrazek16'];
  32. $miniatura16 = $_POST['miniatura16'];
  33. $obrazek17 = $_POST['obrazek17'];
  34. $miniatura17 = $_POST['miniatura17'];
  35. $obrazek18 = $_POST['obrazek18'];
  36. $miniatura18 = $_POST['miniatura18'];
  37. $obrazek19 = $_POST['obrazek19'];
  38. $miniatura19 = $_POST['miniatura19'];
  39. $obrazek20 = $_POST['obrazek20'];
  40. $miniatura20 = $_POST['miniatura20'];
  41. $obrazek21 = $_POST['obrazek21'];
  42. $miniatura21 = $_POST['miniatura21'];
  43. $obrazek22 = $_POST['obrazek22'];
  44. $miniatura22 = $_POST['miniatura22'];
  45. $obrazek23 = $_POST['obrazek23'];
  46. $miniatura23 = $_POST['miniatura23'];
  47. $obrazek24 = $_POST['obrazek24'];
  48. $miniatura24 = $_POST['miniatura24'];
  49. $obrazek25 = $_POST['obrazek25'];
  50. $miniatura25 = $_POST['miniatura25'];


Ten post edytował Xart 14.04.2014, 13:29:43
Go to the top of the page
+Quote Post
john_doe
post 14.04.2014, 13:34:07
Post #2





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


a co Ty wgrywasz przez form obraz i jego miniaturę?
Wgrywaj tylko fotkę a mini rób w locie to po 1sze.

po drugie użyj tablic.
Go to the top of the page
+Quote Post
Xart
post 14.04.2014, 13:37:11
Post #3





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


@UP
W bazie będę miał same linki do fotek i miniatur więc nie mogę zrobić tego w locie ...
da radę ten kod pętlą jakoś ?

I kolejne ten kod może też się jakoś da mhm ?

  1. $mysqli->query("INSERT INTO `galleries` (id, nazwa, opis, ilosc, linkz, obrazek1, obrazek2, obrazek3, obrazek4, obrazek5, obrazek6, obrazek7, obrazek8, obrazek9, obrazek10, obrazek11, obrazek12, obrazek13, obrazek14, obrazek15, obrazek16, obrazek17, obrazek18, obrazek19, obrazek20, obrazek21, obrazek22, obrazek23, obrazek24, obrazek 25, miniatura1, miniatura2, miniatura3, miniatura4, miniatura5, miniatura6, miniatura7, miniatura8, miniatura9, miniatura10, miniatura11, miniatura12, miniatura13, miniatura14, miniatura15, miniatura16, miniatura17, miniatura18, miniatura19, miniatura20, miniatura21, miniatura22, miniatura23, miniatura24, miniatura 25, data) VALUES....
Go to the top of the page
+Quote Post
john_doe
post 14.04.2014, 13:40:15
Post #4





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


Xart a możesz wyjaśnić co po co i dlaczego?
abyśmy wiedzieli co chcesz osiągnąć, jak ma działać
To podpowiemy optymalne rozwiązanie, bo to co tutaj pokazałeś jest raczej o kant d.... roztrzasnąć
Go to the top of the page
+Quote Post
Xart
post 14.04.2014, 13:42:50
Post #5





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


Mam tabelę w bazie danych w której trzymam dane takie jak :

  1. CREATE TABLE IF NOT EXISTS `galleries` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  4. `opis` text COLLATE utf8_polish_ci NOT NULL,
  5. `ilosc` int(11) NOT NULL DEFAULT '1',
  6. `linkz` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  7. `obrazek1` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  8. `obrazek2` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  9. `obrazek3` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  10. `obrazek4` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  11. `obrazek5` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  12. `obrazek6` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  13. `obrazek7` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  14. `obrazek8` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  15. `obrazek9` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  16. `obrazek10` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  17. `obrazek11` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  18. `obrazek12` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  19. `obrazek13` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  20. `obrazek14` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  21. `obrazek15` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  22. `obrazek16` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  23. `obrazek17` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  24. `obrazek18` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  25. `obrazek19` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  26. `obrazek20` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  27. `obrazek21` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  28. `obrazek22` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  29. `obrazek23` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  30. `obrazek24` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  31. `obrazek25` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  32. `miniatura1` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  33. `miniatura2` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  34. `miniatura3` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  35. `miniatura4` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  36. `miniatura5` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  37. `miniatura6` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  38. `miniatura7` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  39. `miniatura8` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  40. `miniatura9` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  41. `miniatura10` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  42. `miniatura11` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  43. `miniatura12` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  44. `miniatura13` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  45. `miniatura14` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  46. `miniatura15` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  47. `miniatura16` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  48. `miniatura17` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  49. `miniatura18` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  50. `miniatura19` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  51. `miniatura20` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  52. `miniatura21` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  53. `miniatura22` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  54. `miniatura23` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  55. `miniatura24` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  56. `miniatura25` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  57. `data` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  58. PRIMARY KEY (`id`)
  59. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1 ;


Wgrywam dane do tej tabeli aby potem wyświetlić je skryptem takim:
  1. <?php
  2. include("config.php");
  3. $id = $_GET['id'];
  4. $zapytanie = $mysqli->query("SELECT * FROM `galleries` WHERE id='$id");
  5. $wynik = $zapytanie->fetch_assoc();
  6. $ilosc = $wynik['ilosc'];
  7. for($i = 1; $i <= $ilosc; $i++){
  8. $duzy = $wynik['obrazek'.$i.''];
  9. $maly = $wynik['miniatura'.$i.''];
  10. print '<a class="fancybox-buttons" data-fancybox-group="button" href="'.$duzy.'"><img src="'.$maly.'"/></a>';
  11. }
  12. ?>
Go to the top of the page
+Quote Post
nospor
post 14.04.2014, 13:45:09
Post #6





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Masz totalnie złą strukture bazy...
Mają byc dwie tabele:
Tabela GALERIA
ID
NAZWA
OPIS
LINKZ

Tabela OBRAZEK
ID
ID_GALERII - id galerii, do ktorej nalezy obrazek
SCIEZKA

I juz.


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

"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
john_doe
post 14.04.2014, 13:46:15
Post #7





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


w 1szej kolejności powinieneś utworzyć drugą tabelę np. pictures
która będzie przechowywała obrazy dla danej galerii w Twoim przypadku tabeli galleries

struktura tabela pictures
picture_id
gallery_id -> to id jest kluczem obcym z tabeli galleries
picture_file


Go to the top of the page
+Quote Post
Xart
post 14.04.2014, 13:47:40
Post #8





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


Ale pytanie poco ?
Jak mogę te dane trzymać w jednej tabeli i będzie prościej ?
Go to the top of the page
+Quote Post
nospor
post 14.04.2014, 13:48:31
Post #9





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Po co? Bo tak sie wlasnie robi prawidlowo. To co ty zrobiles nie ma reki ani nogi.... I nie, to co zrobiles nie jest prostrze.
A co gdy nagle w galerii bedzie 30 zdjec a nie 24? Bedziesz dodawal kolejne pola? W schemaci co ci zaproponowalismy nie ma znaczenia ile bedzie zdjec w galerii
Powód edycji: [nospor]:


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

"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
Xart
post 14.04.2014, 13:51:11
Post #10





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


Nie ;p
Piszę takiego małego CMS'a dla strony szkoły smile.gif
I wiem że w jeden galerii nie będzie więcej niż 25 zdjęć bo wtedy robią 2 galerie
Go to the top of the page
+Quote Post
nospor
post 14.04.2014, 13:52:30
Post #11





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Przychodzisz na forum z prosbą jak skrocic.... podajemy ci wiec jak to sie robi prawidlowo a Ty dalej swoje.... To po co marnujesz nasz czas? Naucz się pisać prawidlowo. To co Ty chcesz zrobic to marnowanie czasu na zle praktyki


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

"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
Xart
post 14.04.2014, 13:55:14
Post #12





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


Ale kodu itak to nie skróci nie prawdaż ?
Bo itak będę musiał dodać te zdjęcia tlyko tyle, że do innej tabeli i dodatkowo narobi mi się wiecej
$mysqli->query("INSERT INTO `pictures`
bo będę musiał każdy obrazek zapisywać oddzielnie bo chyba inaczej się nie da...
Go to the top of the page
+Quote Post
Kshyhoo
post 14.04.2014, 13:56:09
Post #13





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Cytat(Xart @ 14.04.2014, 14:29:30 ) *
  1. $obrazek1 = $_POST['obrazek1'];
  2. $miniatura1 = $_POST['miniatura1'];

  1. $o1 = $_POST['o1'];
  2. $m1 = $_POST['m1'];


smile.gif


--------------------
Go to the top of the page
+Quote Post
nospor
post 14.04.2014, 13:56:29
Post #14





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Skroci kod i to bardzo.
W petli bedziesz dodawal zdjecia


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

"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
Turson
post 14.04.2014, 13:56:52
Post #15





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


O przebudowie bazy już pisałem w innym temacie, ale dalej upierasz się przy swoim.

Cytat
Ale kodu itak to nie skróci nie prawdaż ?
Bo itak będę musiał dodać te zdjęcia tlyko tyle, że do innej tabeli i dodatkowo narobi mi się wiecej

Tabela więcej, a kodu mniej


Kshyhoo hahaha laugh.gif

Ten post edytował Turson 14.04.2014, 13:57:42
Go to the top of the page
+Quote Post
john_doe
post 14.04.2014, 13:58:28
Post #16





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


robisz coś takiego
  1. <input type="file" name="pic[]" />


i takich inputów masz tyle ile chcesz wgrać fotek, u Ciebie 25 ( sporo smile.gif )

dalej robisz posta

i uruchom sobie var_dump($_POST)
zobaczysz co zawiera tablica POST i już wiesz wszystko

potem wystarczy w pętli np. for jechać po tej tablicy i zapodawać INSERT, czyli zamiast 25 "z buta" insertów generujesz je dynamicznie za pomocą php
Go to the top of the page
+Quote Post
Xart
post 14.04.2014, 14:01:22
Post #17





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


@UP
Inputów mam tyle ile sobie ustawię podczas dodawania galerii
Mam pole select i w zależności od ilości wybranych np '12'
wyświetli mi 12 inputów na obrazek i 12 na miniaturki

mhm
tylko nie mam badego pojęcią jak to robić inaczej niż "z buta" bo nigdy nie robiłem ;p
dodawać pętlą o.O ?
Jeszcze takie pytanie z innej beczki mogę dodać sam obrazek chyba nie ? A jako miniaturke wyświetlać go w innych rozmiarach za pomocą HTML hmm ?
Go to the top of the page
+Quote Post
john_doe
post 14.04.2014, 14:09:32
Post #18





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


do Ciebie jak grochem o ścianę, albo chcesz nauczyć się czegoś albo nie!
Miej sobie <select> gdzie ustawiasz ile ma być inputów, to bez znaczenia.

niech dla przykładu będą trzy
  1. <input type="file" name="pic[]" />
  2. <input type="file" name="pic[]" />
  3. <input type="file" name="pic[]" />

  1.  
  2. <?php
  3. for($i=0;$i<count($_FILES["pic"]["name"]);$i++)
  4. {
  5. if (file_exists("upload/" . $_FILES["pic"]["name"][$i]))
  6. {
  7. echo $_FILES["pic"]["name"][$i] . " już istnieje na serwerze. ";
  8. }
  9. else
  10. {
  11.  
  12. //I tutaj upload fotki i insert do tabeli
  13.  
  14. move_uploaded_file($_FILES["pic"]["tmp_name"][$i],
  15. "upload/" . $_FILES["pic"]["name"][$i]);
  16.  
  17. $query = " INSERT INTO tabela (COL1, COL2, COL3) VALUES ( COS, COS, $_FILES["pic"]["tmp_name"][$i] ";
  18.  
  19. mysql_query($query);
  20.  
  21. }
  22. }
  23. ?>
  24.  


finish, BTW tak kopiuj wklej nie zadziała jak widzisz ale ogląd masz.

Ten post edytował john_doe 14.04.2014, 14:10:16
Go to the top of the page
+Quote Post
Xart
post 14.04.2014, 14:13:05
Post #19





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


Zrobię to jeszcze troszkę inaczej i prościej ale ogólnie dzięki smile.gif
Go to the top of the page
+Quote Post
--CuteOne--
post 14.04.2014, 14:18:27
Post #20





Goście







Rozumiem Twój sceptycyzm ale uwierz mi Twój kod to sieczka smile.gif

1. google -> php upload (poczytaj o wgrywaniu plików, tablicach FILES itp)
2. baza danych tak jak podpowiedzieli koledzy wyżej
3. możesz uploadować grafikę a następnie zmniejszyć ją w php'ie (google -> php image resize example) i zapisać pod taką samą nazwą+jakiś postfix np. file_1_mini.jpg
4. nie polecam skalować dużych obrazków w html, widziałem jak koleś robił miniatury z obrazka 1900x1000 px, strona ładowała się pół dnia smile.gif
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 25.04.2024 - 10:16