Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP]Dodawanie obrazka do bazy
Fonev
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 4.02.2014

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


Witam próbuje zrobić prosty formularz dodający do bazy pytania, niektóre z obrazkami, a inne bez.
Wyskakuje mi błąd przy checkboxa i nie wiem co z tym fantem już poradzić. Druga sprawa to taka, że nie chce mi dodać do bazy obrazków...
obrazek w bazie jest typu mediumblob .

Mój formularz:

  1.  
  2. <table><tr bgcolor="#dadada"><td>Pytanie</td></tr>
  3. <Form action="dodpyt.php" method="POST" ENCTYPE="multipart/form-data"><tr><td><input type="text" name="pytanie" size="50" value=""></td></tr>
  4. <tr bgcolor="#dadada"><td>Odpowiedz A</td></tr>
  5. <tr><td><input type="text" name="odpA" value="" size="50"></td></tr>
  6. <tr bgcolor="#dadada"><td>Odpowiedz B</td></tr>
  7. <tr><td><input type="text" name="odpB" value="" size="50"></td></tr>
  8. <tr bgcolor="#dadada"><td>Odpowiedz C</td></tr>
  9. <tr><td><input type="text" name="odpC" value="" size="50"></td></tr>
  10. <tr bgcolor="#dadada"><td>Odpowiedz D</td></tr>
  11. <tr><td><input type="text" name="odpD" value="" size="50"></td></tr>
  12. <tr bgcolor="#dadada"><td>Poprawna</td></tr>
  13. <tr><td> A - <input type="checkbox" name="aa" value="1"> B - <input type="checkbox" name="bb" value="1"> C - <input type="checkbox" name="cc" value="1"> D - <input type="checkbox" name="dd" value="1"></td></tr>
  14. <tr bgcolor="#dadada"><td> Obrazek: </td></tr>
  15. <tr><td><INPUT type="file" name="obrazek">
  16. <tr bgcolor="#dadada"><td>Punkty</td></tr>
  17. <tr><td><input type="text" name="pkt" value=""></td></tr>
  18. <tr bgcolor="#dadada"><td>Z jakiego kursu:</td></tr>
  19. <tr><td><input type="text" name="nr_kursu" value=""></td></tr>
  20. <tr><td><input type="submit" name="Dodaj" value="Dodaj"></tr></td>
  21. </form></table>
  22.  
  23.  



i kod w php którym próbuje to doać do bazy...

  1.  
  2. <?php
  3.  
  4. if(isset($_POST['Dodaj']))
  5. {
  6. $pytanie = $_POST['pytanie'];
  7. $odpa = $_POST['odpA'];
  8. $odpb = $_POST['odpB'];
  9. $odpc = $_POST['odpC'];
  10. $odpd = $_POST['odpD'];
  11. if (empty($_POST['aa'])) { $poprawnaA = 0; } elseif (isset($_POST['aa']) && $_POST['aa'] == 1) { $poprawnaA = 1; }
  12. if (empty($_POST['bb'])) { $poprawnaB = 0; } elseif (isset($_POST['bb']) && $_POST['bb'] == 1) { $poprawnaB = 1; }
  13. if (empty($_POST['cc'])) { $poprawnaC = 0; } elseif (isset($_POST['cc']) && $_POST['cc'] == 1) { $poprawnaC = 1; }
  14. if (empty($_POST['dd'])) { $poprawnaD = 0; } elseif (isset($_POST['dd']) && $_POST['dd'] == 1) { $poprawnaD = 1; }
  15. $pkt = $_POST['pkt'];
  16. $nr_kursu = $_POST['nr_kursu'];
  17. if(isset($_FILES['obrazek']))
  18. {
  19. if($_FILES['obrazek']['error'] == UPLOAD_ERR_OK)
  20. {
  21. $fhandle = fopen($_FILES['obrazek']['tmp_name'], "r");
  22. $content = base64_encode(fread($fhandle, $_FILES['obrazek']));
  23. fclose($fhandle);
  24. $sql= mysql_query("INSERT INTO pytania VALUES( '','$pytanie', '$odpa', '$odpb', '$odpc', '$odpd', '$poprawnaA', '$poprawnaB', '$poprawnaC', '$poprawnaD', '$content', '$pkt', '$nr_kursu')");
  25. header("Location: przeglad_pytan.php");
  26. }
  27. }
  28. else
  29. {
  30. $sql= mysql_query("INSERT INTO pytania VALUES( '','$pytanie', '$odpa', '$odpb', '$odpc', '$odpd', '$poprawnaA', '$poprawnaB', '$poprawnaC', '$poprawnaD', '', '$pkt', '$nr_kursu')");
  31. header("Location: przeglad_pytan.php");
  32. }
  33. }
  34.  
  35. ?>
  36.  


Prosiłbym o jakąś wskazówkę, gdyż pierwszy raz próbuje umieścić plik w bazie...
Z góry dzięki za cokolwiek.

Ten post edytował Fonev 26.03.2015, 14:10:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Forti
post
Post #2





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Cytat
Jeśli przy wykonywaniu zapytania na danej tabeli nie pobiera się kolumny z obrazkiem, to nie ma tragedii.


Jest tragedia. Tak się nie robi i nie ma co tu dyskutować. Bazy danych służą do trzymania treści, nie plików.
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #3





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(Forti @ 27.03.2015, 13:24:29 ) *
Jest tragedia. Tak się nie robi i nie ma co tu dyskutować. Bazy danych służą do trzymania treści, nie plików.


Nie, nie ma tragedii. Zrób sobie testy wydajnościowe. Czyli plik nie jest treścią według Ciebie? Więc czym w takim razie? Czasem istnieje taka konieczność. Ale co ja tam wiem, widocznie w banku się nie umiemy bazą danych obsłużyć. Mam nadzieję, że nie masz u nas pieniędzy.
Go to the top of the page
+Quote Post
Forti
post
Post #4





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Cytat(b4rt3kk @ 27.03.2015, 13:59:53 ) *
Nie, nie ma tragedii. Zrób sobie testy wydajnościowe. Czyli plik nie jest treścią według Ciebie? Więc czym w takim razie? Czasem istnieje taka konieczność. Ale co ja tam wiem, widocznie w banku się nie umiemy bazą danych obsłużyć. Mam nadzieję, że nie masz u nas pieniędzy.


Drama? (IMG:style_emoticons/default/biggrin.gif)

Trzymając plik poza bazą masz do niego wszelki dostęp. Trzymając w bazie musisz otworzyć połączenie. I nie uwierze, że trzymanie pliku w bazie jest wydajniejsze jak po prostu w folderze ;] any proof?
Go to the top of the page
+Quote Post
10log
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 2
Dołączył: 28.02.2008

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


Żeby tylko na otwarciu połączenia się skończyło to by było do przełknięcia ale przecież taki obrazek z bazy musi zdekodować z base64 i wypluć faktyczny obrazek. To już może być znaczący narzut. Dużo prościej i szybciej pobrać z bazy ścieżkę do niego i tak używać.
Go to the top of the page
+Quote Post
Forti
post
Post #6





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Cytat(10log @ 27.03.2015, 14:36:02 ) *
Żeby tylko na otwarciu połączenia się skończyło to by było do przełknięcia ale przecież taki obrazek z bazy musi zdekodować z base64 i wypluć faktyczny obrazek. To już może być znaczący narzut. Dużo prościej i szybciej pobrać z bazy ścieżkę do niego i tak używać.


Gościu pracuje w banku i wie lepiej. Obrazki z bazy szybciej się pobiera niż lokalizacje i poniej obrazek. Czekam na jakiś benchmark.
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #7





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(Forti @ 27.03.2015, 14:39:16 ) *
Gościu pracuje w banku i wie lepiej. Obrazki z bazy szybciej się pobiera niż lokalizacje i poniej obrazek. Czekam na jakiś benchmark.


Proszę czytać ze zrozumieniem i nie przypisywać mi słów, których nie napisałem. Gdzie napisałem, że jest to szybsze lub wydajeniejsze?

Napisałem tylko, że czasem istnieje taka konieczność, jeśli nie potrafisz sobie wyobrazić takiej potrzeby to znaczy, że widocznie jeszcze mało widziałeś i mało słyszałeś.

Jedyne co stwierdziłem, to fakt, że gdy nie pobieramy w zapytaniu kolumny z zawartością pliku, to nie ma tragedii (czyli czas odczytu nie jest przesadnie długi), temu zaprzeczasz?

Nigdzie nie napisałem, że jest to metoda lepsza i szybsza, jeśli napisałem, to proszę zacytuj ten fragment mojej wypowiedzi. Czekam na cytat.

Ten post edytował b4rt3kk 27.03.2015, 15:46:00
Go to the top of the page
+Quote Post
Forti
post
Post #8





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Cytat(b4rt3kk @ 27.03.2015, 15:45:16 ) *
Proszę czytać ze zrozumieniem i nie przypisywać mi słów, których nie napisałem. Gdzie napisałem, że jest to szybsze lub wydajeniejsze?

Napisałem tylko, że czasem istnieje taka konieczność, jeśli nie potrafisz sobie wyobrazić takiej potrzeby to znaczy, że widocznie jeszcze mało widziałeś i mało słyszałeś.

Jedyne co stwierdziłem, to fakt, że gdy nie pobieramy w zapytaniu kolumny z zawartością pliku, to nie ma tragedii (czyli czas odczytu nie jest przesadnie długi), temu zaprzeczasz?

Nigdzie nie napisałem, że jest to metoda lepsza i szybsza, jeśli napisałem, to proszę zacytuj ten fragment mojej wypowiedzi. Czekam na cytat.


Cytat(b4rt3kk @ 27.03.2015, 13:59:53 ) *
Nie, nie ma tragedii. Zrób sobie testy wydajnościowe. Czyli plik nie jest treścią według Ciebie? Więc czym w takim razie? Czasem istnieje taka konieczność. Ale co ja tam wiem, widocznie w banku się nie umiemy bazą danych obsłużyć. Mam nadzieję, że nie masz u nas pieniędzy.
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #9





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Mały test na czytanie ze zrozumieniem. Czego ten cytat dowodzi? Jest tam napisane, że odczyt z bazy jest szybszy niż z dysku? Czy choćby jest tam cień takiej sugestii?
Go to the top of the page
+Quote Post

Posty w temacie
- Fonev   [HTML][MySQL][PHP]Dodawanie obrazka do bazy   26.03.2015, 14:03:26
- - Beniooo   Nie wrzucaj do bazy obrazków, to przy większych pr...   27.03.2015, 12:46:15
- - b4rt3kk   Możesz konkretniej opisać problem? Bo "nie do...   27.03.2015, 13:04:32
|- - Fonev   SUPER! [PHP] pobierz, plaintext $content = ba...   27.03.2015, 19:48:15
- - Forti   CytatJeśli przy wykonywaniu zapytania na danej tab...   27.03.2015, 13:24:29
|- - b4rt3kk   Cytat(Forti @ 27.03.2015, 13:24:29 ) ...   27.03.2015, 13:59:53
|- - Forti   Cytat(b4rt3kk @ 27.03.2015, 13:59:53 ...   27.03.2015, 14:14:58
|- - 10log   Żeby tylko na otwarciu połączenia się skończyło to...   27.03.2015, 14:36:02
|- - Forti   Cytat(10log @ 27.03.2015, 14:36:02 ) ...   27.03.2015, 14:39:16
|- - b4rt3kk   Cytat(Forti @ 27.03.2015, 14:39:16 ) ...   27.03.2015, 15:45:16
|- - Forti   Cytat(b4rt3kk @ 27.03.2015, 15:45:16 ...   27.03.2015, 15:58:46
|- - b4rt3kk   Mały test na czytanie ze zrozumieniem. Czego ten c...   27.03.2015, 16:06:15
- - kosmos   Bezapelacyjnie obrazy na dysku, w bazie ścieżki do...   27.03.2015, 15:11:51
- - Turson   Jak zapisujesz obrazki w bazie to niepotrzebnie pu...   27.03.2015, 15:33:04
- - Forti   Ja napisałem, że jest tragedia BO tak się nie robi...   27.03.2015, 16:40:04
|- - b4rt3kk   Cytat(Forti @ 27.03.2015, 16:40:04 ) ...   27.03.2015, 16:45:56
- - pasman   w dyskusji czy przechowywać obrazki w bazie, są za...   27.03.2015, 17:15:02
- - Forti   B4rt4k czy ty jesteś tak głupi za przeproszeniem c...   27.03.2015, 17:32:37
|- - b4rt3kk   Cytat(Forti @ 27.03.2015, 17:32:37 ) ...   27.03.2015, 17:44:57
- - Forti   ok, masz racje. Póki nie pobieramy obrazka to trag...   27.03.2015, 17:50:36
- - Beniooo   Wait... what?! To... gdy nie dodasz obrazka w...   27.03.2015, 22:17:08
- - Fonev   ma dodac te pola ktore sa a obrazka skoro nie ma t...   28.03.2015, 09:46:46
- - Beniooo   Sprawdzaj w kodzie, czy obrazek został wrzucony pr...   28.03.2015, 12:49:25


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

 



RSS Aktualny czas: 15.10.2025 - 06:42