Page 1 sur 1
image et base de donnée sql
Posté : 11 mai 2005, 16:17
par arno77
Salut à tous
je souhaite insererdans une base de donnée une image ou simplement un lien me permettant de la stocker dans un autre dossier mais ne sait oas du tout comment faire.
Quelqu'un peut il m'aider?
Posté : 11 mai 2005, 16:45
par zeus
CE que tu peut faire, c'est créer un champ de type VARCHAR dans ta base de données et stocker l'adresse de ton image dans ce champ.
Quand tu voudras retrouver l'image, il ne te suffira plus qu'a récupérer le contenu de ce champ et à aller chercher l'image au chemin spécifié
Posté : 11 mai 2005, 17:35
par rami
Ou alors tu stockes ton image directement ds ta base par un champ blob... Moi je prefere stocker le chemin comme t'as dis zeus.
Il faut donc entrer le chemin ds ta base, ensuite tu pourras faire un lien sur ton image en allant chercher son chemin ds la base!

Posté : 11 mai 2005, 18:03
par arno77
je sais que ces deux methode existe mais comment les utilise t'on en pratique
Posté : 11 mai 2005, 20:57
par pjl
Expliquation des principes d'insertion de données dans une table :
http://phpdebutant.org/article67.php
Si tu rencontres un PB, reviens avec ton code et dis nous ou ca cloche.
Posté : 12 mai 2005, 18:50
par arno77
voici mon code
<?php
//-------------------------connexion à la base----------------------------------------
include ("connexion_base_admin.php");
//------------------------------------------------------------------------------------
//transfert des variables pour eviter les problème d'encapsulation lors des insertions
$reference=$_POST['ref'];
$designation=$_POST['design'];
$description=$_POST['descrip'];
$achat=$_POST['pachat'];
$vente=$_POST['pvente'];
$qte_stock=$_POST['qtestock'];
$qte_cmd=$_POST['qtecmd'];
$delais=$_POST['delais'];
$id_four=$_POST['select1'];
$id_mark=$_POST['select2'];
$typ_prod=$_POST['select4'];
$images=$_POST['image'];
//-------------------------------------------------------------------------------------
//----------chemin de la photo qui sera inscrit dans la base de données-------------------------------------------------------------------------------------------
$ch_phProd_bdd=null;
//--------------------------------------------------------------------------------------
//-----------------------------insertion d'un produit avec photo----------------------------------------------------------------------------------------------
if(isset($images) && !empty($images))
{
// fichier temporaire------------------------------------------------------------
C EST ICI QUE CA DECONNE IL NE PREND PAS LE $_FILES['images']['tmp_name']
$tmp=$_FILES['images']['tmp_name'];
//--------------------------------------------------------------------------------
// le fichier est introuvable-------------------------------------------------------
if(!is_uploaded_file($tmp))
{
echo"fichier introuvable";
}
//--------------------------------------------------------------------------------
else
{}
// le fichier a été trouvé et uploadé ----------------------------------------------------
else
{
// on vérifie l'extension du fichier------------------------------------------------------------
$type_file = $_FILES['image']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'tif') && !strstr($type_file, 'png') )
{
echo "le type du fichier est incorrect";
}
else
{
// récupération du nom du fichier
$file = $_FILES['image']['name'];
// chemin de la photo qui sera insérée dans la base de données
$ch_phProd_bdd = "images_prod/".$reference."/".$file;
// création du dossier où sera stockée la photo
$dir = stripslashes("../../images_prod/".$reference);
if(!is_dir($dir)) // si le dossier n'existe pas on le crée
{
mkdir($dir,0777);
}
$dest_photo = $dir."/".$file; // destination de la photo à partir de la partie adminVente
if(!move_uploaded_file($tmp_file, $dest_photo)) // l'upload de la photo a échoué
{
echo "<tr><td align=\"center\"><strong>Erreur</strong></tr></td>
<tr><td> </td></tr>
<tr><td align=\"center\">L´upload de la photo du produit a échoué.</td></tr>
<tr><td align=\"center\">Vérifiez que le chemin et l´extension du fichier sont corrects.</td></tr>
<tr><td align=\"center\"><i>Rappel: les formats acceptés sont uniquement .jpeg, .jpg, .gif, .bmp, .png, .tif .</i></td></tr>
<tr><td> </td></tr>
<tr><td align=\"center\">--> <a href=\"javascript:history.go(-1)\">Réessayez</a> <--</td></tr>";
}
else // l'upload de la photo a réussi
{
// .
//------------------------requete insertion client par admin---------------------------
$ajout=mysql_query("INSERT INTO produits(reference_produit,designation,descriptif,prix_achat,prix_vente,
qte_en_stock,qte_en_cmd,delais_livraison,id_fournisseur,id_marque,id_type_produit,img)
VALUES ('$reference','$designation','$description','$achat','$vente','$qte_stock'
,'$qte_cmd','$delais','$id_four','$id_mark','$typ_prod','$ch_phProd_bdd')");
//-------------------------------------------------------------------------------------
//-------------------------------test de verification de l'insertion--------------------
if(mysql_affected_rows()>0)
{
echo "<i><font color=\"blue\">L'insertion du produit $designation a réussi</font></i>";
}
else
{
echo "<i><font color=\"blue\">L'insertion du produit $designation a echoué</font></i>";
}
//---------------------------------------------------------------------------------------
}
}
}
}
?>
Posté : 13 mai 2005, 17:47
par arno77
mon probleme est que mon echo de $tmp se fait bien mais qu'ensuite je me retrouve dans fichier introuvable je pense que le code contenu dans le eslse est bon mais pourquoi je n'y vais pas mystere
if(isset($images) && !empty($images))
{
$tmp=$_FILES['image']['tmp_name'];
echo $tmp."<br>";
//test si le fichier est trouvé------------------------------------------------------
if(!is_uploaded_file($tmp))
{
echo"fichier introuvable";
}
else
{
echo "toto";
}
Posté : 13 mai 2005, 18:04
par arno77
j'ai remplacer $tmp par $tmp_file est cela marche
va savoir charles au PMU on joue comme on aime
merci à tous