foto in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis meijer

dennis meijer

09/06/2010 23:18:00
Quote Anchor link
mensen ik wil graag een aantal foto's kunnen opslaan in database maar ik weet niet hoe dit moet kan iemand mij verder helpen?


dit is wat ik heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE project (
id int(3) unsigned NOT NULL auto_increment,
naam varchar(40) NOT NULL,
beschrijving varchar(8000) NOT NULL,
foto0 image,
foto1 image,
foto2 image,
foto3 image,
foto4 image,
foto5 image,
foto6 image,
foto7 image,
foto8 image,
foto9 image,
PRIMARY KEY(id)
)
 
PHP hulp

PHP hulp

21/11/2024 11:36:41
 
Jelmer -

Jelmer -

09/06/2010 23:35:48
Quote Anchor link
Twee tabellen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
Project
- id
- naam
- beschrijving

en Foto
- id
- project_id
- path


Op die manier kan je oneindig veel foto's aan een project hangen. Of je daadwerkelijk de foto wil opslaan in de database, of het pad/url/naam, moet je je nog even afvragen. Ikzelf zou het niet in de database doen, aangezien je dan altijd via PHP moet om de foto uit de database te halen. En dan moet je zelf rekening houden met de juiste headers, HEAD-requests, caching, e.d om het redelijk snel te houden. Als je de foto's gewoon als bestanden opslaat kan je Apache dat allemaal laten doen en die is daar zoveel beter in...
 
Dennis meijer

dennis meijer

09/06/2010 23:39:32
Quote Anchor link
ja maar kweet niet hoe het meot dat gewoon opslaan:P maar hoe maak ik die database dan waar die foto inmoet want dat snap ik niet:$

wel goeie tip van 2 tabellen;)
 
Jelmer -

Jelmer -

09/06/2010 23:47:02
Quote Anchor link
Ieder project heeft een nummer, het id. Je kan nu foto's koppelen aan dat project op basis van dat id. In je database kan je dan later wanneer je alle foto's wilt terugvinden die bij dat project horen, zoeken naar de foto's waarbij fotos.project_id = projecten.id. Je kan dan ook gemakkelijk tellen hoeveel foto's ieder project heeft, en dat soort handige dingen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
mysql_query("INSERT INTO projecten (naam, beschrijving) VALUES('portfolio', 'dit script zelf')");

$project_id = mysql_lastinsertid();

mysql_query("INSERT INTO fotos (project_id, pad) VALUES($project_id, 'http://...')");


En de foto's terugvinden?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$result = mysql_query("SELECT pad FROM fotos WHERE project_id = ".intval($_GET['project_id']));
 
Dennis meijer

dennis meijer

09/06/2010 23:58:29
Quote Anchor link
dat snap ik wel maar kbedoel in de database hoe maak je dat? die tabel?

dus zoals ik het had maar dan met foto? dat snap ik niet de rest wel;)
 
- Ariën  -
Beheerder

- Ariën -

10/06/2010 00:23:09
Quote Anchor link
Zie Jelmers voorbeeld :-)
 
Dennis meijer

dennis meijer

10/06/2010 08:26:54
Quote Anchor link
dat snap ik nu wel maar er word om mijn vraag heengedraaid.

ik wil gewoon even weten hoe je een tabel insteld waar jee foto of een bestand in kunt doen.

kga het wel op die manier van jelmer doen maar wil het toch even weten.
 
Jelmer -

Jelmer -

10/06/2010 10:23:05
Quote Anchor link
kolom-type blob, en dan heel simpel met file_get_contents de inhoud van je bestand in PHP inlezen, en in je query stoppen. Net zoals een string. Je snapt natuurlijk al wat de gevolgen zijn: je moet het hele bestand inlezen, escapen. MySQL moet dat hele bestand als query parsen. Reken maar uit wat dat met je snelheid/geheugen doet.

Andere manier is MySQLi gebruiken om met je database te praten, en dan prepared statements. Vervolgens kan je met $stmt->bind_param('ib', $project_id, fopen($_FILES['upload']['tmp_name'], 'rb')) bijvoorbeeld je data aan je query hangen. Dan wordt de data apart naar MySQL toegestuurd, in stukjes, wat in principe dus goed gaat met grote bestanden omdat het bestand nooit in z'n geheel in het geheugen hoeft te zitten.
 
Dennis meijer

dennis meijer

10/06/2010 10:26:06
Quote Anchor link
ok dat word een beetje te moeilijk voor mij:P dus ga het op jouw manier proberen;)

kweet alleen neit hoe het allemaal moet dus als iemand mij paar hints kan geven zou dat mooi zijn.:$
 
TJVB tvb

TJVB tvb

10/06/2010 10:43:14
Quote Anchor link
De grote vraag is waarom wil je de foto's zelf in de database hebben staan?
 
Dennis meijer

dennis meijer

10/06/2010 10:46:04
Quote Anchor link
nou ik dacht dat makkelijker was met eruithalen enzovoort;) maar neemt natuurlijk veel ruimte in beslag dus ga het gewoon opslaan in de ftp;)

alleen ik zou echt niet weten hoe dat moet dus als iemand een beginnetje kan maken of mij een link naar een tutorial kan geven zou dat fijn zijn.
 
Niek Kasius

Niek Kasius

25/08/2010 06:14:39
Quote Anchor link
CREATE TABLE `afbeelding` (
`nummer` int(10) NOT NULL auto_increment,
`omschrijving` varchar(30) NOT NULL,
`afbeelding` varchar(50) NOT NULL,
PRIMARY KEY (`nummer`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;



INSERT INTO `afbeelding` (`nummer`, `omschrijving`, `afbeelding`) VALUES
(1, 'dit ben ik', 'images/ik.jpg');
 
Justin S

Justin S

25/08/2010 09:14:49
Quote Anchor link
Tutorial

Was zeker 2 minuten zoeken op Google...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.