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 :

Afficher image et description stockée dans MySQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    développeur web
    Inscrit en
    Août 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : développeur web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 26
    Points : 10
    Points
    10
    Par défaut Afficher image et description stockée dans MySQL
    Bonjour,

    Je me heurte à un mur depuis des jours déjà. J'arrive à uploader une image et sa description mais pas à l'afficher.

    Je voudrais qu'a l'ajout de cet upload, en dessou de cette même page, l'image et la description de l'image s'affiche.
    Par la suite j'aimerai afficher cette image et cette description dans l'index.php.

    Le formulaire HTML
    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
     
     <p>Ici vous pouvez ajouter ou supprimer une image.</p>
     
    			 <form method="post" action="produits.php" enctype="multipart/form-data">
     
    		 <br/>
    		 		 <label for="image">Upload image</label>
     
    				 <input type="file" id="file" name="image" required="required"/>
    		 <br/>
    				 <label for="desc">Description</label>
    				 <textarea id="desc" name="desc" required="required"></textarea> <!-- Remplir ce champ est requis -->
    		 <br/>
    				 <input type="submit" name="sumit" value="Créer l'actualité">
    		 	</form>

    ensuite le code PHP qui permet l'upload et de préparer tout ceci dans un array ! À noter que j'utilise la class_upload.php.
    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
     
    include 'ressource/class.upload.php';
     
     
    // Instanciation de l'objet de traitement pour l'upload
     
     
    $monFichier = new upload($_FILES['image']);
     
    // Force l'écrasement si un fichier existe déjà avec le même nom
    $monFichier->file_overwrite = true;
     
    if ($monFichier->uploaded) {
    	// Gestion de la sauvegarde de l'original
    	$monFichier->process('C:\\xampp\\htdocs\\Morand\\images\\uploads\\');
     
     
    	if ($monFichier->processed) {
    		$monFichier->clean();
     
    		if(isset($_POST['sumit'], $_POST['desc'])) {
     
    			if(!empty($_POST['sumit']) && !empty($_POST['desc']))
    			{
     
     
    				$text =$_POST['desc'];
     
    				$insert_desc = $bdd->prepare("INSERT INTO images VALUES ('', '', :desc, '1')"); 
    				$insert_desc->execute(array(
    				':desc' => $text
    				));
     
    				$insert_desc = $bdd->prepare("UPDATE images SET image=?"); 
    				$insert_desc->execute(array(
    												$monFichier->file_dst_name
    												));				
    			}
    			}
     
    		}
     
    	}
     
     
    	$produits = array();
     
    	$insert_desc = $bdd->prepare("SELECT id, image, desc, valid FROM images WHERE valid = '1'"); # Selection de toutes les news valides
    	$insert_desc->execute();
     
    	while($result = $insert_desc->fetch(PDO::FETCH_ASSOC))
    	{
    		$produits[] = $result; # Replissage du tableau avec ces valeurs
    	}
     
    	print_r ($produits);
     
     
    ?>
    et enfin on l'affiche sur cette même page (et ça ne fonctionne pas donc)
    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
     
    <ul id="news">
     
    	 <?php
     
     
     foreach($produits as $pr) # Boucle qui affiche les news
    		 {
    			 echo '
    					<li>
    						 <article>
    							 <header>
    								 <h5>'.$pr['desc'].'</h5>
    							 </header>
    
    							
    						 
    						 </article>
    					</li>
    		';
    		 }
     
    	?>
     
     
     </ul>
    je n'ai pas mis l'affichage <img src="..." ...> car je ne sais pas du tout comment afficher.
    Mais la description de l'image devrait s'afficher déjà, mais elle ne s'affiche pas je comprends pas ...

    Merci d'avance pour votre aide

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Il y a quelque chose dans la db ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    développeur web
    Inscrit en
    Août 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : développeur web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Merci de ta réponse !

    Dans la DB il y a bien l'image ET la description qui sont inscrit donc l'upload ce fait bien !

    J'ai oublié de préciser mais je fais un print_r ($produits); pour voir ce qu'il y a dans l'array mais c'est marqué ''array ()''

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/ 2 requêtes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    				$insert_desc = $bdd->prepare("INSERT INTO images VALUES ('', '', :desc, '1')"); 
    				$insert_desc->execute(array(
    				':desc' => $text
    				));
     
    				$insert_desc = $bdd->prepare("UPDATE images SET image=?"); 
    				$insert_desc->execute(array(
    												$monFichier->file_dst_name
    												));
    1 seule suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    				$insert_desc = $bdd->prepare("INSERT INTO images VALUES ('', :image, :desc, '1')"); 
    				$insert_desc->execute(array(
    				':image' => $monFichier->file_dst_name,
    				':desc' => $text
    				));
    2/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     	$select_desc = $bdd->prepare("SELECT id, image, desc, valid FROM images WHERE valid = '1'"); # Selection de toutes les news valides
    	$select_desc->execute();
     
    	$produits = $select_desc->fetchAll(PDO::FETCH_ASSOC);
    3/ Affichage de l'image :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    	echo '<img src="/images/uploads/'.htmlspecialchars($pr['image']).'" alt="" />';
    (chemin à vérifier)


    CONSEIL : LIS des tutos...
    Et avant de coder : il faut réfléchir avec LOGIQUE à une bonne CONCEPTION.
    Dernière modification par Invité ; 01/09/2015 à 17h15.

  5. #5
    Membre à l'essai
    Homme Profil pro
    développeur web
    Inscrit en
    Août 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : développeur web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Merci de la réponse, très complète !

    Je test ce soir ou demain et je vous tiens au courant !



    une chose que je comprends pas c'est le .htmlspecialchars
    maj : c'est ok j'ai lu quelques infos sur htmlspecialchars qui convertit des entité en html !

  6. #6
    Invité
    Invité(e)

  7. #7
    Membre à l'essai
    Homme Profil pro
    développeur web
    Inscrit en
    Août 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : développeur web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Bonjour !

    J'ai éssayé une partie de ton code mais ça n'upload rien dans la base de donnée ...


    De plus, maintenant en mettant mon ancien code pareil, plus rien ne s'upload ...


    je vais vous donner le code entier.


    produitsRessource.php
    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
    <?php
     
    #Connexion base de donnée
    include_once 'idents.php';
    include 'class.upload.php';
     
     
    #Token
     
     
    date_default_timezone_set('Europe/Zurich'); # Définition du Time Zone
     
    $token = '';
    if(isset($_COOKIE['token']) && !empty($_COOKIE['token']))
    	$token = $_COOKIE['token']; # Récupération des Cookies & Ou Sessions
     
    $token = $token; # Protection des Injection SQL ect...
    $login_q = $bdd->prepare("SELECT * FROM users WHERE token = :token AND valid = '1'");
    $login_q->execute(array(
    		'token' => $token
    ));
     
    if($login_q->fetchColumn() < 0) # Si login pass et valid nok
    {
    	header('Location: connexion.php'); # Redirection
     
    	exit();
    }
     
     
     
     
    #Remplissage Produits
     
     
    // Instanciation de l'objet de traitement pour l'upload
     
     
     
    $monFichier = new upload($_FILES['image']);
     
    // Force l'écrasement si un fichier existe déjà avec le même nom
    $monFichier->file_overwrite = true;
     
    if ($monFichier->uploaded) {
    	// Gestion de la sauvegarde de l'original
    	$monFichier->process('C:\\xampp\\htdocs\\Morand\\images\\uploads\\');
     
     
    	if ($monFichier->processed) {
    		$monFichier->clean();
     
    		if(isset($_POST['sumit'], $_POST['desc'])) {
     
    			if(!empty($_POST['sumit']) && !empty($_POST['desc']))
    			{
     
     
    				$text =$_POST['desc'];
     
    				$insert_desc = $bdd->prepare("INSERT INTO images VALUES ('', :image, :desc, '1')"); 
    				$insert_desc->execute(array(
    				':image' => $monFichier->file_dst_name,
    				':desc' => $text
    				));
     
    			}
    			}
     
    		}
     
    	}
     
     
    	$produits = array();
     
    	$select_desc = $bdd->prepare("SELECT id, image, desc, valid FROM images WHERE valid = '1'"); # Selection de toutes les news valides
    	$select_desc->execute();
     
     
    	$produits = $select_desc->fetchAll(PDO::FETCH_ASSOC);
     
    	echo '<img src="../images/uploads/'.htmlspecialchars($produits['image']).'" alt="" />';
     
     
     
     
     
    #Effacer
     
    if(isset($_GET['delete']) && !empty($_GET['delete'])) # Si le paramètre delete est spécifié dans l'URL
    {
    	$id = $_GET['delete']; # Protection des Injection SQL ect...
    	$delete_q = $bdd->prepare("UPDATE produits SET valid = '0' WHERE id = :id");
    	$delete_q->execute(array(
    			'id' => $id
    	));
    }
     
     
    ?>



    produits.php

    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
    80
    81
    82
    83
    84
     
    <?php 
     
    require 'ressource/produitsRessource.php';
     
    ?>
     
     
    <!DOCTYPE html>
    <html lang="fr">
     <head>
     <meta charset="utf-8" />
     <title>Administration Morand</title>
     
     <link rel="stylesheet" href="../css/mainCms.css" type="text/css" />
     
     
     
     </head>
     
     <body>
     
     
     <div id="nav">
     
         <ul>
             <li><a class="aMenu" href="actu.php">Actualités</a></li>
             <li><a class="aMenu" href="page.php">Pages</a></li>
             <li><a class="aMenu" href="produits.php">Produits</a></li>
             <li><a class="aMenu" id="deco" href="logout.php">Se déconnecter</a></li>
         </ul>
     
     </div>
     
     
     
     
     
     
     <section>
         <header id="titleCms">
             <h4>Espace administration Morand</h4><h6>Ajouter / Supprimer une actualité</h6>
         </header>
     
             <p>Ici vous pouvez ajouter ou supprimer une actualité. Celle-ci apparaîtra automatiquement sur la page d'accueil.</p>
     
                 <form method="post" action="produits.php">
     
                     <label for="image">Upload image</label>
     
                     <input type="file" id="file" name="image" required="required"/>
             <br/>
                     <label for="desc">Description </label>
                     <textarea id="desc" name="desc"></textarea> <!-- Remplir ce champ est requis -->
             <br/>
                     <input type="submit" name="sumit" value="Créer l'actualité">
                 </form>
     
         <header>
             <h5>Actualités déjà publiées</h5>
          </header>
     
     <!-- boucle affichant les dernières actus -->
     <ul id="news">
         <?php
             foreach($produits as $pr) # Boucle qui affiche les news
             {
                 echo '
            
                         ';
             }
        ?>
     </ul>
     
     
     
     <footer id="footer_site">
         <p id="copyright">© Morand Tous droits réservés</p>    
     </footer>
     
     
     <!--[if lte IE 8]></div> <! [endif]-->
    </body>
    </html>

    j'ai aussi 2 notices :

    Notice: Undefined index: image in C:\xampp\htdocs\Morand\cms\ressource\produitsRessource.php on line 40



    Notice: Undefined index: image in C:\xampp\htdocs\Morand\cms\ressource\produitsRessource.php on line 83

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ le code du fichier produitsRessource.php que tu montres fait... 77 lignes.

    Difficile d'y trouver la ligne 83...

    2/ Revois sérieusement la LOGIQUE et l'enchainement des actions...

  9. #9
    Membre à l'essai
    Homme Profil pro
    développeur web
    Inscrit en
    Août 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : développeur web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Pardon, j'ai édité, le code est complet.

    Par contre je vois pas du tout où est le problème ... je dois rendre tout ceci pour le 11 septembre alors je suis stresse

    le ''echo '<img src="../images/uploads/'.htmlspecialchars($produits['image']).'" alt="" />';'' n'est pas dans le bon fichier mais là n'est pas le problème...

  10. #10
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($produit as $value){
        echo '<img src="../images/uploads/'.htmlspecialchars($value['image']).'" alt="" />';
    }

  11. #11
    Invité
    Invité(e)
    Par défaut
    L'erreur ligne 40 est ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $monFichier = new upload($_FILES['image']);
    Quand je parlais de revoir la LOGIQUE :

    1/ Qu'en est-il de la GESTION D'ERREUR ??
    • vérification si champs obligatoires remplis ?...[/I]

    2/ Les actions s'enchainent-t-elles dans le bon ORDRE ?
    • tu uploades l'image SANS vérifier qu'elle existe,
    • et AVANT de vérifier que la description est remplie alors que tu l'as indiquée comme "obligatoire" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		if(isset($_POST['sumit'], $_POST['desc'])) {
     
    			if(!empty($_POST['sumit']) && !empty($_POST['desc']))
    			{
    Penses-tu que ces lignes soient au bon endroit ?
    D'ailleurs, a-t-on besoin d'avoir ces 2 lignes de conditions ?
    Une seule suffit : je te laisse trouver laquelle,... logiquement
    Dernière modification par Invité ; 02/09/2015 à 18h55.

  12. #12
    Membre à l'essai
    Homme Profil pro
    développeur web
    Inscrit en
    Août 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : développeur web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    L'image et la description s'upload bien sur le serveur.

    j'aimerai déjà l'afficher avant tout .. apparemment quand je fais un var_dump ou un print_r de $produits ça m'affiche array(0) { } et array() (sur la page produits.php qui est sensé afficher l'image et la description.

    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
     
    if ($monFichier->uploaded) {
    	// Gestion de la sauvegarde de l'original
    	$monFichier->process('C:\\xampp\\htdocs\\Morand\\images\\uploads\\');
     
     
    	if ($monFichier->processed) {
    		$monFichier->clean();
     
     
    		if(isset($_POST['sumit'], $_POST['desc'])) {
     
    			if(!empty($_POST['sumit']) && !empty($_POST['desc']))
    			{
     
     
    				$text =$_POST['desc'];
     
    				$insert_desc = $bdd->prepare("INSERT INTO images VALUES ('', :image, :desc, '1')"); 
    				$insert_desc->execute(array(
    				':image' => $monFichier->file_dst_name,
    				':desc' => $text
    				));
     
    			}
    		} 
     
    		$prod = array();
     
    		$insert_desc = $bdd->prepare("SELECT id, image, desc, valid FROM images WHERE valid = '1'"); # Selection de toutes les news valides
    		$insert_desc->execute();
     
     
    		while($result = $insert_desc->fetch(PDO::FETCH_ASSOC))
    		{
    			$prod[] = $result; # Replissage du tableau avec ces valeurs
    		}
     
    	}
    }
    est-ce que ça serait la class_upload.php que j'include ? Un mauvais placement de la boucle ?

    De l'air un peu plus précis serait mieux vu que je débute ...

    je corrigerai le reste du code dès que j'aurais réussis à déjà afficher l'image et la description, ça fait 1 semaine que je suis dessus ...

  13. #13
    Invité
    Invité(e)
    Par défaut
    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
    <?php
    // ------------------------------
    $upload_ok = false;
    $msg_err = '';
    // Si le formulaire est posté, on traite.
    if(isset($_POST['sumit']))
    {
    	// Champs obligatoires : image ET description
    	if(!empty($_FILES['image'], $_POST['desc']))
    	{
    		$monFichier = $_FILES['image'];
    		$text = $_POST['desc'];
     
    		if ($monFichier->uploaded)
    		{
    			// Gestion de la sauvegarde de l'original
    			$monFichier->process('C:\\xampp\\htdocs\\Morand\\images\\uploads\\');
    			if ($monFichier->processed)
    			{
    				$monFichier->clean();
    				// -----------------
    				// Insertion en BdD
    				$insert_desc = $bdd->prepare("INSERT INTO images VALUES ('', :image, :desc, '1')"); 
    				$insert_desc->execute(array(
    					':image' => $monFichier->file_dst_name,
    					':desc' => $text
    					));
    				// -----------------
    				// ON RECUPERE le dernier id créé !
    				$produitId = $bdd->lastInsertId('id_produit'); // -> VERIFIER le NOM du champ !
    				// -----------------
    				// ok
    				$upload_ok = true;
    			} else {
    				$msg_err ='Oups ! On a perdu l\'image... Recommencez !';
    				$upload_ok = false;
    			}
    		}
    	} else {
    		$msg_err ='Remplissez tous les champs obligatoires !';
    		$upload_ok = false;
    	}
    }
    ?>
    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
    <?php
    // ------------------------------
    // Affichage de l'image et description
    if($upload_ok)
    {
    	// -----------------
    	// On cherche le produit en BdD
    	$select_desc = $bdd->prepare("SELECT * FROM images WHERE select = :produitId"); 
    	$select_desc->execute(array(
    		':produitId' => $produitId
    		));
    	$row = $select_desc->fetch(PDO::FETCH_ASSOC);
    	// -----------------
    	if(!empty($row))
    	{
    		echo '<p><img src=".$row['image']." alt="" /><br />'.$row['desc'].'</p>';
    	}
    	// -----------------
    } elseif (!empty($msg_err))
    {
    	echo '<p>ERREUR : '.$msg_err.'</p>';
    }
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    // ------------------------------
    // Affichage de TOUTES les images et descriptions
    	// -----------------
    	// TOUS les produits en BdD
    	$select_prd = $bdd->prepare("SELECT * FROM images"); 
    	$select_prd->execute();
    	// -----------------
    	while($row = $select_prd->fetch(PDO::FETCH_ASSOC))
    	{
    		echo '<p><img src=".$row['image']." alt="" /><br />'.$row['desc'].'</p>';
    	}
    	// -----------------

  14. #14
    Membre à l'essai
    Homme Profil pro
    développeur web
    Inscrit en
    Août 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : développeur web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Hello !

    Merci beaucoup de ton aide, j'ai dû modifier deux trois trucs. Par contre l'image ne s'affiche pas ...
    L'image se trouve bien dans le dossier

    Quand j'upload un fichier, le description s'affiche mais l'image pas, pourtant quand je clic F12 et que j'observe les éléments j'ai bien la balise <img src="C:\xampp\htdocs\Morand\images\uploads\52362_gb_newsdadada_1.jpg">

    J'ai ajouté une variable $chemin = chemin/relatif et j'ai fais un essai aussi avec un chemin absolue...



    produitsRessource.php
    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
     
    include 'class.upload.php';
     
    $chemin ='C:\\xampp\\htdocs\\Morand\\images\\uploads\\';
    $upload_ok = false;
    $msg_err = '';
    # Si le formulaire est posté, on traite
    if(isset($_POST['sumit']))
    {
     
    	#Champs obligatoire : image et description
    	if(!empty($_FILES['image'] && $_POST['desc']))
    	{
     
    		$monFichier = new upload($_FILES['image']);
    		$text = $_POST['desc'];
     
    		if($monFichier->uploaded)
    		{
     
    			#Gestion sauvegarde
    			$monFichier->process('C:\\xampp\\htdocs\\Morand\\images\\uploads\\');
    			if($monFichier->processed)
    			{
     
    				$monFichier->clean();
     
    				#Insertion dans la DB
    				$insert_desc = $bdd->prepare("INSERT INTO images VALUES('', :image, :desc, '1')");
    				$insert_desc->execute(array(
    											':image' => $monFichier->file_dst_name,
    											':desc'	=> $text	));
     
    				#récupération ID créer
    				$produitId = $bdd->lastInsertId('id');
     
     
    				# OK !
    				$upload_ok = true;
    			} else {
    					$msg_err ='Image non uploadée';
    					$upload_ok = false;
    			}
    		}
    	} else {
    			$msg_err='Remplissez les champs obligatoires';
    			$upload_ok = false;
    	}
     
    }
     
    #Affichage
     
    $prod = array();
     
    $select_prd = $bdd->prepare("SELECT * FROM images");
    $select_prd->execute();
     
    while ($result = $select_prd->fetch(PDO::FETCH_ASSOC))
    {
     
    			$prod[] = $result; 
     
    }

    produits.php
    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
     
    <ul id="news">
    	  <?php
     
     
    		 foreach($prod as $pr) # Boucle qui affiche les news
    		 {
     
     
    		 	echo'<div>
    		 	<img src="'.$chemin.$pr['image'].'" alt="" /><br /><p>'.$pr['desc'].'</p></div>';
     
     
    		 } 
     
     
    	 ?>
     
     
     </ul>

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sparkko Voir le message
    ...le description s'affiche mais l'image pas
    Oups, normal, je me suis trompé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		echo '<p><img src=".$row['image']." alt="" /><br />'.$row['desc'].'</p>';
    Rien qu'à la coloration syntaxique, on peut voir qu'il y a une erreur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		echo '<p><img src="'.$chemin.$row['image'].'" alt="" /><br />'.$row['desc'].'</p>';
    Il faut aussi, comme tu l'as fait, ajouter le $chemin du dossier contenant l'image.

    Par contre, je doute que ça fonctionne avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chemin ='C:\\xampp\\htdocs\\Morand\\images\\uploads\\';
    qui est le chemin pour UPLOADER l'image dans le dossier.

    Pour l'afficher, ce sera plutôt du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chemin ='./Morand/images/uploads/';
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chemin ='./images/uploads/';
    (à adapter, selon ton arborescence de dossiers)

    Pour vérifier, tu peux afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $chemin.$row['image'];
    Et vérifier qu'il correspond bien.

  16. #16
    Membre à l'essai
    Homme Profil pro
    développeur web
    Inscrit en
    Août 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : développeur web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Ne s'affiche toujours pas.

    Mes répertoires sont organiser comme ceci :

    htdoc -> morand -> cms, images


    cms -> produits.php, ressource

    ressource -> produitsRessource.php

    images-> uploads

    vu que la variable $chemin est dans le fichier produitsRessource.php je dirais le le lien serait ../../images/uploads/ mais l'image s'affiche toujours pas.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     	echo'
    		<div><img src="'.$chemin.$pr['image'].'" alt="" /><br /><p>'.$pr['desc'].'</p></div>
     
    ';
    Ensuite ici, avec la coloration syntaxique en tout cas je n'ai pas d'erreur

  17. #17
    Membre à l'essai
    Homme Profil pro
    développeur web
    Inscrit en
    Août 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : développeur web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Résolu en mettant ../images/uploads/ !

    Milles merci pour tout le temps que tu m'as donné !

  18. #18
    Membre à l'essai
    Homme Profil pro
    développeur web
    Inscrit en
    Août 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : développeur web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Par contre j'ai un autre problème maintenant...

    J'ajoute mon bouton supprimer

    en dessou de l'image et de la description qui s'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div><p><a href="produits.php?delete='.$pr['id'].'" class="supp">Supprimer</a></p></div>
    et dans produitsRessource.php j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #Effacer
     
    if(isset($_GET['delete']) && !empty($_GET['delete'])) # Si le paramètre delete est spécifié dans l'URL
    {
    	$id = $_GET['delete']; # Protection des Injection SQL ect...
    	$delete_q = $bdd->prepare("UPDATE savoirfaire SET valid = '0' WHERE id = :id");
    	$delete_q->execute(array(
    			'id' => $id
    	));
    }
    Je VALID ne change pas dans la BDD

  19. #19
    Invité
    Invité(e)
    Par défaut
    Respire.... souffle... et ouvre les yeux...

    1/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$id = $_GET['delete']; # Protection des Injection SQL ect...
    Là, tu ne protèges rien du tout !
    Cela dit, ce n'est pas spécialement utile puisque tu utilises une requête préparée ensuite.

    2/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "UPDATE savoirfaire SET valid = '0' WHERE id = :id"
    Là, tu ne SUPPRIMES RIEN.
    Tu "dépublies" l'image.
    Pour supprimer réellement, il faut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "DELETE FROM savoirfaire WHERE id = :id"
    + penser AUSSI à supprimer physiquement l'image du dossier !
    voir : unlink()

    3/
    Il manque le ":"

  20. #20
    Membre à l'essai
    Homme Profil pro
    développeur web
    Inscrit en
    Août 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : développeur web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Et le nom de la table était fausse en plus... ! Je suis fatigué je ferais mieux d'aller me coucher quoi !

    En faite aussi, le SELECT j'ai ajouté ceci pour afficher que les VALID 1 WHERE valid = '1'")

    merci beaucoup !

    ah aussi quand tu dis de supprimer avec la fonction unlink (que je connais pas) y a moyen de faire une requête DELETE aussi ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Wiki] Comment afficher les images de wiki stockés dans BDD Mysql
    Par alhakam dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 06/05/2013, 23h38
  2. [MySQL] Images stockées dans MySQL
    Par Lereyn dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 29/03/2009, 21h11
  3. [MySQL] Télécharger images stockées dans mysql
    Par else_if dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/05/2008, 05h53
  4. [MySQL] afficher image stockée dans mysql
    Par dino-info dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/05/2008, 01h10
  5. [MySQL] Afficher une image stockée dans MySql
    Par yanng dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/11/2007, 20h56

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