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! :wink:

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... :P

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]."&nbsp;&nbsp;";
	  		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" />&nbsp; '.'</li>'.'<hr>';
	
	  	}
	  	
	  	echo "</ul></div>  ";
	}
  	else {
  		echo "Aucun r&eacute;sultat trouv&eacute; !";
  	}
?>


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! :D

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é... :cry:

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]."&nbsp;&nbsp;";
	  		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" />&nbsp; '.'</li>'.'<hr>';
	
	  	
		  }
	  	
	  	echo "</ul></div>  ";
	}
  	else {
  		echo "Aucun r&eacute;sultat trouv&eacute; !";
  	}
?>

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]."&nbsp;&nbsp;";
	  		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" />&nbsp; '.'</li>'.'<hr>';
	  	
		  }
	  	
	  	echo "</ul></div>  ";
	}
  	else {
  		echo "Aucun r&eacute;sultat trouv&eacute; !";
  	}
?>

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