Adresse relative URL d'images dans une BDD

gahmed Messages postés 79 Statut Membre -  
gahmed Messages postés 79 Statut Membre -
Bonjour,
je dispose d'une base de données MYSQL, je fais de la progammation avec php. Lorsque je veux enregistrer un nouvel article sur ma BDD dans la table articles (id_article, libelle, prix) je dois y associer une image à l'article (image est enregistrée dans un dossier IMAGES).

Mon problème est comment faire pour mettre en liaison entre une image et un article qui lui est propre. Pour plus de compréhension voici mes codes:
ajout.php
<center>
	<form action="ajouter.php" method="post" enctype="multipart/form-data">
      <table width="552" height="43">
		<tr>
			<td width="726" height="31" align="center">
				<font size=4 face="comic sans ms">
	   				Ajout Nouvel Article
				</font>
			</td>
		</tr>
	  </table>	
	  <p>&nbsp;</p>
    <table width="88%" height="276">
	   <tr>
		  <td  height="61" align="right">
		    Libelle Article
		  </td>
		  <td align="center">
		    <input type="text" size="30" name="libelle">
		  </td>
		</tr>
		<tr>
		  <td  height="61" align="right">
		    Prix Article
		  </td>
		  <td align="center">
		    <input type="text" size="30" name="prix">
		  </td>
		</tr> 
		<tr>
		  <td height="61" align="right">
		     Photo de l'Article		  </td>
		  <td align="center">
		     <input type="file" name="fichier_a_charger" />
		  </td>
		</tr> 
		<tr>
		 <td height="84" colspan="2" align="center">
		       <input type="submit" value="AJOUTER UN ARTICLE">
		 </td>
		</tr> 	    
</table>	
 </form>
</center>


Et ajouter.php
<?php
//Si au moins une donnée n'est pas transmise...
if (empty($_POST['libelle']) || empty($_POST['prix'])){
		echo 'Tous les champs ne sont pas remplis ';
		die('<a href="ajout.php">RETOUR au formulaire d\'ajout </a>');
}
else{
//Récupération des données transmises
$libelle=$_POST['libelle'];
$prix=$_POST['prix'];


  			/*Enregistrement des données sur la BDD */
//sur-quoter les données transmises avant insertion
	if(!get_magic_quotes_gpc()){
		$libelle=addslashes($libelle);
		$prix=addslashes($prix);
		}
		
			
//connexion au serveur Mysql et sélection de la BDD
   require('Connections/link.php');
//Formatage de la requête
   $req="insert into articles values ('','$libelle','$prix')";
//Exécution de la requête
   $rslt=mysql_query($req) or die(mysql_error());
//affichage des résultats, pour savoir si l'insertion a marchée:
  echo'<script>alert("Ajout Reussi")</script>';  
//Redirection vers articles.php
 header ("location: articles.php");
  }

?>


A voir également:

8 réponses

Templier Nocturne Messages postés 9989 Statut Membre 1 107
 
je trouve pas ton formulaire pour l'envoi d'image sur le site :/

c'est parce qu'il est tard et que je suis miro ?

en gros, tu fais

<?php

$nom = rand()."[extention]"
[sauvegarde de l'image "$nom" dans le dossier IMAGES]
[envoie vers le champ "id_article" de $nom]
?>
0
gahmed Messages postés 79 Statut Membre 3
 
mais sur ton code ne vois pas le chemin qui permet d'enregistrer l'image sur le dossier IMAGES
0
Templier Nocturne Messages postés 9989 Statut Membre 1 107
 
ben non, je n'ai pas ton code pour enregistrer l'image :/

donne moi le code et je te l'adapte si tu veux ;)
0
gahmed Messages postés 79 Statut Membre 3
 
voici le script que l'on doit exécuter lorsqu'on remplit le formulaire
le dossier IMAGES se trouve dans C:\wamp\www\appli\IMAGES
<?php
//Si au moins une donnée n'est pas transmise...
if (empty($_POST['libelle']) || empty($_POST['prix']) || empty($_FILES['fichier_a_charger']['name'])){
		echo 'Tous les champs ne sont pas remplis ';
		die('<a href="ajout.php">RETOUR au formulaire d\'ajout </a>');
}
else{
//Récupération des données transmises
$libelle=$_POST['libelle'];
$prix=$_POST['prix'];


  			/*Enregistrement des données sur la BDD */
//sur-quoter les données transmises avant insertion
	if(!get_magic_quotes_gpc()){
		$libelle=addslashes($libelle);
		$prix=addslashes($prix);
		}
		
			
//connexion au serveur Mysql et sélection de la BDD
   require('Connections/link.php');
//Formatage de la requête
   $req="insert into articles values ('','$libelle','$prix')";
//Exécution de la requête
   $rslt=mysql_query($req) or die(mysql_error());
//affichage des résultats, pour savoir si l'insertion a marchée:
  echo'<script>alert("Ajout Reussi")</script>';  
//Redirection vers articles.php
 header ("location: articles.php");
  }

?>


Sur ce script il manque téléchargement de l'image et son lien avec un article qui lui est propre
0
Templier Nocturne Messages postés 9989 Statut Membre 1 107
 
donc en fait, c'est le téléchargement de l'image qu'il manque...

point sur lequel je ne peux t'aider :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gahmed Messages postés 79 Statut Membre 3
 
<?php
$destination = 'appli/images'.$_FILES['fichier_a_charger']['name'];
if(move_uploaded_file($_FILES['fichier']['tmp_name'], $destination ) ) {
echo 'fichier bien envoyé';

}
?>


Avec ce script j'arrive à télécharger l'image sur C:\wamp\www\appli\IMAGES mais reste le lien entre l'image et l'article
0
Templier Nocturne Messages postés 9989 Statut Membre 1 107
 
<?php

$destination = 'appli/images'.$_FILES['fichier_a_charger']['name'];
$nom = $_FILES['name']
if(move_uploaded_file($_FILES['fichier']['tmp_name'], $destination ) ) {
echo 'fichier bien envoyé';
}
[requete SQL écrivant $nom dans la BDD]
?>

ça devrait marcher je pense ;)
0
gahmed Messages postés 79 Statut Membre 3
 
maintenant comment vérifier qu'il y a une synchronisation entre l'article et l'image? Quelle est la requête qui permet de le vérifier?
0
Templier Nocturne Messages postés 9989 Statut Membre 1 107
 
ben l'image de l'article est celle dans la BDD...
0
gahmed Messages postés 79 Statut Membre 3
 
mais quand j'essaie d'afficher à travers la requête select je n'obtiens pas d'image
0