Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Galeria & mysql
Forum PHP.pl > Forum > Bazy danych > MySQL
Sir Blade
Bawil sie ktos w te klocki??
Jakies sugestie questionmark.gif

Jaka predkosc dzialania takiego skryptu?? Czy wogole jest sens wsadzac grafike do bazy??
Sir Blade
Cytat
Jaka predkosc dzialania takiego skryptu?? Czy wogole jest sens wsadzac grafike do bazy??



wlasnie sobie sprawdzilem i fajnie hula....warto!!!
Sir Blade
Cytat
Cytat
Jaka predkosc dzialania takiego skryptu?? Czy wogole jest sens wsadzac grafike do bazy??



wlasnie sobie sprawdzilem i fajnie hula....warto!!!



wlasnie sie sypie.
Oto problem:

tworze baze
Kod
CREATE TABLE fotki (

   idnum int(11) DEFAULT '0' NOT NULL auto_increment,

   fotka mediumblob NOT NULL,

   PRIMARY KEY (idnum),

   KEY artnr (idnum),

   UNIQUE artnr_2 (idnum)

);


czytam plik z grafika

Kod
$imagedata = addslashes(fread(fopen($userfile,  "r"), filesize($userfile)));


zapisuje do bazy

Kod
$query =  "insert into fotki (idnum,fotka) values('$idnum','$imagedata')";


wszystko oki tylko jak wypisuje baze
Kod
<?

Header( "Content-type: image/gif");

$db = mysql_connect("localhost", "httpd", "");



mysql_select_db("baza", $db);



$query = "Select * from fotki";

    

$mysql_result= mysql_query($query, $db);    





while($row = mysql_fetch_array($mysql_result))

    {

    

    echo "$row[fotka]";

    



    }



?>


pokazuje mi tylko gorna czesc zdjecia nigdy cale


Prosba o jakas wskazowke!!! biggrin.gif
castor
to otworz fotke w trybie binarnym :

Kod
fopen("fotka.jpg","rb");


...i powiedz po co ci to addslashes() przy otwieraniu fotki?
Sir Blade
Cytat
to otworz fotke w trybie binarnym :

Kod
fopen("fotka.jpg","rb");
?


nic sie nie dzieje,
bede myslal jak to ugryzc
Cytat
...i powiedz po co ci to addslashes() przy otwieraniu fotki?




jak sie uzywa paru okien naraz to tak pozniej jest :wink: po drugie ctrl+c i ctrl+v RULEZ
castor
jesli otworzysz plik binarnie i wrzucisz do BLOBA to powinnno byc OK
..lecz twoj sposob wyswietlania fotki jest dziwny

jesli skrypt ma zwracac binaria to w innym pliku rob tak;

<img src="skryp_generujacy_fotke.php">

....a nie ty fotke echem do przegladarki wyrzucasz
Sir Blade
cos jest nie tak z czytaniem pliku i zapisem do bazy..

plik.gif 'wazy' ok 3,5K natomiast jesliby go wyczytac pod phpmyadmin'em tylko ok. 1,5


musze sprawdzic inne formy zapisu...
castor
nie wiem co zes tam namieszal :wink:
1.
uwazam ze przechowywanie zdiec w bazie to pomylka :wink:

lecz jesli tak bardzo chcesz to przed chwilo sprawdzilem co zes napisal i dzial a wiec:

tak wczytalem plik do zmiennej..
...addslashes() jednak sa potrzebna bo w pliku ze zdieciami jest duzo znakow specjalnych i baza bledy wywala :wink:
Kod
$plik="beispiel.jpg";

$fp=fopen($plik,"rb");

$pic=addslashes(fread($fp,filesize($plik)));

fclose($fp);


to jasne :wink:
Kod
$sql_cmd="INSERT INTO img (id,name,data) VALUES(0,'beispiel.jpg','$pic')";

$rs=mysql_query($sql_cmd,$db_polaczenie);


a tak wyciagalem
Kod
$sql_cmd="SELECT data FROM img WHERE id=1";

$rs=mysql_query($sql_cmd,$db_polaczenie);

$tab=mysql_fetch_array($rs,MYSQL_ASSOC);


a tak wyswietlilem
Kod
print($tab['data']);


lub mozesz w innym pliku tak jak juz ci mowilem
Kod
<img src=skrypt.php>


no i dziala wiec nie wiem co masz za problem :wink:
Sir Blade
thx

sprawdze na spokojnie bo jak zawsze gdzies sie musze rypnac a potem szukam jak glupi.... laugh.gif

co do pomyslu z galeria w bazie. zawsze to new experience
msulik
Cytat
bo w pliku ze zdieciami jest duzo znakow specjalnych i baza bledy wywala
A ja myślałem, że to jest nieistotne. Przecież w bazie MySQL nie ma oddzielania pól czy czegokolwiek takiego. Każde pole ma swój typ, a dane typu np. BLOB mają dodatkowe bajty na określenie długości.
Sir Blade
thx castor... skrypt robi robote...

biggrin.gif
castor
Cytat
Cytat
bo w pliku ze zdieciami jest duzo znakow specjalnych i baza bledy wywala
A ja myślałem, że to jest nieistotne. Przecież w bazie MySQL nie ma oddzielania pól czy czegokolwiek takiego. Każde pole ma swój typ, a dane typu np. BLOB mają dodatkowe bajty na określenie długości.


to sprobuj....
...w bazie jest to nie istotbe lecz w wysylaniu do wabzy :wink:
bialy7
Hmmm na podstawie tego co tu wyczytalem kod dodajacy zdjecie do tabeli powinien wygladac tak :

[php:1:551cb3ddda]<?php
<?
#struktura bazy ( wykonana w shella )
CREATE TABLE fotki (
idnum int(11) DEFAULT '0' NOT NULL auto_increment,
fotka mediumblob NOT NULL,
PRIMARY KEY (idnum),
KEY artnr (idnum),
UNIQUE artnr_2 (idnum)
);
#łączenie z serverem
$database = "localhost";
$user = "x";
$pass = "x";
$base = "x";
$db = mysql_connect("$database", "$user", "$pass");
#dodanie rekordu do tabeli
$userfile="logo.jpg";
$imagedata = addslashes(fread(fopen($userfile, "r"), filesize($userfile)));
$query = "insert into fotki (idnum,fotka) values('1','$imagedata')";
$rs=mysql_query($query,$db);
?>
?>[/php:1:551cb3ddda]
Niestety nie dziala sad.gif
Mam mysql Ver 11.16 Distrib 3.23.49, for pc-linux-gnu (i686)
Wszelkiego rodzaju pomoc bedzie mile widziana winksmiley.jpg
Liko
[php:1:130b07fe61]<?php
<?
#struktura bazy ( wykonana w shella )
CREATE TABLE fotki (
idnum int(11) DEFAULT '0' NOT NULL auto_increment,
fotka mediumblob NOT NULL,
PRIMARY KEY (idnum),
KEY artnr (idnum),
UNIQUE artnr_2 (idnum)
);
#łączenie z serverem
$database = "localhost";
$user = "x";
$pass = "x";
$base = "x";
$db = mysql_connect("$database", "$user", "$pass");
#dodanie rekordu do tabeli
$userfile="logo.jpg";
$imagedata = addslashes(fread(fopen($userfile, "rb"), filesize($userfile)));
$query = "INSERT INTO fotki (idnum,fotka) VALUES(null,'$imagedata')";
$rs=mysql_query($query,$db);
?>
?>[/php:1:130b07fe61]

Mały bład a jednak istotny.
skubekk
Ja też myśle nad tym czy wrzucić zdjęcia do bazy i doszedłem do wniosku ze wszystko ma swoje wady i zalety:

Zalety:
Łatwo zrobić BACKUP-a wszystkich danych. Bo mamy je w jednym miejscu.

Wady:
Duża obiętośc zdjęć przy 500 zdjęciach po 100kb baza biędzie zajmowac 50mb:/

Może zna ktoś inne wady i zalety??
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.