Problème affichage image

Mammouth du PHP | 687 Messages

27 oct. 2010, 17:45

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

ViPHP
xTG
ViPHP | 7331 Messages

27 oct. 2010, 17:46

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.

Mammouth du PHP | 687 Messages

27 oct. 2010, 17:53

Effectivement je viens d'essayer avec ça :
echo "<img src='$data[logo]'  />";
Et tout fonctionne!

Merci beaucoup pour ton aide!
bonne soirée

ViPHP
xTG
ViPHP | 7331 Messages

27 oct. 2010, 19:34

echo "<img src=\"{$data['logo']}\" alt=\"\"  />";
Tout de même plus propre ainsi. ;)

Mammouth du PHP | 687 Messages

27 oct. 2010, 19:45

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

ViPHP
xTG
ViPHP | 7331 Messages

27 oct. 2010, 20:33

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 ?

Mammouth du PHP | 687 Messages

27 oct. 2010, 20:48

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

ViPHP
xTG
ViPHP | 7331 Messages

27 oct. 2010, 22:12

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. ^_-

Mammouth du PHP | 687 Messages

27 oct. 2010, 22:56

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; !";
  	}
?>

Mammouth du PHP | 687 Messages

28 oct. 2010, 00:37

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; !";
  	}
?>

ViPHP
ViPHP | 5462 Messages

28 oct. 2010, 00:43

pourquoi tu fait 2 mysql_query pour t'a première requête ?

Mammouth du PHP | 687 Messages

28 oct. 2010, 00:48

en fait y'en a une qui gère le while : $resultat = mysql_query($sql, $conn);
et l'autre : $active = mysql_fetch_array($result);

ViPHP
ViPHP | 5462 Messages

28 oct. 2010, 01:01

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

Mammouth du PHP | 687 Messages

28 oct. 2010, 01:16

C'est bien ce qui me semblait mais je ne sais pas joindre les deux... :(

ViPHP
ViPHP | 5462 Messages

28 oct. 2010, 01:19

C'est bien ce qui me semblait mais je ne sais pas joindre les deux... :(
pourtant tu le fait dans la premier requete