affichage et condition

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : affichage et condition

par cmoi » 26 déc. 2006, 23:02

il manque le else !!!

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

Merci beaucoup.

par charabia » 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...

par cmoi » 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>';

par charabia » 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

par cmoi » 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

par charabia » 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.

par cmoi » 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.

par charabia » 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.

par cmoi » 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>';
	   }

par charabia » 26 déc. 2006, 21:41

Pourquoi fais-tu une concaténation ?

par cmoi » 26 déc. 2006, 21:35

ok ok, j'essaie ça avec le if
if (isset('.mysql_result($res, $i, "LOGO").')) 

par charabia » 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.

par cmoi » 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.

par charabia » 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.

affichage et condition

par cmoi » 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.