affichage et condition

Eléphant du PHP | 440 Messages

26 déc. 2006, 19:36

Bonjour,
echo '<center><a href="'.mysql_result($res, $i, "WEB").'" target="_blank">'.'<img src="'.mysql_result($res, $i, "PHOTO").'" border="0" width="200" length="260"/>'.'</center></a>';  
qui affiche une photo avec un lien url. Mais quand il n'y a pas de photo comment faire pour qu'il n'y ait une sorte de cadre qui s'affiche ?

Merci comme toujours pour votre aide.
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 19:39

Testes l'existence de ta photo avec isset. Ensuite selon le cas soit tu affiches la photo, soit une image transparante avec un cadre grâce à un simple if...else.

Eléphant du PHP | 440 Messages

26 déc. 2006, 21:21

j'ai essayé de bidouiller un truc
if ('.mysql_result($res, $i, "PHOTO").' == true) 
	   { 
	   echo '<center><a href="'.mysql_result($res, $i, "WEB").'" target="_blank">'.'<img src="'.mysql_result($res, $i, "PHOTO").'" border="0" width="200" length="260"/>'.'</center></a>';  
		}
		else 
		{
		'<center><a href="'.mysql_result($res, $i, "WEB").'" target="_blank">'.'<img src="'.mysql_result($res, $i, "PHOTO").'" border="0" width="200" length="260"/>'.'</center></a>';  
		}
mais ca ne change rien. Je n'ai rien trouvé sur la façon de dire qu'un champ contient ou non une valeur.
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 21:23

C'est drôle....j'ai l'impression de parler en l'air :lol:
Testes l'existence de ta photo avec isset. Ensuite selon le cas soit tu affiches la photo, soit une image transparante avec un cadre grâce à un simple if...else.
Je ne vois le isset nulle part dans ton code.

Eléphant du PHP | 440 Messages

26 déc. 2006, 21:35

ok ok, j'essaie ça avec le if
if (isset('.mysql_result($res, $i, "LOGO").')) 
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 21:41

Pourquoi fais-tu une concaténation ?

Eléphant du PHP | 440 Messages

26 déc. 2006, 21:46

en fait j'ai vu que isset fonctionne avec des variables donc j'ai fait cela :
$logo = mysql_result($res, $i, "LOGO");
if ((isset($logo)) {
	   echo '<center><a href="'.mysql_result($res, $i, "WEB").'" target="_blank">'.'<img src="'.mysql_result($res, $i, "LOGO").'" border="0" />'.'</center></a>';  
	   } 
	   else
	  {
	  '<center><a href="'.mysql_result($res, $i, "WEB").'" target="_blank">'.'<img src="'.mysql_result($res, $i, "LOGO").'" border="0" width="200" length="260"/>'.'</center></a>';
	   }
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 21:55

Tu y es presque ce coup ci.

A la première condition tu affiches l'image si elle existe.

A la dexième tu dois afficher une autre image, celle qui remplace les logo inexistants avec une bordure comme tu veux faire.

Juste un tit souci, dans ta second condition (else) tu as oublié de faire un echo.

Et vu aussi que tu as créé une variable, utilises la :
mysql_result($res, $i, "LOGO") à remplacer par ton $logo.

Eléphant du PHP | 440 Messages

26 déc. 2006, 22:09

en fait je ne veux rien afficher si le logo n'existe pas. c'est pourquoi je n'ai pas mis echo.
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 22:10

Dans ce cas ne fait pas de else. Le IF suffira. Si existe alors affichage. Si ça n'existe pas il n'y aura rien.

Eléphant du PHP | 440 Messages

26 déc. 2006, 22:22

j'ai modifié ainsi
if ((isset($logo)) 
		{ 
       echo '<center><a href="'.mysql_result($res, $i, "WEB").'" target="_blank">'.'<img src="$logo" border="0" />'.'</center></a>';   
       }  
mais j'ai un message d'erreur à propos de { avant echo
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 22:32

Autant pour moi...mais à force je n'ai pas vu que je disais une bêtise.

En fait isset te permet de tester l'existance d'une variable. Or tu l'as initialisée donc elle existe. Maintenant il faut que tu regardes si ce champ est vide ou pas.
$logo = mysql_result($res, $i, "LOGO");
$web = mysql_result($res, $i, "WEB");

if ($logo!="")
{  
	echo '<center><a href="'.$web.'" target="_blank"><img src="'.$logo.'" border="0" /></center></a>';    
}
Et je le répète, si tu ne pas voir les tutoriaux pour connaître les bases, tu seras complètement perdu plus tard. Tu continues à concaténer de façon inutile plusieurs éléments, et quand il faut le faire tu ne le fais pas.

Je te conseille donc de parcourir ces sites avant de poursuivre :
http://www.phpdebutant.org
http:///www.siteduzero.com

Eléphant du PHP | 440 Messages

26 déc. 2006, 22:51

super tout fonctionne très bien. j'ai appliqué cette formule magique à une autre page (présentation en tableau). malheureusement quand le logo n'existe pas en 1re cellule, ce qui était en 2e passe en 1ère, ce qui était en 3e passe en 2e, etc ...

Comment faire pour qu'une cellule vide conserve une largeur minimum ?
Indiquer une largeur dans la balise ne suffit. Voici le code :
	echo '<table>'; 
    while ($i < $nb){ 
        echo '<tr onMouseOver="changeCouleur(this);" onMouseOut="remetCouleur(this);">'; 
		$logo = mysql_result($res, $i, "LOGO"); 
	$web = mysql_result($res, $i, "WEB"); 
	if ($logo!="") 
{   
    echo '<td valign="top" width="260"><center><a href="'.$web.'" target="_blank"><img src="'.$logo.'" border="0" width="130" length="260"/></center></a></td>';     
}
    echo '<td valign="top"><b><a href="'.mysql_result($res, $i, "SITE").'">'.mysql_result($res, $i, "SOCIETE").'</a></b></td>'; 
		echo '<td valign="top"><center><font face="Arial, Helvetica, sans-serif" size="1" color="#666666">'.mysql_result($res, $i, "THEMES").'</font></center></td>'; 
	    echo '<td valign="top"><center><font face="Arial, Helvetica, sans-serif" size="1" color="#666666">'.mysql_result($res, $i, "REGIONS").'</font></center></td>'; 
        echo '</tr>'; 
        $i++; 
    } 
    echo '</table>';
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 22:57

Un tout tit peu de logique ne ferait pas de mal...

Pourquoi quand le logo n'existe pas toute ta colonne saute ? Je te laisse réfléchir dessus, te donner la solution serait trop simple.

Et je crois que l'attribut length n'existe pas pour la balise img...

Eléphant du PHP | 440 Messages

26 déc. 2006, 23:02

il manque le else !!!

j'ai testé et ca marche du premier coup.

Merci beaucoup.
Débutant complet en php/mysql. Merci pour votre aide.