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 :

Récupérer image dans base de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut Récupérer image dans base de données
    Bonjour, j'aimerais récupérer des images contenu dans ma base de données, j'ai lu plusieurs tuto mais j'ai vraiment du mal.

    J'ai une base de données (clairval) avec une table (actualite):[/B]

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    id smallint  AUTO_INCREMENT
    date Date
    titre varchar(50)
    texte varchar(250)
    img_nom varchar(50)                 
    img_taille varchar(25)                 
    img_type varchar(25)                 
    img_desc varchar(100)                 
    img_blob blob

    voila le code de ma page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("clairval");
     
    $reponse = mysql_query("SELECT date, titre, texte, img_blob FROM actualite ORDER BY id DESC limit 0,3");
     
    while ($donnees = mysql_fetch_array($reponse2))
    {
     
    <?php echo $donnees2['date']; ?>
    <?php echo $donnees2['titre']; ?>
    <?php echo $donnees2['texte']; ?>
    Pour l'image j'ai compris que je ne pouvais pas faire un simple img src avec un php echo dedans mais je comprend pas les tutos...

    Quelqu'un pourrait-il m'aider ?

    Merci beaucoup.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Il me semble que tu dois faire un décryptage de ton blob pour affiché l'image, renseigne toi mieux...
    Entre nous tu n’as pas choisi ce qui avait de mieux à faire pour stocker tes images

  3. #3
    Membre régulier
    Profil pro
    Responsable de projet
    Inscrit en
    Décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet

    Informations forums :
    Inscription : Décembre 2005
    Messages : 97
    Points : 110
    Points
    110
    Par défaut
    Pareille que le message precedent j'aurai pas choisi de mettre les images en base.

    Pourquoi ne met tu pas les nom des images en base et ensuite tu va les cherche la ou elles sont rangé ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut
    En fait, j'ai fais un formulaire et sur une page du site, j'affiche les 3 derniers enregistrement. J'ai fais comme ca parce que je fais ce que je peux et aussi parce que les images ne font que 45 ko maximum...

    J'ai écris ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    mysql_connect("localhost", "root", "");
    mysql_select_db("clairval");
     
    $response = mysql_query("SELECT img_blob FROM actualite");
    echo mysql_result($response, 0);
     
    ?>
    J'ai des petits caracteres qui ne veulent rien dire, cela me fais penser qu'il va bien chercher une image dans ma base de donnee.

    Avec header('Content-Type: image/gif'); il me met le petit carre de l'image mais ne l'affiche pas...

    Quelqu'un qui a deja fais ca peut-il m'aider svp ? Au secours.

  5. #5
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 495
    Points : 6 067
    Points
    6 067
    Par défaut
    Il y a un tutorial mysql sur developpez.com il donne toute les informations nécessaire. Bientôt moi aussi je dois y passer par là.

  6. #6
    Membre averti Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Points : 345
    Points
    345
    Par défaut
    Pourquoi ne pas stocker dans ta base une URL pointant vers ton image et ensuite l'appeler avec un <img src="<?php echo $ton_image ; ?>">

  7. #7
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 495
    Points : 6 067
    Points
    6 067
    Par défaut
    Moi j'ai opté pour cette technique pour des raisons pratiques. A partir d'une image brute je fais des traitements. Les traitements sont stocké dans la base de données. Quand le traitement est effectué alors elle est posé sous une forme différente sur le serveur. C'est pour éviter des décalé entre le serveur et le source d'information.
    ça peut être utile lorsque ça concerne des petites vignettes à afficher.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut Autre solution
    Le sujet est résolu mais personnellement je te conseille de renommer les images lors de l'upload. c'est ce que j'ai fais pour le site d'une agence immobilière. Comme nom tu lui donne le uméro de ta clé primaire (id dans ton cas) et comme ca tu fais affciher l'image dont le nom est $id.jpg ou autre ($id est bien évidemment égal au id retourner par une requête que tu auras écris auparavant).

  9. #9
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 495
    Points : 6 067
    Points
    6 067
    Par défaut
    Vrai, toujours renommer un fichier uploader et si c'est une image il faut la tester avec une fonction comme getimagesize() pour voir si c'est une vrai image ou non. Par contre, je déconseille toujours d'utiliser comme d'id pour une image ou pour tout autre élément.
    Là c'est un conseille d'une manière globale. Vous avez un site marchand. Dans le lien que vous passé vous l'id de la commande. Généralement c'est du numérique. Donc commande 1 id=10 commande 2 id=11 etc. En gros, ont révèle qu'il y a eu 10 commandes et que la valeur s'incrémente. Que se passe-t'il si nous changeons l'id par une valeur inférieur ?
    Risques-t'on de voir une commande d'une autre personne.
    Bref ce que je veux dire c'est de cacher au maximum des clés de base de données. Sur mysql j'utilise une fonction maison qui est équivalent à uuid() qui permet de générer une chaine qui est unique xxxxxxxx-xxxx-xxxx-xxxx. Elle me sert uniquement à communiquer avec l'extérieur et les id que en interne dans la base de données ou dans mes objets métiers.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Récupérer image dans base de donnée
    Par semensoise dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/01/2009, 09h51
  2. DBImage et recuperation Image dans Base de données?
    Par kheldoun ahmed dans le forum Delphi
    Réponses: 7
    Dernier message: 28/05/2007, 21h20
  3. insérer image dans base de données
    Par eriz dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/04/2007, 12h03
  4. inserer une image dans base de données ?
    Par ouldfella dans le forum Requêtes
    Réponses: 7
    Dernier message: 20/12/2006, 16h04
  5. [VB.NET]Champ image dans base de donnée access
    Par dankes dans le forum Windows Forms
    Réponses: 10
    Dernier message: 06/10/2005, 15h31

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