Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V  < 1 2 3  
Reply to this topicStart new topic
> [PHP][SQLite]Sqlite, PDO a div'y - oszczędźcie nieprzespanej nocy
tzm
post 28.08.2014, 09:39:49
Post #41





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

Ostrzeżenie: (10%)
X----


Szybkość i wydajność, rozmiar bazy do backupowania.
Poza tym dla mnie logiczne jest że uploadujac cos z dysku kopie obrazkow masz zapisana wiec tak ma byc jak pisze Turson.
Tak sie po prostu robi, ucz sie dobrych praktyk i nie cuduj bo nie potrzebnie zly nawyk nabierzesz ktorego nigdy w praktyce nie wykorzystasz bo ja bym sie az bal komentarza starszego programisty nad soba za takie rozwiazanie:P
Sa standardy programowania i to do nich nalezy.
W bazie trzymaj sciezke do pliku, nie wazne czy z dysku czy z zewnetrznego serwisu.
Go to the top of the page
+Quote Post
arstherapia
post 28.08.2014, 11:03:28
Post #42





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Dzięki piękne, odrobiłem pracę domową, poczytałem i faktycznie przerobiłem tak:

  1. <?php
  2. $result = $db->query('SELECT cover FROM filmy');
  3. foreach($result as $row)
  4. { echo '<center><div class="col-lg-2"><img src="'.$row['cover'].'" class="picColor"/></div></center>';}
  5. ?>


Teraz muszę się zastanowić, jak zrobić coś takiego, jak:

-link do strony ze szczegółowym opisem- generujący się odpowiednio pod okładką,

np. nazwa=kernberg-superwizja, okładka=kernberg-superwizja.jpg ,
to link product-view[id-filmy-czyli:kernberg-superwizja].php .

A ta strona nie będzie wcześniej istnieć, tylko templatka: product-view-?id z bazy.php

Więc będę musiał pewnie jakoś linkiem przesłać do niej dane. Masakra. Koszmar. Horror. Thriller.

Nie mam pojęcia o czym piszę i jak to zrobić. Jak mi się rozjaśni w głowie, to może
napiszę coś bardziej precyzyjnie.

Dzięki!

Go to the top of the page
+Quote Post
Turson
post 28.08.2014, 11:06:04
Post #43





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

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


Wysyłasz interesujące dane przez $_GET, np.
view.php?title=lorem&okladka=ipsum
w $_GET masz wtedy wszystko
Go to the top of the page
+Quote Post
arstherapia
post 28.08.2014, 13:10:05
Post #44





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Cytat(Turson @ 28.08.2014, 12:06:04 ) *
Wysyłasz interesujące dane przez $_GET, np.
view.php?title=lorem&okladka=ipsum
w $_GET masz wtedy wszystko


Dzięki!

Kiedy ja to wszystko przerobię i się naumiem... worriedsmiley.gif
Go to the top of the page
+Quote Post
tzm
post 28.08.2014, 13:43:22
Post #45





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

Ostrzeżenie: (10%)
X----


Cytat(arstherapia @ 28.08.2014, 14:10:05 ) *
Dzięki!

Kiedy ja to wszystko przerobię i się naumiem... worriedsmiley.gif


Za godzinę jak masz czas żeby potestować.
Go to the top of the page
+Quote Post
arstherapia
post 28.08.2014, 14:14:21
Post #46





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Cytat(tzm @ 28.08.2014, 14:43:22 ) *
Za godzinę jak masz czas żeby potestować.


Coś takiego działa przenosząc mnie na stronę templatki:

  1. { echo '<center><div class="col-lg-2"><a class="btn btn-default" href="product_view_template.php?id=' . ( $row['Nazwa'] ) . '">></a></div></center>';}


Wieczorem spróbuję pododawać opcje, ale nie bardzo wiem, jaka jest składnia i co to jest to $GET . ( będę szukać ).

Na moje to powinno iść mniej więcej tak:

  1. href="product_view_template.php?tytuł=' . ( $row['Nazwa'] ) . '" & okladka=' . ( $row['okladka'] ) . ' & cena=' . ( $row['Nazwa'] ) . '"


itd. , ale nie wiem czy dobrze kombinuję. A nawet jeśli, to czy te zmienne można wywołać w szablonie templatki umieszczając je we właściwych miejscach.

Dzięki za całą pomoc do tej pory, bez Was bym sobie nie poradziłsmile.gif



Go to the top of the page
+Quote Post
Turson
post 28.08.2014, 14:17:21
Post #47





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

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


Dobrze myślisz, pomijając parse error w drugim kodzie. Taka rada jeszcze - nie używaj polskich znaków w url.
Nie $GET, a $_GET - olbrzymia różnica.
http://php.net//manual/pl/reserved.variables.get.php
Go to the top of the page
+Quote Post
arstherapia
post 28.08.2014, 14:26:13
Post #48





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Cytat(Turson @ 28.08.2014, 15:17:21 ) *
Dobrze myślisz, pomijając parse error w drugim kodzie. Taka rada jeszcze - nie używaj polskich znaków w url.
Nie $GET, a $_GET - olbrzymia różnica.
http://php.net//manual/pl/reserved.variables.get.php


parse error? błąd parsowania? znaczy się gdzieś mi brakuje średnika czy coś pewnie znowu:)

Biorę się za lekturę, przyszło mi coś takiego jeszcze do głowy, żeby $id, czy $nazwę wyciągnać z urla, a potem:

  1. SELECT * FROM filmy WHERE id='$id' LIMIT 1


i powyciągać sobie te dane w ten sposób i powyświetlać je w odpowiednich divach.

A o $_GET już czytam. Nie wiem, czy to jedna, czy dwie metody, o których piszemy, ale dowiem się smile.gif

Dzięki!
Go to the top of the page
+Quote Post
Turson
post 28.08.2014, 14:28:21
Post #49





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

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


Zamknąłeś/nie zamknąłeś " lub '. Składnia koloruje to już tak, że widać od razu.
Zapytanie ok, tylko... przeczytaj o SQL Injection wink.gif
Go to the top of the page
+Quote Post
arstherapia
post 28.08.2014, 15:16:38
Post #50





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Cytat(Turson @ 28.08.2014, 15:28:21 ) *
Zamknąłeś/nie zamknąłeś " lub '. Składnia koloruje to już tak, że widać od razu.
Zapytanie ok, tylko... przeczytaj o SQL Injection wink.gif


A kto by chciał się do mnie, małego sklepiku z filmami o psychoterapii i psychologii włamywać... ?

Ja skromna osoba, skromny towar, skromne transakcje...


--------------------------------------------------------
Jasna cholera, znowu mam coś nie tak w kodzie.

Wyrzuca mi:

syntax error, unexpected 'Nazwa' (T_STRING)

Jeśli ktoś z Was będzie to czytać, proszę tylko dać znać, czy idę w dobrym kierunku.

  1.  
  2. $db = new PDO('sqlite:arstherapia.sqlite');
  3. $Nazwa = $_GET['Nazwa'];
  4. $result = $db->query('SELECT * FROM filmy WHERE Nazwa='Nazwa'' LIMIT 1');
  5. foreach($result as $row)
  6. { echo '<center><div class="col-lg-2">'.$row['Nazwa'].'</div></center>';}
  7. { echo '<center><div class="col-lg-2">'.$row['Opis'].'</div></center>';}
  8. { echo '<center><div class="col-lg-2">'.$row['Wersja'].'</div></center>';}


Chyba muszę wrócić do podstaw...

Ten post edytował arstherapia 28.08.2014, 15:27:48
Go to the top of the page
+Quote Post
Turson
post 28.08.2014, 15:20:09
Post #51





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

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


  1. $result = $db->query('SELECT * FROM filmy WHERE Nazwa="Nazwa" LIMIT 1');

skąd wziąłeś $row? Nie widzę żadnego fetch()
Go to the top of the page
+Quote Post
arstherapia
post 28.08.2014, 15:42:01
Post #52





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Cytat(Turson @ 28.08.2014, 16:20:09 ) *
  1. $result = $db->query('SELECT * FROM filmy WHERE Nazwa="Nazwa" LIMIT 1');

skąd wziąłeś $row? Nie widzę żadnego fetch()



Już uzupełniłem w kodzie w ostatnim poście, ale pewnie źle. Nie działa.

-----------------------------------------------------------------
Poprawiam, ale nadal pluje błędami.

Undefinied index - to pewnie coś o zmiennej $_GET

Invalid argument dla pętli

Undefinied variable... to przy moich echo

  1. $db = new PDO('sqlite:arstherapia.sqlite');
  2. $Nazwa = $_GET['Nazwa'];
  3. $result = $db->query("SELECT * FROM filmy WHERE Nazwa='$Nazwa'' LIMIT 1");
  4. foreach($result as $row)
  5. { echo '<center><div class="col-lg-2">'.$row['Nazwa'].'</div></center>';}
  6. { echo '<center><div class="col-lg-2">'.$row['Opis'].'</div></center>';}
  7. { echo '<center><div class="col-lg-2">'.$row['Wersja'].'</div></center>';}


Php język trudna język. Chyba dzień czy dwa wrócę do podstaw sciana.gif
Go to the top of the page
+Quote Post
ZaXaZ
post 28.08.2014, 16:02:10
Post #53





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(arstherapia @ 28.08.2014, 16:42:01 ) *
Undefinied index - to pewnie coś o zmiennej $_GET

Invalid argument dla pętli

Undefinied variable... to przy moich echo

  1. $db = new PDO('sqlite:arstherapia.sqlite');
  2. $Nazwa = $_GET['Nazwa'];
  3. $result = $db->query("SELECT * FROM filmy WHERE Nazwa='$Nazwa'' LIMIT 1");
  4. foreach($result as $row)
  5. { echo '<center><div class="col-lg-2">'.$row['Nazwa'].'</div></center>';}
  6. { echo '<center><div class="col-lg-2">'.$row['Opis'].'</div></center>';}
  7. { echo '<center><div class="col-lg-2">'.$row['Wersja'].'</div></center>';}


Php język trudna język. Chyba dzień czy dwa wrócę do podstaw sciana.gif

Dobry pomysl z wroceniem...
Tak wyglada bardziej poprawnie niz twoje:

  1. $db = new PDO('sqlite:arstherapia.sqlite');
  2. $Nazwa = $_GET['Nazwa'];
  3. $result = $db->prepare('SELECT * FROM filmy WHERE Nazwa=:nazwa LIMIT 1');
  4. $result->bindParam(':nazwa', $Nazwa, PDO::PARAM_STR);
  5. $result->execute();
  6. foreach($result->fetch(PDO::FETCH_ASSOC) as $row)
  7. { echo '<center><div class="col-lg-2">'.$row['Nazwa'].'</div></center>';
  8. echo '<center><div class="col-lg-2">'.$row['Opis'].'</div></center>';
  9. echo '<center><div class="col-lg-2">'.$row['Wersja'].'</div></center>';}


@Turson, bez fetch() query przyjmuje domyslnie pobranie ze stala PDO::FETCH_BOTH
Jak sie myle, niech ktos mnie poprawi...


Ten post edytował ZaXaZ 28.08.2014, 16:08:56


--------------------
Go to the top of the page
+Quote Post
arstherapia
post 28.08.2014, 16:14:36
Post #54





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Dziękuję, ZaXaZ, niestety gdzieś jest chyba jakiś błąd.

Wypluwa mi:

Warning: Illegal string offset 'Nazwa'
Warning: Illegal string offset 'Opis' itd...

a same dane - jakieś literki - są rozsypane poniżej.

Badam dalej, jeśli ktoś, (np. Turson smile.gif ma jakąś ideę, to bardzo proszęsmile.gif

Ps. Oczywiście i tak wracam do podstaw.
Go to the top of the page
+Quote Post
ZaXaZ
post 28.08.2014, 16:22:11
Post #55





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(arstherapia @ 28.08.2014, 17:14:36 ) *
Dziękuję, ZaXaZ, niestety gdzieś jest chyba jakiś błąd.

Wypluwa mi:

Warning: Illegal string offset 'Nazwa'
Warning: Illegal string offset 'Opis' itd...

a same dane - jakieś literki - są rozsypane poniżej.

Badam dalej, jeśli ktoś, (np. Turson smile.gif ma jakąś ideę, to bardzo proszęsmile.gif

Ps. Oczywiście i tak wracam do podstaw.

Te indeksy nie istnieja pewnie,
Zrob dla tekstu tak:

  1. $q = $PDO->query('SELECT * FROM `filmy`')->fetch(PDO::FETCH_ASSOC);
  2. print_r($q);

I pokaż co Ci zwraca, kliknij pierwszy link w mojej sygnaturze.

Ten post edytował ZaXaZ 28.08.2014, 16:22:47


--------------------
Go to the top of the page
+Quote Post
arstherapia
post 28.08.2014, 16:26:13
Post #56





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Cytat(ZaXaZ @ 28.08.2014, 17:22:11 ) *
Te indeksy nie istnieja pewnie,
Zrob dla tekstu tak:

  1. $q = $PDO->query('SELECT * FROM `filmy`')->fetch(PDO::FETCH_ASSOC);
  2. print_r($q);

I pokaż co Ci zwraca, kliknij pierwszy link w mojej sygnaturze.


Ok, czytam pierwszy link:)

Zwraca:

Undefined variable: PDO

mimo:

  1. $db = new PDO('sqlite:arstherapia.sqlite');


Dobra, skumałem, przepraszam za głupotę.

Wyrzuca: (pewnie przez nadal istenijące bloby )

  1. Array ( [Nazwa] => Superwizja Yalom [Opis] => fajny film [Wersja] => indywidualna [Okladka] => ����JFIF��ExifMM*bj(1r2��i��''Adobe Photoshop CS4 Windows2014:08:22 20:15:31��&(.YHH����JFIFHH�� Adobe_CM��Adobed���            ��s"����?   3!1AQa"q2���B#$Rb34r��C%S���cs5���&D�TdEŁt6Ue�����u��F'���������������Vfv��������7GWgw��������5!1AQaq"2����B#R��3$br��CScs4$F��ݑ_����e���m������bV0{,9[���,ȯw���>v����$ˠ��}
itd.

Ten post edytował arstherapia 28.08.2014, 16:29:47
Go to the top of the page
+Quote Post
arstherapia
post 28.08.2014, 16:34:39
Post #57





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


----------------
Ps. Po usunięciu blobów nadal :

Illegal string offset 'Nazwa' sad.gif

Przepraszam, aktualizacja po podmianie pliku:

  1. Array ( [Nazwa] => Superwizja Yalom [Opis] => fajny film [Wersja] => indywidualna )


Teraz powinno działaćsmile.gif Dziękujęsmile.gif

Śmigam kupić pieskowi jedzenie...
Go to the top of the page
+Quote Post
ZaXaZ
post 28.08.2014, 17:05:20
Post #58





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(arstherapia @ 28.08.2014, 17:34:39 ) *
----------------
Ps. Po usunięciu blobów nadal :

Illegal string offset 'Nazwa' sad.gif

Przepraszam, aktualizacja po podmianie pliku:

  1. Array ( [Nazwa] => Superwizja Yalom [Opis] => fajny film [Wersja] => indywidualna )


Teraz powinno działaćsmile.gif Dziękujęsmile.gif

Śmigam kupić pieskowi jedzenie...


Duże przeoczenie zrobilem (foreach) zrob while:
  1. $db = new PDO('sqlite:arstherapia.sqlite');
  2. $Nazwa = $_GET['Nazwa'];
  3. $result = $db->prepare('SELECT * FROM filmy WHERE Nazwa=:nazwa LIMIT 1');
  4. $result->bindParam(':nazwa', $Nazwa, PDO::PARAM_STR);
  5. $result->execute();
  6. while($row = $result->fetch(PDO::FETCH_ASSOC))
  7. { echo '<center><div class="col-lg-2">'.$row['Nazwa'].'</div></center>';
  8. echo '<center><div class="col-lg-2">'.$row['Opis'].'</div></center>';
  9. echo '<center><div class="col-lg-2">'.$row['Wersja'].'</div></center>';}

Edit: jak przyjrzalem sie zapytaniu (LIMIT 1) to wlasciwie nie wiem po co pętla biggrin.gif,
Zrób poprostu:

  1. $row=$result->fetch(PDO::FETCH_ASSOC);
  2. echo '<center><div class="col-lg-2">'.$row['Nazwa'].'</div></center>';
  3. echo '<center><div class="col-lg-2">'.$row['Opis'].'</div></center>';
  4. echo '<center><div class="col-lg-2">'.$row['Wersja'].'</div></center>';


Ten post edytował ZaXaZ 28.08.2014, 17:53:07


--------------------
Go to the top of the page
+Quote Post
arstherapia
post 28.08.2014, 17:38:10
Post #59





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


ZaXaZ, działa jak marzenie:) Dziękuję exclamation.gif!
Go to the top of the page
+Quote Post

3 Stron V  < 1 2 3
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: 27.04.2024 - 03:36