IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

ecriture correcte d'un chemin dans un champ d'une base de données


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut ecriture correcte d'un chemin dans un champ d'une base de données
    Bonjour,


    Pouvez-vous me dire comment écrire un chemin vers fichier dans un champ de base de données mysql(qui s'appelerait lien_image par exemple );je me prends la tête depuis un bon moment car le caractère "\" n'est pas saisi dans le chemin vers le fichier(ex :C:\ : le \ n'apparaît pas et la recherche ne peut s'effectuer).

    Merci beaucoup à vous de votre aide.

    Cordialement.

    new_wave

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Deja c'est une mauvaise idée de stocker le chemin depuis la racine du disque : si tu changes de serveur ou de structure, tous tes chemins seront faux.

    Dans tous les cas, il faut echapper les valeurs ou utiliser des requêtes préparées.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut stocker le chemin vers un fichier image
    Bonjour,

    Je te remercie de ta réponse.
    Voici ma question posée de manière plus précise, avec présentation de la situation.

    Le fichier b1.jpeg est situé dans le repertoire Site_Projet, qui est un sous-répertoire du répertoire www (web local)
    J'ai stocké dans le champ lien_image_meuble(type varchar(100)) de la table meuble, le chemin relatif suivant b1.jpeg., pour l'enregistrement qui correspond à id_meuble =1

    Au niveau de mon code php j'ai ecrit cela dans le fichier scrip_produit.php
    Je te remercie d'essayer de m'expliquer comment faire pour afficher l'image sélectionnée dans ma requête sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    
    <?php
    // connexion a la BD
    // Paramètres persos
    $host 	= "localhost"; 	// voir hébergeur
    $user 	= "root"; 	// identifiant de votre BD (vide ou "root" en local)
    $pass 	= ""; 	// mot de passe de votre BD (vide en local)
    $bdd 	= "perrin_sa"; 	// nom de la BD
    // --------------------------------
    // connexion
    @mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
    @mysql_select_db("$bdd") or die("Impossible de se connecter");
    echo " la connexion a bien eu lieu";
    // --------------------------------
    
    ?>
    
    
    <?php
    //stockage de la première partie du  chemin vers le fichier b1.jpeg
    
    $img_url = "http://127.0.0.1/Site_Projet/"; 
    
    
    // La requete  :
    //dans le cas présent je n'ai testé que pour une valeur de id_meuble =1 mais je souhaite ensuite sélectionner les champs design_meuble, descrip_meuble, lien_image_meuble de tous les enregistrements
    $query = "SELECT design_meuble, descrip_meuble, lien_image_meuble FROM meuble  where id_meuble =1";
    $result = mysql_query($query);
    $meuble = mysql_fetch_array($result);
    
    
    
    // $NbrLigne : le nombre de lignes
    // $NbrCol : le nombre de colonnes
    $NbrLigne=1;
    $NbrCol=1;
    while($meuble !=false){
    ?>
    <table>
    <tbody>
    <?php
    //------------------------------
    	// pour chaque ligne
    	for ($i=1; $i<=$NbrLigne; $i++) 
    	{ 
    ?>
    	<tr>
    <?php		// pour chaque colonne (de la ligne)
    		for ($j=1; $j<=$NbrCol; $j++) 
    		{ 
    ?>		<td>
    <?php			// -------------------------
    			// DONNEES A AFFICHER dans la cellule
    			echo $meuble['design_meuble']; // CONTENU de la CELLULE (exemple)
    			echo $meuble['descrip_meuble'];
    			
    			//A présent, j'essaye d'afficher l'image  b1.jpeg qui se trouve au niveau de l'enregistrement pour lequel id_meuble =1 mais je n'y parviens pas 
    			//header("Content-type: image/jpeg");
    			//move_uploaded_file("b1.jpeg","http://localhost/Site_Projet/b1.jpeg"); 
    			echo '<img src="'.$img_url.$meuble['lien_image_meuble'].'" />';
    			
    			?>
    			
    			
    			
    			
    			
    			// -------------------------
    ?>		</td>
    <?php	} // end for
    ?>
    	</tr>
    <?php
    	} // end for
    //le code ci-dessous s'applique quand il y a plusieurs enregistrement résultat
    	//$meuble = mysql_fetch_array($result);
    	}//fin de while 
    ?>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    La première chose a faire va être de présenter correctement ton code sinon tu ne t'y retrouveras jamais.

    Ensuite regarde ce que tu obtiens comme code HTML avec ça.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut affichage d'image dont le chemins est stocké en BDD
    Bonjour et merci de tes conseils que j'ai bien suivis je l'espère.

    Je travaille à aider un jeune qui débute en développement mysql-php .

    Je te fais parvenir le code de la première page html qui est la page d'accueil qui, par le biais d'un lien amène à la page scriptproduit.php .

    J'ai écrit le code des fonctions connexion_BDD() et affichage_donnees_BDD dans un fichier fonctions.php, que j'ai inclut dans le fichier scriptproduit.php .
    tu trouveras ce fichier fonctions.php en fichier joint.

    Je ne peux pas te faire parvenir le fichier de bdd .sql qui,est trop lourd , mais le fichier imp_ecran contient une impression d'écran de la table meuble_2 (la table meuble contient directement les image dans le dernier champ et je ne l'ai pas supprimée pour l'instant)dont le premier enregistrement(id_meuble=1)contient la valeur b1.jpeg pour le champ lien_image_meuble.

    Je t'envoie également dans le fichier imp_ecran_bdd les impressions d'écran des fichiers accueil.html et scriptproduit.php pour que tu voies le résultat obtenu une fois que le fichier scriptproduit.php est interprété .;
    Tu peux constater sur l'impression ecran du fichier scriptproduit.php que l'image n'apparaît pas; seul le texte correspondant au contenu des champs design_meuble et descrip_meuble apparaît.

    Dernier petit rappel, j'ai stocké dans le repertoire www, le repertoire "Site_Meubles_Projet_Nicolas_Gerard" qui contient les fichiers b1.jpeg , accueil.php, scriptproduit.php.

    Je te remercie encore beaucoup de ton aide, d'autant plus que nous sommes un jour férié!

    Bien cordialement.

    new_wave
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est très gentil de m'envoyer tout ça mais je te demandais seulement de contrôler le code source de la page obtenue.
    Je remarque simplement que dans le fichier fonctions.php que tu as joins, l'affichage de l'image est en commentaire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut affichier une image
    Bonjour,

    Le problème est que je je ne souhaite pas obtenir l'affichage en indiquant le nom de l'image mais en récupérant cette image par le biais du lien stocké dans la base de données donc par le biais de l'instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img src="'.$img_url.$lien['lib_lien'].'" />';
    C'est à ce niveau qu'il faut "chercher l'erreur".

    Je te remercie beaucoup de bien vouloir m'aider sur ce point.

    Cordialement.

    new_wave

Discussions similaires

  1. Remplacer un nom dans tous les champs d'une base de données
    Par dudux2 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/11/2014, 10h32
  2. [SAX] 2 balises identiques dans 2 champs différents de base de données
    Par devloper07 dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 22/10/2012, 16h21
  3. Réponses: 9
    Dernier message: 18/06/2010, 11h26
  4. Réponses: 3
    Dernier message: 11/12/2007, 15h23
  5. ADO et les guillemet dans les champs d'une base Texte
    Par jnc dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/10/2005, 08h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo