Page 1 sur 2
Problème affichage image
Posté : 27 oct. 2010, 17:45
par orell1
Bonjour,
Je n'arrive pas à afficher une image à partir de ma base sql...
Voici mon codage php:
<?php
mysql_connect('serveur', 'user', 'mdp);
mysql_select_db('base');
$sql = "SELECT logo FROM entreprises_dossiers";
$req = mysql_query($sql) or die (mysql_error ());
$data=mysql_fetch_array($req);
echo '<img src=""$data[logo]"" />';
?>
Une partie de la table contenant mes logos:
`logo` varchar(150) NOT NULL,
Merci beaucoup!
P.S.: J'ai rempli correctement mysql_connect
Re: Problème affichage image
Posté : 27 oct. 2010, 17:46
par xTG
Double double quotes ? Divises par deux et ça ira mieux. ^_-
De plus les variables à l'intérieur de simple quote ne sont pas interprétées.
Re: Problème affichage image
Posté : 27 oct. 2010, 17:53
par orell1
Effectivement je viens d'essayer avec ça :
echo "<img src='$data[logo]' />";
Et tout fonctionne!
Merci beaucoup pour ton aide!
bonne soirée
Re: Problème affichage image
Posté : 27 oct. 2010, 19:34
par xTG
echo "<img src=\"{$data['logo']}\" alt=\"\" />";
Tout de même plus propre ainsi.

Re: Problème affichage image
Posté : 27 oct. 2010, 19:45
par orell1
En effet! on sent la pratique...
Je rencontre un autre petit soucis avec l'affichage de cette image...
En fait je souhaite afficher l'image en fonction d'un champs commun avec 2 autres tables.
Les 3 tables sont liées par le même champs "num_client"
Actuellement il n'y a qu'un seul logo qui s'affiche sur tous les fiches des clients...
Voici mon code...
<?php
$conn = db_connect();
$sql = "SELECT * FROM ".ENTREPRISES_COORDONNEES." WHERE activite like '%".$activite."%' AND code_postal like '%".$code_postal."%' AND mots_cles like '%".$mots_cles."%' AND mots_cles_option like '%".$mots_cles_option."%'";
$resultat = mysql_query($sql, $conn);
$result = mysql_query($sql, $conn);
//---------------------------------- rechercher la date limite --------------------------------
$active = mysql_fetch_array($result);
$conn = db_connect();
$rech_sql = "SELECT * FROM ".ENTREPRISES_DOSSIERS." WHERE num_client = '$active[num_client]'";
$resultat_rech = mysql_query($rech_sql, $conn);
$rech_date = mysql_fetch_array($resultat_rech);
//---------------------------------------------------------------------------------------------
//--------------------------------- Affichage des différents logos-----------------------------
$conn = db_connect();
$sql = "SELECT *
FROM entreprises_dossiers
LEFT JOIN entreprises_coordonnees ON entreprises_dossiers.num_client=entreprises_coordonnees.num_client
JOIN entreprises_contacts ON entreprises_dossiers.num_client=entreprises_contacts.num_client";
$result = mysql_query($sql, $conn);
$req = mysql_query($sql) or die (mysql_error ());
$data=mysql_fetch_array($req);
//---------------------------------------------------------------------------------------------
if ($rech_date[date_limite] >= time()) {
echo "<div style='overflow: scroll; border: #000000 0px solid; height: 800px; margin-left: 5px; margin-right: 5px;'><ul>";
while ($active = mysql_fetch_array($resultat)) {
echo '<li><a href=\'afficher_fournisseur.php?nom_entreprise='.stripslashes(mb_strtoupper($active[nom_entreprise])).'\'>'.mb_strtoupper($active[nom_entreprise]).'</a><br>';
echo '<font size="2"><b> Code Postal :</b> ' .stripslashes($active[code_postal]).'</font>'.'<br>';
echo "<img src=\"$data['logo']\" alt=\"Logo\" width=\'150px\'; />";
//echo $active[ville]." ";
echo '<font size="2"><b>Activité(s) :</b> ' .stripslashes($active[activite]).'</font>'.'<br><br>';
echo '<a href=\'afficher_fournisseur.php?nom_entreprise='.stripslashes(mb_strtoupper($active[nom_entreprise])).'\'><img src="http://www.mon_site.com/images/acces_fiche.png" alt="Accéder à la fiche" height="25" align="absmiddle" /> '.'</li>'.'<hr>';
}
echo "</ul></div> ";
}
else {
echo "Aucun résultat trouvé !";
}
?>
Je ne vois pas mon erreur...
As-tu une idée d'où cela peut provenir?
Merci par avance
Re: Problème affichage image
Posté : 27 oct. 2010, 20:33
par xTG
Ton erreur vient du fait que ta boucle n'est pas en relation avec les informations de l'entreprise.
Pourquoi ne pas mettre la troisième requête dans la première ?
Re: Problème affichage image
Posté : 27 oct. 2010, 20:48
par orell1
De faire une jointure avec la première connexion à la base c'est ça?
autrement dit celle-ci ?
$conn = db_connect();
$sql = "SELECT * FROM ".ENTREPRISES_COORDONNEES." WHERE activite like '%".$activite."%' AND code_postal like '%".$code_postal."%' AND mots_cles like '%".$mots_cles."%' AND mots_cles_option like '%".$mots_cles_option."%'";
$resultat = mysql_query($sql, $conn);
$result = mysql_query($sql, $conn);
Quand tu parles de ma boucle tu parles bien de "if" et "while"? Si c'est le cas comment faire une seule boucle avec ces deux éléments ?
Merci Vraiment!

Re: Problème affichage image
Posté : 27 oct. 2010, 22:12
par xTG
Je parle bien de faire une jointure.
Tu récupères une liste d'entreprises et dans une seconde requête tu récupères toutes les entreprises et leurs données.
Et tu fais une boucle sur la première requête en voulant afficher l'enregistrement correspondant de l'autre requête...
Bref on réunit les deux et on n'en parle plus. ^_-
Re: Problème affichage image
Posté : 27 oct. 2010, 22:56
par orell1
Bon je viens d'essayer de faire la jointure mais j'ai beaucoup de mal à faire cette jointure avec la boucle... je pense que cela ne fonctionne pas car je n'inclus pas dans cette boucle ma jointure... ce qui fait que j'ai toujours le même message d'erreur (message envoyé par ma boucle) "Aucun résultat trouvé !"
Le problèque c'est que je ne sais pas comment faire la...
Je suis complétement bloqué...
Voici ma modification :
<?php
$conn = db_connect();
$sql = "SELECT *
FROM entreprises_coordonnees
LEFT JOIN entreprises_dossiers ON entreprises_dossiers.num_client=entreprises_coordonnees.num_client
WHERE activite like '%".$activite."%' AND code_postal like '%".$code_postal."%' AND mots_cles like '%".$mots_cles."%' AND mots_cles_option like '%".$mots_cles_option."%' AND '$logo=[logo]'";
$req = mysql_query($sql) or die (mysql_error ());
$data=mysql_fetch_array($req);
$resultat = mysql_query($sql, $conn);
$result = mysql_query($sql, $conn);
//---------------------------------- rechercher la date limite --------------------------------
$active = mysql_fetch_array($result);
$conn = db_connect();
$rech_sql = "SELECT * FROM ".ENTREPRISES_DOSSIERS." WHERE num_client = '$active[num_client]'";
$resultat_rech = mysql_query($rech_sql, $conn);
$rech_date = mysql_fetch_array($resultat_rech);
//---------------------------------------------------------------------------------------------
if ($rech_date[date_limite] >= time()) {
echo "<div style='overflow: scroll; border: #000000 0px solid; height: 800px; margin-left: 5px; margin-right: 5px;'><ul>";
while ($active = mysql_fetch_array($resultat)) {
echo '<li><a href=\'afficher_fournisseur.php?nom_entreprise='.stripslashes(mb_strtoupper($active[nom_entreprise])).'\'>'.mb_strtoupper($active[nom_entreprise]).'</a><br>';
echo '<font size="2"><b> Code Postal :</b> ' .stripslashes($active[code_postal]).'</font>'.'<br>';
echo "<img src=\"$data[logo]\" alt=\"\" width=\'150px\'; />";
//echo $active[ville]." ";
echo '<font size="2"><b>Activité(s) :</b> ' .stripslashes($active[activite]).'</font>'.'<br><br>';
echo '<a href=\'afficher_fournisseur.php?nom_entreprise='.stripslashes(mb_strtoupper($active[nom_entreprise])).'\'><img src="http://www.site.com/images/acces_fiche.png" alt="Accéder à la fiche" height="25" align="absmiddle" /> '.'</li>'.'<hr>';
}
echo "</ul></div> ";
}
else {
echo "Aucun résultat trouvé !";
}
?>
Re: Problème affichage image
Posté : 28 oct. 2010, 00:37
par orell1
C'est ok!
Sur tes conseils j'ai relu tout le code et j'ai fait une jointure...
Tout fonctionne à merveille!
Merci pour ce précieux coup de main!
voici mon code final :
<?php
$conn = db_connect();
$sql = "SELECT *
FROM entreprises_coordonnees
LEFT JOIN pefac_entreprises_dossiers ON entreprises_dossiers.num_client=entreprises_coordonnees.num_client
WHERE activite like '%".$activite."%' AND code_postal like '%".$code_postal."%' AND mots_cles like '%".$mots_cles."%' AND mots_cles_option like '%".$mots_cles_option."%'";
$resultat = mysql_query($sql, $conn);
$result = mysql_query($sql, $conn);
//---------------------------------- rechercher la date limite --------------------------------
$active = mysql_fetch_array($result);
$conn = db_connect();
$rech_sql = "SELECT * FROM ".ENTREPRISES_DOSSIERS." WHERE num_client = '$active[num_client]'";
$resultat_rech = mysql_query($rech_sql, $conn);
$rech_date = mysql_fetch_array($resultat_rech);
//---------------------------------------------------------------------------------------------
if ($rech_date[date_limite] >= time()) {
echo "<div style='overflow: scroll; border: #000000 0px solid; height: 800px; margin-left: 5px; margin-right: 5px;'><ul>";
while ($active = mysql_fetch_array($resultat)) {
echo '<li><a href=\'afficher_fournisseur.php?nom_entreprise='.stripslashes(mb_strtoupper($active[nom_entreprise])).'\'>'.mb_strtoupper($active[nom_entreprise]).'</a><br>';
echo '<font size="2"><b> Code Postal :</b> ' .stripslashes($active[code_postal]).'</font>'.'<br>';
echo "<img src=\"$active[logo]\" alt=\"\" width=\'150px\'; />";
//echo $active[ville]." ";
echo '<font size="2"><b>Activité(s) :</b> ' .stripslashes($active[activite]).'</font>'.'<br><br>';
echo '<a href=\'afficher_fournisseur.php?nom_entreprise='.stripslashes(mb_strtoupper($active[nom_entreprise])).'\'><img src="http://www.site.com/images/acces_fiche.png" alt="Accéder à la fiche" height="25" align="absmiddle" /> '.'</li>'.'<hr>';
}
echo "</ul></div> ";
}
else {
echo "Aucun résultat trouvé !";
}
?>
Re: Problème affichage image
Posté : 28 oct. 2010, 00:43
par stealth35
pourquoi tu fait 2 mysql_query pour t'a première requête ?
Re: Problème affichage image
Posté : 28 oct. 2010, 00:48
par orell1
en fait y'en a une qui gère le while : $resultat = mysql_query($sql, $conn);
et l'autre : $active = mysql_fetch_array($result);
Re: Problème affichage image
Posté : 28 oct. 2010, 01:01
par stealth35
en fait y'en a une qui gère le while : $resultat = mysql_query($sql, $conn);
et l'autre : $active = mysql_fetch_array($result);
il te manque un while alors, d'ailleur tu peux faire tout ca en 1 seule requete
Re: Problème affichage image
Posté : 28 oct. 2010, 01:16
par orell1
C'est bien ce qui me semblait mais je ne sais pas joindre les deux...

Re: Problème affichage image
Posté : 28 oct. 2010, 01:19
par stealth35
C'est bien ce qui me semblait mais je ne sais pas joindre les deux...

pourtant tu le fait dans la premier requete