Vous n'êtes pas identifié(e).
Pages :: 1
Discussion fermée
Bonjour,
Monpost est marqué résolu donc j'ouvre une nouvelle discussion. J'ai trouve la solution à mon précedent pb et j'ai mis le code qui marche, si ce peut aider certains.
Quelqu'un saurait-il comment récupérer et afficher une image qui est déja stockée dans la DB. (je reprend un développement existant ou la personnes a stocké les images dans la DB, je peux malheuresement pas faire autrement).
$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );
mysql_select_db($nom_base);
$query="SELECT form_date, id_page, doc_image FROM pages WHERE id_page='$id'";
$resultat=mysql_query($query,$con) or die (mysql_error());;
$total=mysql_num_rows($resultat);
if($total) {
echo'<table bgcolor="#FFFFFF">'."\n";
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '</tr>'."\n";
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC"><a href=detail.php?id_page='.$row["id_page"].' target=\"_blank\">'.$row["id_page"].'</a></td>';
echo '<td bgcolor="#CCCCCC">'.$row["form_date"].'</a></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($resultat);
?>
En rajoutant ceci au milieu, j'arrive à afficher l'image mais elle est en binaire (serie de chiffres et lettre incompréhensible), comment je peux la "traduire"?
Ou si une ame charitable a un code pour afficher une image je suis preneur.
Merci encore
Hors ligne
Salut,
Tu dois faire un petit script a part qui récupère et affiche l'image (que l'image).
Et dans ta page principale tu l'appelle avec un
Dans scriptAffiche.php :
- Récup du binaire
header('Content-type: image/png');
- écho du binaire
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
Merci pour la réponse. J'ai essayé ceci mais ca ne marche pas.
Ma page index affiche une liste de numéro de pages.
Lorsqu'on clique sur un numéro, je passe en parametre "id_page"
La page detail.php marche (pas le champs blob)
J'ai donc crée une page php.php qui doit en principe recupere l'image voici le code:
$req = "SELECT id_page, doc_image FROM pages WHERE id_page = '$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: doc_image/png");
echo $col[1];
}
}
else
{
echo "Mauvais id d'image";
}
Seulement quand j'essai d'affiche cette image dans ma page detail.php, ca ne marche pas, j'ai une errer http:500
voici ma page detail.php (qui marche bien sauf quand je rajouter l'affichage du champ blob)
$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );
mysql_select_db($nom_base);
$query="SELECT id_pen, form_date, doc_nom, id_page, doc_image FROM pages WHERE id_page='$id'";
$resultat=mysql_query($query,$con) or die (mysql_error());;
$total=mysql_num_rows($resultat);//donne le nombre de ligne
if($total) {
echo'<table bgcolor="#FFFFFF">'."\n";
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '</tr>'."\n";
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row["id_page"].'</a></td>';
echo '<td bgcolor="#CCCCCC">'.$row["form_date"].'</a></td>';
echo '<td bgcolor="#CCCCCC">'.$row["doc_nom"].'</a></td>';
echo '<td bgcolor="#CCCCCC"><img src=php.php?doc_image='.$id.' /td>'
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($resultat);
Faut-il faire appelle a cette image d'une autre facon ?
Merci encore
Hors ligne
Salut,
echo '<td bgcolor="#CCCCCC"><img src=php.php?doc_image='.$id.' /td>'
et
$id = intval ($_GET['id_page']);
Faut choisir entre doc_image et id_page
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
J'ai essayé de remplacer ceci
echo '<td bgcolor="#CCCCCC"><img src=php.php?doc_image='.$id.' /td>'
par
echo '<td bgcolor="#CCCCCC"><img src=php.php?id_page='.$id.' /td>'
mais le résultat est le même.
Lorsque l'on fait un echo (dans detail.php) pour appeller l'image (comme ci-dessus), c'est le nom du champ image de ma DB ou le parametre que je passe dans l'url que je dois afficher ?
Hors ligne
Que se passe-t-il si tu appelle directement dans ton navigateur :
php.php?id_page=1 par exemple (ou à la place de 1 un id qui existe)
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
Merci bcps mcAllan
J'ai teste comme tu m'as dit et j'ai pu trouver l'erreur. J'ai un peu honte mais dans la page-script qui ne sert qu& afficher l'image je laissé l'entete classique d'une page html au lieu de ne laisse que du php.
Je met mon code des fois que ca interresse quelqu'un
page detail.php
et la page showimage.php
J'ai une derniere question, j'aimerais redimensionner mon image. Peut-on le faire directement en melangant html et php au niveau de :
echo '<td bgcolor="#CCCCCC"><img src=showimage.php?id_page='.$id.' /td>';
ou vaut-il le faire dans le script qui recupere l'image
Merci encore
Hors ligne
Pour redimensionner une image en PHP, tu as la librairie GD.
Vois les fonctions :
imagecreatefromstring
imagecopyresized
Une petite remarque :
Dans showimage.php les echos ne serviront pas car il ne seront jamais affichés
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
Merci bcps pour cette aide précieuse.
Encore une fois je ne sais pas comment mettre mon post en resolu
Dernière modification par cire390 (31-08-2009 11:16:33)
Hors ligne
Pages :: 1
Discussion fermée