AFFICHER UNE IMAGE STOCKEE DANS UNE BDD MYSQL

Eléphanteau du PHP | 19 Messages

19 sept. 2013, 16:57

Bonjour à tous,

J'ai un petit soucis de récupération et d'affichage des images stockées dans une base images dans Mysql. J'arrive bien à l'afficher en appelant son numéro id. Par contre, je voudrais à présent, que l'image s'affiche sur la base de la donnée stockée dans $_SESSION['MM_Username'] qui correspond à l'adresse mail de l'internaut connecté, adresse mail elle même stockée dans la BDD mysql. Voici les lignes de codes basées sur l'appel de l'image sur l'id. Quels sont les éléments que je dois modifier pour parvenir à afficher l'image correspondant à l'adresse mail de la personne connectée.

<?php
if ( isset($_GET['id']) )
{
$id = intval ($_GET['id']);
include ("connexion.php");
$req = "SELECT img_id, img_type, img_blob ".
"FROM images WHERE img_id = ".$id;
$ret = mysql_query ($req) or die (mysql_error ());
$col = mysql_fetch_row ($ret);
if ( !$col[0] )
{
echo "Id d'image inconnu";
}
else
{
header ("Content-type: ".$col[1]);
echo $col[2];
}
}
else
{
echo "Mauvais id d'image";
} ?>
Merci du coup de main ! :wink:

ViPHP
xTG
ViPHP | 7331 Messages

19 sept. 2013, 17:00

Euh... Joker ?
Il te faut une relation entre l'adresse email et l'id de l'image.
Sans cela c'est vouloir mélanger de l'huile de vidange avec des carottes.

Eléphanteau du PHP | 19 Messages

19 sept. 2013, 17:11

OUI PAS DE SOUCIS
DANS MA BASE MYSQL NOMMEE IMAGE, j'ai bien les champs suivants : img_id, mail, img_nom, img_taille, img_type, img_desc et img_blob (format blob).

la procédure de stockage fonctionne impeccable quand j'appelle l'img_id pour l'afficher (via le code suivant :
<?php
if ( isset($_GET['id']) )
{
$id = intval ($_GET['id']);
include ("connexion.php");
$req = "SELECT img_id, img_type, img_blob ".
"FROM images WHERE img_id = ".$id;
$ret = mysql_query ($req) or die (mysql_error ());
$col = mysql_fetch_row ($ret);
if ( !$col[0] )
{
echo "Id d'image inconnu";
}
else
{
header ("Content-type: ".$col[1]);
echo $col[2];
}
}
else
{
echo "Mauvais id d'image";
} ?>
Mais, et c'est là mon soucis. Je veux faire afficher l'image non pas sur la base de img_id, mais sur la base de mail... dont la donnée est stockée dans la variable $-_SESSION['MM_Username'].

Quels sont les éléments du PHP (ci-dessous) que je dois modifier pour afficher l'image sur la base de la donnée stockée dans la colonne mail de ma base sous Mysql ?

ViPHP
xTG
ViPHP | 7331 Messages

19 sept. 2013, 18:47

Il faut modifier ta requête pour inclure dans sa clause de recherche (WHERE) le champs d'email.
Tu as un exemple ici : http://sqlpro.developpez.com/cours/sqlaz/select/#L3.1

Eléphanteau du PHP | 19 Messages

19 sept. 2013, 19:14

c'est la 1ère chose que j'ai modifié avec WHERE mail = ".$_SESSION['MM_Username'];

mais sans résultat.

ViPHP
xTG
ViPHP | 7331 Messages

19 sept. 2013, 20:20

Une chaîne de caractère en SQL doit s'entourer de simple quote : 'chaîne' ;)