link in database na foto upload naar server
Voor een dierenasiel maak ik een nieuwe website. Om het onderhoud te vereenvoudigen wordt het een website met een database erachter. De site bouw ik met dreamweaver mx2004.
Het bouwen van websites is niet nieuw voor me, maar met een database wel. Ik heb veel gelezen, erg veel zelfs, maar een oplossing voor mijn probleem heb ik nog niet gevonden....
Om een foto bij een dier te kunnen plaatsen, selecteer je uit een lijst de naam en id van het betreffende dier, en klik je op foto toevoegen. Het lukt me om de id variabele naar een volgende site te transporteren, waar het upload script staat. Selecteer een foto en deze wordt keurig in de doelmap op de server opgeslagen. Tot zover geen enkel probleem...
In de database wil ik bij het betreffende id (daarom het overbrengen van id voor identificatie van juiste record) de bestandsnaam opnemen van de zojuist geuploade foto. En dat lukt me niet.... Kan iemand me vertellen hoe dit moet, of me duidelijke aanwijzingen geven waar en in welke hoek ik het moet zoeken.
Ik en onze 4-voetige vrienden zouden je enorm dankbaar zijn!
Alvast bedankt,
Walter
Je voegt simpel weg de naam toe aan de DB, met of een INSERT query, als de rij nog niet bestaat, of een UPDATE query.
Je moet wel zorgen dat je het id van de desbetreffende viervoeter hebt. Ik neem even aan dat die meekomt via de $_GET.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = "UPDATE dieren SET foto = '".$bestamd."' WHERE id = '".addslashes($_GET['id'])."'";
if (! $res = mysql_query($sql))
{
echo 'Er ging iets mis met deze SQL: <br />'.$sql;
trigger_error(mysql_error());
}
?>
$sql = "UPDATE dieren SET foto = '".$bestamd."' WHERE id = '".addslashes($_GET['id'])."'";
if (! $res = mysql_query($sql))
{
echo 'Er ging iets mis met deze SQL: <br />'.$sql;
trigger_error(mysql_error());
}
?>
Zoiets zou dan moeten werken. Maar aangezien je zelf al de rest van het systeem hebt gemaakt zou het me niks verbazen als je iets anders bedoelt en dit gemakkelijk zelf kan.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = "UPDATE dieren SET afbeelding = '".$_FILES."' WHERE id = '".addslashes($_GET['id'])."'";
if (! $res = mysql_query($sql))
{
echo 'Er ging iets mis met deze SQL: <br />'.$sql;
trigger_error(mysql_error());
}
?>
$sql = "UPDATE dieren SET afbeelding = '".$_FILES."' WHERE id = '".addslashes($_GET['id'])."'";
if (! $res = mysql_query($sql))
{
echo 'Er ging iets mis met deze SQL: <br />'.$sql;
trigger_error(mysql_error());
}
?>
als je dit in je html hebt:
<input type="file" name="foto" />
Dan moet je dit pakken in PHP:
$_FILES['foto']
Dan heb je nog steeds een array, en daar kun je de naam uit halen.
$_FILES['foto']['name']
Je zult echter wel moeten controleren of deze niet al bestaat, anders heb je hem twee keer ;-) Je zou er bijvoorbeeld de datum voor kunnen zetten. Dan krijg je zoiets:
$naam = date('d_m_Y_H_i_s_').$_FILES['foto']['name'];
Maar hoe controleer je in je upload script of het file niet al bestaat?