Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [MySQL][PHP]Wyświetlenie zdjęcia z bazy danych
nighttrain
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.06.2010

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


Witam

Chciałbym do mojego formularza dodac mozliwość dodawania zdjęcia do bazy.
Dodaje zdjęcie tak:
Kod
<b>Dodaj zdjęcie:</b><br />
<input type="file" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="zdjecie"><br />

Niestety w mojej tabeli, która wyświetla wyniki nie pokazuje sie zdjęcie, lecz nazwa tego zdjięcia;
Kod
echo "<td>".$r['zdjecie']."</td>";
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




Moze najpierw zapoznaj się z istotą uploadu to może zrozumiesz na czym polega Twoj błąd.
http://pl.php.net/manual/pl/features.file-...post-method.php
Go to the top of the page
+Quote Post
dg2001
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 12
Dołączył: 9.01.2008
Skąd: Olkusz

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


bo musisz zrobić:
  1. echo '<td><img src="'.$r['zdjecie'].'" /></td>';

gdyż w bazie masz nazwę pliku a nie całe zdjęcie (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
nighttrain
post
Post #4





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.06.2010

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


jak tak zrobiłem jak napisałeś to kolumna mi sie zwęziła i nic i tak nie widać
Go to the top of the page
+Quote Post
dg2001
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 12
Dołączył: 9.01.2008
Skąd: Olkusz

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


Cytat(nighttrain @ 2.08.2010, 12:15:14 ) *
jak tak zrobiłem jak napisałeś to kolumna mi sie zwęziła i nic i tak nie widać

A może jakiś kod (IMG:style_emoticons/default/blinksmiley.gif) i mam nadzieję że ścieżkę gdzie się znajduje plik dobrze podałeś (IMG:style_emoticons/default/smile.gif) i jak zapisujesz w bazie? nazwę pliku ?
Go to the top of the page
+Quote Post
nighttrain
post
Post #6





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.06.2010

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


Narazie dodałem do bazy jedno zdjęcie do rekordu o nazwie: image.jpeg

A więc jak wcześniej napisałem dodaje w ten sposób:
Kod
<b>Dodaj zdjęcie:</b><br />
<input type="file" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="zdjecie"><br />

Pobieram go:
Kod
$zdjecie = $_POST['zdjecie'];

i potem wbijam do bazy wraz z innymi wartościami z formularza:
Kod
$ins = @mysql_query("INSERT INTO komputery SET id='$id',.............................., zdjecie='$zdjecie'" );


Wyświetlam wyniki w oddzielnym skrypcie w tabeli:
Kod
...........
$wynik = mysql_query("SELECT * FROM komputery")
or die('Blad zapytania');

//WYSWIETLENIE WYNIKOW  JESLI TABELA POSIADA CHOC JEDEN REKORD > 0

if(mysql_num_rows($wynik) > 0) {

/* jezeli wynik jest pozytywny > 0, to wyswietlamy dane */

    echo "<table cellpadding=\"7\" border=1>";
    echo "<tr><td colspan=11 bgcolor=\"#a7a7a7\"><b>Tabela komputery firmowe</b></td></tr>";
    while($r = mysql_fetch_assoc($wynik)) {
           echo "<tr>";
        echo "<td>".$r['id']."</td>";
        echo "<td>".$r['nazwa_komputera']."</td>";
        echo "<td>".$r['nazwa_dzialu']."</td>";
        echo "<td>".$r['imie_nazwisko_usera']."</td>";
        echo "<td>".$r['adres_ip']."</td>";
        echo "<td>".$r['system_operacyjny']."</td>";
        echo "<td>".$r['mac_adress']."</td>";
        echo "<td>".$r['ilosc_ram']."</td>";
        echo "<td>".$r['procesor']."</td>";
        echo "<td>".$r['model_komputera']."</td>";
        [b]echo '<td><img src="'.$r['zdjecie'].'" /></td>';[/b]

    echo "<td>
    <a href=\"wyswietlenietabeli.php?a=del&amp;id={$r['id']}\">DEL</a>
    <a href=\"wyswietlenietabeli.php?a=edit&amp;id={$r['id']}\">EDIT</a>
    </td>";
    echo "</tr>";
    }
    echo "</table>";
}


Ten post edytował nighttrain 2.08.2010, 11:58:54
Go to the top of the page
+Quote Post
nospor
post
Post #7





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




Przeczytaj mój poprzedni post i zastosuj się do niego - MASZ BRAKI W podstawach uploadu plików. Dopóki nie zrozumiesz na czym to polega, dopóty będziesz pisał takie "glupoty" jak teraz (bez urazy)
Go to the top of the page
+Quote Post
dg2001
post
Post #8





Grupa: Zarejestrowani
Postów: 71
Pomógł: 12
Dołączył: 9.01.2008
Skąd: Olkusz

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


tak jak napisał nospor ty dodajesz nazwę zdjęcia do bazy, ale nie wgrywasz go na serwer (IMG:style_emoticons/default/blink.gif) wiec jak ci się ma wyświetlić to zdjęcie skoro go nie ma tam gdzie go ma szukać
Go to the top of the page
+Quote Post
nighttrain
post
Post #9





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.06.2010

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


No dobrze rozumiem, że mogę wysłać zdjęcie za pomocą tej składni:
Kod
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>

Jednak ja już mam formularz, czy mam po prostu dodać do już istnijącego formularza:
Kod
enctype="multipart/form-data"

oraz w action mojego formularza mam odniesienie do skryptu PHP, natomiast tutaj:
Kod
action="__URL__"

Nie za bardzo rozumiem, jak powinienem to zbudować.

Ten post edytował nighttrain 2.08.2010, 13:09:40
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




Cytat
Jednak ja już mam formularz, czy mam po prostu dodać do już istnijącego formularza:
Kod
enctype="multipart/form-data"
tak

Cytat
oraz w action mojego formularza mam odniesienie do skryptu PHP, natomiast tutaj:
Kod
action="__URL__"
Action to action. Jak u siebie masz inne to mozesz sobie miec.

Ale to tutaj to tylko malutki wstep zmian. Musisz jeszcze odebrać plik. Na tamtej stronie tez masz podane jak
Go to the top of the page
+Quote Post
nighttrain
post
Post #11





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.06.2010

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


Nie dodaje mi rekordów do bazy danych, może pokaże mój cały skrypt:
Kod
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php include "top.php"; // wkleja koniec stronki ?>
<?php

$msql = mysql_connect('10.2.1.220', 'root', 'qazwsx');
mysql_select_db('komputery');
$query = mysql_result(mysql_query("SELECT MAX(id) FROM komputery"), 0);
//$query = @mysql_query("SELECT MAX(id) FROM komputery");
//$query = @mysql_query("SELECT (MAX)id AS id FROM komputery");
//$query = @mysql_query("SELECT id from komputery order by id desc limit 1");
//$lastID =  LAST_INSERT_ID(); - to mozna wydac, ale jak wczesniej bylo zapytanie INSERT
//echo 'Ostatni istniejący rekord to '. $query .'';
//'<h3>'echo 'Ostatni istniejący rekord to '. $query .'''</h3>';
echo '<form enctype="multipart/form-data" action="doddotabkomp.php" method="post">
<h2>Prosze dodac nowy komputer:</h2><br />
<b>ID:</b><br />
<input type="text" size="5" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="id"> <h3>(Ostatni dodany rekord:'. $query .')</h3><br />
<b>Nazwa komputera:</b><br />
<input type="text" size="15" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="nazwa_komputera"><br />
<b>Nazwa dzialu:</b><br />
<input type="text" size="20" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="nazwa_dzialu"><br />
<b>Imie i nazwisko usera:</b><br />
<input type="text" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="imie_nazwisko_usera"><br />
<b>Adres IP:</b><br />
<input type="text" size="16" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="adres_ip"><br />
<b>System operacyjny:</b><br />
<input type="text" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="system_operacyjny"><br />
<b>Mac adres:</b><br />
<input type="text" size="19" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="mac_adress"><br />
<b>ilosc RAM:</b><br />
<input type="text" size="12" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="ilosc_ram"><br />
<b>Procesor:</b><br />
<input type="text" size="28" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="procesor"><br />
<b>Model komputera:</b><br />
<input type="text" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="model_komputera"><br />
<b>Dodaj zdjęcie:</b><br />
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input name="zdjecie" type="file" /><br/>

<input type="image" src="graphics/button_wyslij.jpg" alt="Wyslij" value="dodaj">
</form>';
//<input type="submit" value="dodaj" /><br />   NORMALNY PRZYCISK ZAMIAST TEGO WYZEJ
//onclick="return !window.confirm('usunac?')"
//onsubmit="return !window.confirm(wykonac?')"

$id = $_POST['id'];
$nazwa_komputera = $_POST['nazwa_komputera'];
$nazwa_dzialu = $_POST['nazwa_dzialu'];
$imie_nazwisko_usera = $_POST['imie_nazwisko_usera'];
$adres_ip =  $_POST['adres_ip'];
$system_operacyjny = $_POST['system_operacyjny'];
$mac_adress = $_POST['mac_adress'];
$ilosc_ram = $_POST['ilosc_ram'];
$procesor = $_POST['procesor'];
$model_komputera = $_POST['model_komputera'];
$zdjecie = $_POST['zdjecie'];

if($id and $nazwa_komputera and $nazwa_dzialu and $imie_nazwisko_usera and $adres_ip and $system_operacyjny and $mac_adress and $ilosc_ram and $procesor and $model_komputera and $zdjecie) {

$msql = mysql_connect('10.2.1.220', 'root', 'qazwsx');
mysql_select_db('komputery');

// laczymy sie z baza danych
//  $connection = @mysql_connect('10.2.1.220', 'root', 'qazwsx')
//  or die('Brak polaczenia z serwerem MySQL');
//  $db = @mysql_select_db('komputery', $connection)
//  or die('Nie moge polaczyc sie z baza danych');

//DODAJEMY REKORD DO BAZY

$ins = @mysql_query("INSERT INTO komputery SET id='$id', nazwa_komputera='$nazwa_komputera', nazwa_dzialu='$nazwa_dzialu',imie_nazwisko_usera='$imie_nazwisko_usera', adres_ip='$adres_ip', system_operacyjny='$system_operacyjny', mac_adress='$mac_adress', ilosc_ram='$ilosc_ram', procesor='$procesor', model_komputera='$model_komputera, zdjecie='$zdjecie'" );
if($ins) {
    echo ('<b>Rekord zostal dodany poprawnie</b>');
    echo '<script type="text/javascript" src="skrypty_java/reloaddodano.js"></script>';
}

    else echo '<script type="text/javascript" src="skrypty_java/reloadblad.js"></script>';

//else echo "Blad nie udalo sie dodac nowego rekordu";

//mysql_close($connection);
}
?>
<?php include "bottom.php";


Ten post edytował nighttrain 2.08.2010, 13:45:48
Go to the top of the page
+Quote Post
nospor
post
Post #12





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




1) Prosilem bys uzywal wlasciwego bbcode! Do mieszanca html + php uzywa się bbcode PHP
2) $_POST['zdjecie']; nie istnieje. A więc i Twój warunek przed dodaniem rekordu nie jest spelniony - PISALEM bys doczytac jak odbierać plik. Jak tego nie zrobisz to dalej nie ruszysz.
3) Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie
np. jak wyswietlac wszystkie błędy a zobaczysz ile ich masz.
Go to the top of the page
+Quote Post
nighttrain
post
Post #13





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.06.2010

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


No nie wiem, już gdzie jest napisane o tym odbieraniu.

Czy chodzi o to, aby zamiast $_POST dać: $_FILES['userfile']['name'] ?

Ten post edytował nighttrain 2.08.2010, 13:56:31
Go to the top of the page
+Quote Post
nospor
post
Post #14





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




http://pl.php.net/manual/pl/features.file-...post-method.php
Ten link ci podalem na samym początku i w tym linku masz napisane jak masz odebrać. Masz podane nawet przykładowe kody.
Patrzyłeś na to wogóle? Sporzyj jeszcze raz. Tym razem dokładniej. Zwróć uwagę na tablicę $_FILES.

edit:
Cytat
Czy chodzi o to, aby zamiast $_POST dać: $_FILES['userfile']['name'] ?
no bingo. Tylko ze to jest sama nazwa pliku. Musisz jeszcze gdzieś wrzucić sam plik - tam to też jest podane
Go to the top of the page
+Quote Post
nighttrain
post
Post #15





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.06.2010

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


move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile

Czy chodzi o to? I tak nie wiem co powinienem wpisać zamiast userfile (czy nazwę jaka reprezentuje kolumne zdjec?), tmp_name (nie wiem bo dane sa przechowywane w bazie a nie katalogu), ?

Zresztą w moim przykładzie wyżej oprócz tego, że muszę zamienić $zdjecie = $_POST=['zdjecie']; (POST -> FILES) to według mnie powinno już i tak dodać nowy rekord z nazwą zdjęcia do bazy, jednak mój skrypt tego nie robi.

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





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




bo u ciebie nie "userfile" a "zdjecie"
No mysl trochę nad tym co masz.
Go to the top of the page
+Quote Post
nighttrain
post
Post #17





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.06.2010

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


Ale chodzi mi o ten kod: (do bazy powinien chociaż dodać rekord i nazwe zdjecia) jednak skrypt nic nie robi) userfile mam ok akurat tu:
CODE

#
error_reporting(E_ALL);
#
ini_set('display_errors','1')

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php include "top.php"; // wkleja koniec stronki ?>
<?php

$msql = mysql_connect('10.2.1.220', 'root', 'qazwsx');
mysql_select_db('komputery');
$query = mysql_result(mysql_query("SELECT MAX(id) FROM komputery"), 0);

echo '<form enctype="multipart/form-data" action="doddotabkomp.php" method="post">
<h2>Prosze dodac nowy komputer:</h2><br />
<b>ID:</b><br />
<input type="text" size="5" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="id"> <h3>(Ostatni dodany rekord:'. $query .')</h3><br />
<b>Nazwa komputera:</b><br />
<input type="text" size="15" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="nazwa_komputera"><br />
<b>Nazwa dzialu:</b><br />
<input type="text" size="20" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="nazwa_dzialu"><br />
<b>Imie i nazwisko usera:</b><br />
<input type="text" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="imie_nazwisko_usera"><br />
<b>Adres IP:</b><br />
<input type="text" size="16" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="adres_ip"><br />
<b>System operacyjny:</b><br />
<input type="text" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="system_operacyjny"><br />
<b>Mac adres:</b><br />
<input type="text" size="19" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="mac_adress"><br />
<b>ilosc RAM:</b><br />
<input type="text" size="12" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="ilosc_ram"><br />
<b>Procesor:</b><br />
<input type="text" size="28" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="procesor"><br />
<b>Model komputera:</b><br />
<input type="text" size="50" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="model_komputera"><br />
<b>Dodaj zdjęcie:</b><br />
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input name="zdjecie" type="file" /><br/>

<input type="image" src="graphics/button_wyslij.jpg" alt="Wyslij" value="dodaj">
</form>';

$id = $_POST['id'];
$nazwa_komputera = $_POST['nazwa_komputera'];
$nazwa_dzialu = $_POST['nazwa_dzialu'];
$imie_nazwisko_usera = $_POST['imie_nazwisko_usera'];
$adres_ip = $_POST['adres_ip'];
$system_operacyjny = $_POST['system_operacyjny'];
$mac_adress = $_POST['mac_adress'];
$ilosc_ram = $_POST['ilosc_ram'];
$procesor = $_POST['procesor'];
$model_komputera = $_POST['model_komputera'];
$zdjecie = $_FILES['zdjecie'];


if($id and $nazwa_komputera and $nazwa_dzialu and $imie_nazwisko_usera and $adres_ip and $system_operacyjny and $mac_adress and $ilosc_ram and $procesor and $model_komputera and $zdjecie) {

$msql = mysql_connect('10.2.1.220', 'root', 'qazwsx');
mysql_select_db('komputery');

//DODAJEMY REKORD DO BAZY

$ins = @mysql_query("INSERT INTO komputery SET id='$id', nazwa_komputera='$nazwa_komputera', nazwa_dzialu='$nazwa_dzialu',imie_nazwisko_usera='$imie_nazwisko_usera', adres_ip='$adres_ip', system_operacyjny='$system_operacyjny', mac_adress='$mac_adress', ilosc_ram='$ilosc_ram', procesor='$procesor', model_komputera='$model_komputera, zdjecie='$zdjecie'" );
if($ins) {
echo ('<b>Rekord zostal dodany poprawnie</b>');
echo '<script type="text/javascript" src="skrypty_java/reloaddodano.js"></script>';
}

else echo '<script type="text/javascript" src="skrypty_java/reloadblad.js"></script>';

}
?>
<?php include "bottom.php";
Go to the top of the page
+Quote Post
nospor
post
Post #18





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




dobra, słuchaj, 10 razy o wlasciwe bbcode nie mam cie zamiaru prosic.

Skoro nie rozumiesz prostej sugestii o poprawne bbcode to temat zamykam. Jak wyrazisz chęc się dostosowac to zapraszam na PW

edit: otwieram

ps:
nie: $zdjecie = $_FILES['zdjecie'];
a: $zdjecie = $_FILES['zdjecie']['name'];
Go to the top of the page
+Quote Post
nighttrain
post
Post #19





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.06.2010

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


Po tej operacji otrzymałem taki komunikat:
Kod
Warning: Wrong parameter count for move_uploaded_file() in /var/www/doddotabkomp.php on line 63
Go to the top of the page
+Quote Post
nospor
post
Post #20





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




A gdzie w tym kodzie masz move_uploaded_file?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 23.08.2025 - 01:19