Se connecter avec
S'enregistrer | Connectez-vous

Problème de récupération d'image dans une BDD MySQL

Dernière réponse : dans Programmation

Bonjour,

J'aimerai pouvoir récupérer des images que j'ai inséré dans ma base de donnée MySQL.
Je vous explique un peu ou j'en suis :
J'insère directement dans la base de Free, via leur interface PhpMyAdmin, les images. J'ai donc un champs "image" dans ma table "news" de type BLOB.
J'ai crée un fichier, qui s'appelle "recup_image.php", et qui est capable de récupérer les suivants suivant l'id de la news. Voici un peu à quoi ressemble ce fichier :

  1. <?include 'connexion.php';
  2. $img = "img_tmp.jpg";
  3. $fp = fopen($img,"r");
  4.  
  5. //on recupere l'image dans la base de donnée (champs BLOB) avec un select
  6. //on lance la requete (mysql_query)
  7. $req = mysql_query($sql) ;
  8.  
  9. $enreg = @mysql_fetch_array($req);
  10. $image=$enreg["photo"];
  11. $fichier=fopen("img_tmp.jpg","w");
  12. fwrite($fichier,$image);
  13. fclose($fichier);
  14. ?>
  15. <img src="img_tmp.jpg">


Ce fichier marche bien, et affiche la photo correspondante à la news.
Seulement, c'est pas vraiment ce que je veux. J'aimerai pouvoir l'appeller en lui passant l'id de la news avec quelques chose du style
<img src="recup_image.php?news_id=<?=$enreg["news_id"]?>">, mais ça ne marche pas bien entendu.

Je ne sais pas si j'ai été bien clair, dans ce cas, j'essaierai de l'être un peu plus,mais si quelqu'un a une idée, je prend :) 

Pour récapituler, j'ai un fichier (recup_image.php) qui est capable de récupérer des images suivant la news et j'aimerai faire appel plusieurs fois à ce fichier dans ma page "index" pour afficher les images suivant les news.

Voilà et merci
Lassé par la pub ? Créez un compte

Heu entre temps j'ai un peu changé mon fichier "recup_image.php"

Je récupére directement le BLOB et à la fin je fais :
$image=$enreg["photo"];
header("content-type: image/jpeg");
print $image;

Sachant que j'insère que des jpeg, je peux le mettre en dur dans le code. Le problème maintenant c'est que ça merde avec le header.
Cannot modify header information - headers already sent by ..........

So ?
Expert Programmation

On peut commencer une bataille de clocher :

  • Les tenant pour avoir tout au même endroit dans la base, etc.
    vs
  • Les tenant pour avoir dans la base exclusivement des données indexables, triables, SQL-isables quoi, etc.

    Il n'y a que des bonnes raisons. Alors, stan fais ton choix.

    Désolé, en disant que c'est pas pro, je veux dire par là, que d'utiliser des champs de type BLOB, c'est plus "la classe".
    Perso, pour mon utilisatation, j'avais pas envie de m'embeter et j'ai donc choisi la solution la plus facile.
    Après à savoir si c'est mieux ou pas, je ne sais pas trop. C'est vrai que ça prend de la place dans la base de stocker les images directement dedans. Maintenant ... je ne vais pas lancer de polémiques sur ce sujet :) , chancun fait comme il veut, et selon ses besoins.

    BONJOUR
    voici mon programe

    <HTML>
    <HEAD>
    <TITLE> </TITLE>
    </HEAD>




    <?
    // on se connecte à MySQL 12
    $db = mysql_connect('localhost', 'root', '');

    // on séléctionne la base
    mysql_select_db('lamine',$db);


    $query = "SELECT distinct Nom , Prenom , Date_de_naissance , photo FROM caracteristique_du_patient
    ";


    $result = mysql_query($query);




    print ('<table width=100% border=0>');

    $row =mysql_fetch_object($result) ;


    print ('</table>');

    // on ferme la base

    mysql_close();

    ?>


    <IMG SRC="<?php echo $row['photo'] ; ?>" height="240" border="0" />


    </body>

    </html>
    la phhoto ne s'affiche pa
    *pouvez-vous m'aider
    merci juju
    Lassé par la pub ? Créez un compte