Image blop a afficher

Résolu/Fermé
DevilWarrior58 Messages postés 24 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 21 mars 2012 - 15 mars 2012 à 15:22
DevilWarrior58 Messages postés 24 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 21 mars 2012 - 16 mars 2012 à 09:27
Bonjour,

je voudrais afficher une image de ma base de données de type blop comment puis je faire car moi cela me montre le code en dur de l'image voici mon code

sachant que je suis bien connecter a ma base de données car ma recherche marche bien sauf l'image

case 7 :
// après l'appui du bouton rechercher
$id= $_POST['id'];
$nom= $_POST['nom'];
$type_structure= $_POST['type_structure'];
$adresse= $_POST['adresse'];
$cp= $_POST['cp'];
$ville= $_POST['ville'];
$tel= $_POST['tel'];
$horaire= $_POST['horaire'];
$lienmap= $_POST['lienmap'];
$image=$_POST['image'];

$query="SELECT * FROM $table WHERE id IS NOT NULL";

if($type_structure=='Tous' && $ville=='Toutes' && $nom=="" && $cp=="")
{
$query="SELECT * FROM $table WHERE id IS NOT NULL";
}
else
{

if ($nom)
{
$query=$query." AND nom LIKE '$nom%'";
}

if ($type_structure!='Tous')
{
$query=$query." AND type_structure LIKE '$type_structure%'";
}

if ($adresse)
{
$query=$query." AND adresse LIKE '$adresse%'";
}

if ($cp)
{
$query=$query." AND cp LIKE '$cp%'";
}

if ($ville!='Toutes')
{
$query=$query." AND ville LIKE '$ville%'";
}

if ($tel)
{
$query=$query." AND tel LIKE '%$tel%'";
}

if ($horaire)
{
$query=$query." AND horaire LIKE '$horaire%'";
}

if ($lienmap)
{
$query=$query." AND lienmap LIKE '$lienmap%'";
}

if ($image)
{
$query=$query."AND image LIKE '$image%'";
}

$query=$query." ORDER BY type_structure";

}

$res=mysql_query($query);
print "<table width='0%' cellpadding='5' cellspacing='1' border='0' align='center' bgcolor='#F9FAFA'>";
print "<td>";
print "<table width='0%' cellpadding='5' cellspacing='1' border='0' align='center'>";
print "<tr>";
// print "<td bgcolor='#CCCCCC' align='center'><b>Id</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Type de structure</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Nom</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Adresse</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>CodePostal</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Ville</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Telephone</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>horaire</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>lienmap</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Image</b></td>";
print "</tr>";


while($val=mysql_fetch_array($res)or die(mysql_error()))
{
$id = $val['id'];
$nom = $val['nom'];
$sites = $val['sites'];
$services = $val['services'];
$type_structure = $val['type_structure'];
$adresse = $val['adresse'];
$cp = $val['cp'];
$ville = $val['ville'];
$tel = $val['tel'];
$horaire = $val['horaire'];
$lienmap = $val['lienmap'];
$image= $val['image'];
print"<tr>";
// print "<td bgcolor='#CCCCCC'>$id</td>";
print "<td bgcolor='#A5DDDF'>$type_structure</td>";
print "<td bgcolor='#A5DDDF'>$nom</td>";
print "<td bgcolor='#A5DDDF'>$adresse</td>";
print "<td bgcolor='#A5DDDF'>$cp</td>";
print "<td bgcolor='#A5DDDF'>$ville</td>";
print "<td bgcolor='#A5DDDF'>$tel</td>";
print "<td bgcolor='#A5DDDF'>$horaire</td>";
print "<td bgcolor='#A5DDDF'><A HREF='$lienmap'>Google Map<A/></td>";
print "<td bgcolor='#A5DDDF' align='center'>$image</td>";

// print "<td bgcolor='#CCCCCC'>";
// print "<A HREF='annuaire.php?task=4&id=$id&nom=$nom&sites=$sites&services=$services&type_structure=$type_structure&adresse=$adresse&cp=$cp&ville=$ville&tel=$tel&horaire=$horaire&lienmap=$lienmap'>modifier</A>";
// print "</td>";
// print "<td bgcolor='#CCCCCC'>";
// print "<A HREF='annuaire.php?task=3&id=$id'>effacer</A>";
// print "</td>";
// print "</tr>";
}
print"</table>";
print "</td>";
print"</table>";

break;
A voir également:

9 réponses

Skeletyon Messages postés 1552 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 30 décembre 2013 156
15 mars 2012 à 15:34
Bonjour.

Déjà je ne saurai que trop vous conseiller de passer par PDO. Ensuite de faire un switch avec tous vos IF.

Pour en revenir à votre affichage, il faut savoir que dans la base de données il faut insérer non pas l'image en elle-même mais le lien absolu d'ou est stockée l'image.

Et il faut surtout lui indiquer que c'est une image qu'il faut insérer et non le texte brut.

Regardez mon bout de code, cela devrait vous aider:
while ($recu = $sql -> fetch(PDO::FETCH_ASSOC)){
echo '<tr>';//creation d une case sur la ligne pour chaque segment affiché
	// echo '<td>'.$recu['nom'].'</td>';
	//echo '<td>'.$recu['idPhoto'].'</td>';
	//echo '<td>'.$recu['nomPhoto'].'</td>';
	
        //C'est là que ça nous intéresse, il faut lui dire que c'est une image, donc balise img :-)
        echo '<td><img src="'.$recu['chemin'].'"></img></br>';
	echo $recu['description'].'</td>';



Je pense que c'est $image qui correspond à votre lien d'image? Il n'y a pas la balise image. En outre, pas besoin d'affecter la valeur à une variable puis à l'afficher.

Faites directement en echo
echo "<td bgcolor='#A5DDDF' align='center'>'".$val['image']."'</td>";


Vérifiez bien vos quotes et ça devrait aller :-)
0
DevilWarrior58 Messages postés 24 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 21 mars 2012
15 mars 2012 à 15:42
re bonjour,
je viens d'essayer de faire directement l'echo sa me met le lien en dur de l'image regardais par vous même
le lien ==> http://www.ch-pl.fr/drupalstage/drupal02/annuaire.php?task=7
0
Skeletyon Messages postés 1552 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 30 décembre 2013 156
15 mars 2012 à 15:48
Comment votre image a été insérée dans votre BDD?

PS: je risque de ne pas pouvoir me connecter avant demain matin pour vous répondre...
0
DevilWarrior58 Messages postés 24 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 21 mars 2012
15 mars 2012 à 15:50
mon image est insérée en blob dans mon phpmyadmin du coup je crois que son expansion devient du binaire si je ne me trompe pas
0
DevilWarrior58 Messages postés 24 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 21 mars 2012
15 mars 2012 à 16:16
sinon j'ai aussi créer un deuxieme fichier en php qui me permettrai de recuperer mon image en binaire mais apres je ne sais pas comment la recuperer.
voici le code
//connection a la base de donne
// On récupère l'image
$sql = "SELECT image FROM $table WHERE id='".$id."'";
$result = mysql_query($sql);

// On met en place les headers, pour dire qu'on a bien là une photo.
header('Content-type: image/jpeg'); // cf (1)
header('Content-transfer-encoding: binary');

// Et on envoie
echo $result["image"];
mysql_close();
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Skeletyon Messages postés 1552 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 30 décembre 2013 156
16 mars 2012 à 08:47
Bonjour.

Moi je pense que le plus simple serait d'insérer le lien de l'image et non pas l'image elle-même!

Indiquez le lien de l'image dans une colonne "chemin" de votre table en varchar.

A ce moment là vous aurez par exemple

chemin	 varchar(100)			C:/wamp/site/images/image1.jpeg


Et là le code que je vous ai donné au dessus devrait vous afficher votre image! ($recu['chemin'];)
En tout cas c'est comme cela que je procède et je n'ai pas de soucis.

Parce qu'en plus vos header devront être modifiés pour chaque type d'image, imaginez vous mettez une png avec des jpeg, vous devrez traiter tous les cas.... lourd...
0
DevilWarrior58 Messages postés 24 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 21 mars 2012
16 mars 2012 à 08:56
oui je comprend mais mon maître de stage veut que se soit inséré dans la table se qui me donne beaucoup de problème. il a posé le pour et le contre et préfère la stocker dans la base. Sinon avec le lien je n'aurais pas eu se problème
0
DevilWarrior58 Messages postés 24 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 21 mars 2012
16 mars 2012 à 09:01
et je ne travail que avec des images en jpg
0
Skeletyon Messages postés 1552 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 30 décembre 2013 156
16 mars 2012 à 09:01
Hmmmm.

A-t'il pensé au temps de chargement de la page? Il est plus long de traiter la réponse en binaire puis de la convertir que d'afficher directement l'image.

Et inséré dans la table, inséré dans la table, faut-il encore que le gain soit vraiment important.

Comme vous le dites si bien, vous n'auriez pas eu de problème sans le blob.

Je n'ai jamais traité l'affichage des images avec du Blob mais il est certain que cela devra se passer dans les header. Et ils doivent être envoyés avant tout code, pas d'espace, de texte ou autre.

Le plus simple serait peut être de faire une page de traitement avec une fonction, et se débrouiller pour modifier les header dès le chargement de la page d'affichage.
0
DevilWarrior58 Messages postés 24 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 21 mars 2012
16 mars 2012 à 09:05
Oui il a pensé au temps de chargement de la page, il sais très bien que sa va ralentir le chargement mais bon moi je suis simplement les directives qui me sont données du moin j'essaye
0
Skeletyon Messages postés 1552 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 30 décembre 2013 156
16 mars 2012 à 09:21
C'est vrai que c'est pas toujours simple. Surtout quand ce n'est pas un "initié" au développement, qui a entendu un truc quelque part et qui pense que c'est la meilleure chose.

Après c'est peut être un test aussi :-)

Creusez sur les header, c'est là que se trouve la solution. SI j'ai un peu de temps, j'essaierai de mon côté.
0
DevilWarrior58 Messages postés 24 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 21 mars 2012
16 mars 2012 à 09:22
D'accord je vous remercie je vais creuser sur les header
0
DevilWarrior58 Messages postés 24 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 21 mars 2012
16 mars 2012 à 09:27
j'ai réussit a régler mon problème je remercie skeletyon qui m'a beaucoup aidé et je vais mettre mon code si sa peut aider une personne.

voici mon code

annuaire.php


// connection a la base donnée
case 7 :
// après l'appui du bouton rechercher
$id= $_POST['id'];
$nom= $_POST['nom'];
$type_structure= $_POST['type_structure'];
$adresse= $_POST['adresse'];
$cp= $_POST['cp'];
$ville= $_POST['ville'];
$tel= $_POST['tel'];
$horaire= $_POST['horaire'];
$lienmap= $_POST['lienmap'];
$image=$_POST['image'];

$query="SELECT * FROM $table WHERE id IS NOT NULL";

if($type_structure=='Tous' && $ville=='Toutes' && $nom=="" && $cp=="")
{
$query="SELECT * FROM $table WHERE id IS NOT NULL";
}
else
{

if ($nom)
{
$query=$query." AND nom LIKE '$nom%'";
}

if ($type_structure!='Tous')
{
$query=$query." AND type_structure LIKE '$type_structure%'";
}

if ($adresse)
{
$query=$query." AND adresse LIKE '$adresse%'";
}

if ($cp)
{
$query=$query." AND cp LIKE '$cp%'";
}

if ($ville!='Toutes')
{
$query=$query." AND ville LIKE '$ville%'";
}

if ($tel)
{
$query=$query." AND tel LIKE '%$tel%'";
}

if ($horaire)
{
$query=$query." AND horaire LIKE '$horaire%'";
}

if ($lienmap)
{
$query=$query." AND lienmap LIKE '$lienmap%'";
}

if ($image)
{
$query=$query."AND image LIKE '$image%'";
}

$query=$query." ORDER BY type_structure";

}

$res=mysql_query($query);
print "<table width='0%' cellpadding='5' cellspacing='1' border='0' align='center' bgcolor='#F9FAFA'>";
print "<td>";
print "<table width='0%' cellpadding='5' cellspacing='1' border='0' align='center'>";
print "<tr>";
// print "<td bgcolor='#CCCCCC' align='center'><b>Id</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Type de structure</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Nom</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Adresse</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>CodePostal</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Ville</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Telephone</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>horaire</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>lienmap</b></td>";
print "<td bgcolor='#A5DDDF' align='center'><b>Image</b></td>";
print "</tr>";

while($val=mysql_fetch_array($res)or die(mysql_error()))
{
$id = $val['id'];
$nom = $val['nom'];
$sites = $val['sites'];
$services = $val['services'];
$type_structure = $val['type_structure'];
$adresse = $val['adresse'];
$cp = $val['cp'];
$ville = $val['ville'];
$tel = $val['tel'];
$horaire = $val['horaire'];
$lienmap = $val['lienmap'];
$image= $val['image'];

print"<tr>";
// print "<td bgcolor='#CCCCCC'>$id</td>";
print "<td bgcolor='#A5DDDF'>$type_structure</td>";
print "<td bgcolor='#A5DDDF'>$nom</td>";
print "<td bgcolor='#A5DDDF'>$adresse</td>";
print "<td bgcolor='#A5DDDF'>$cp</td>";
print "<td bgcolor='#A5DDDF'>$ville</td>";
print "<td bgcolor='#A5DDDF'>$tel</td>";
print "<td bgcolor='#A5DDDF'>$horaire</td>";
print "<td bgcolor='#A5DDDF'><A HREF='$lienmap'>Google Map<A/></td>";
print "<td bgcolor='#A5DDDF' align='center'><img src=\"image.php?id=$id\"</td>";

// print "<td bgcolor='#CCCCCC'>";
// print "<A HREF='annuaire.php?task=4&id=$id&nom=$nom&sites=$sites&services=$services&type_structure=$type_structure&adresse=$adresse&cp=$cp&ville=$ville&tel=$tel&horaire=$horaire&lienmap=$lienmap'>modifier</A>";
// print "</td>";
// print "<td bgcolor='#CCCCCC'>";
// print "<A HREF='annuaire.php?task=3&id=$id'>effacer</A>";
// print "</td>";
// print "</tr>";
}
print"</table>";
print "</td>";
print"</table>";

break;

puis image.php

// connection a la base donnée

$bdd= mysql_connect($host,$user,$pass) or die("erreur de connexion au serveur $host");
mysql_select_db($base1,$bdd) or die("erreur de connexion a la base de donnees");

$requete="select image from annuaire where id=".$_GET['id'];
$resultat=mysql_query($requete,$bdd);
while ($tableau=mysql_fetch_array($resultat)){
//affichage de l image
$image=$tableau[0];
echo $image;
}
mysql_close($bdd);
0