Auteur Sujet: conditions d'affichage ou pas  (Lu 4187 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne mm58

  • Débutant
  • *
  • Messages: 11
conditions d'affichage ou pas
« le: 20 Février 2013 à 19:56:43 »
Bonjour, J'ai un petit problème !
J'ai un petit script qui fonctionne très bien pour un affichage ou pas d'un titre en fonction du fait qu'un champ est vide ou pas
<?php if ($result['pictoconf1'] != ''){?>confort<?php }?>
Le problème est que je voudrai le faire fonctionner en fonction de plusieurs champs qui se trouve être le résultat de plusieurs cases à cocher afin d'afficher des images picto.
Sachant que si aucune case n'est coché, il n'y a pas besoin d'afficher le titre.
Merci de votre aide !!! 

Hors ligne Sellig33

  • Connaisseur
  • ***
  • Messages: 263
Re : conditions d'affichage ou pas
« Réponse #1 le: 20 Février 2013 à 20:43:20 »
Bonjour,

je suis pas sur de ce que tu souhaite, j’espère que je répond à ta question.
$resultat = "";
$title = "Mon Titre";
// résultat issue d'un tableau
$case = array('case1' => '','case2' => '','case3' => '','case4' => '','case5' => '');
// on boucle le tableau
foreach ($case as $key => $value) {
    // si pas vide je récupère dans résultat
    if(!$value == '') {
    $resultat .= $key .' = '. $value . "<br>";
    }
}
// affichage
// on verifier si resultat contient des valeurs
if (!empty($resultat)) {
echo $title . '<br>';
echo $resultat;
} else {
// sinon
echo "rien!";
}

Gilles

Hors ligne mm58

  • Débutant
  • *
  • Messages: 11
Re : conditions d'affichage ou pas
« Réponse #2 le: 20 Février 2013 à 23:38:27 »
Bonsoir et merci de votre message mais cela semble ne pas fonctionner.
$case = array($result['pictoconf1'] => '',$result['pictoconf2'] => '',$result['pictoconf3'] => '',$result['pictoconf4'] => '',$result['pictoconf5'] => '');
quelque soit les cases coché ou pas le resultat qui s'affiche est     rien!

en fait pour comprendre le fonctionnement les champs de la base de donnée qui sont 'actif' porte le resultat    checked  ceci afin de les récuperer lors des modifications du formulaire de case à cocher.

et la suite du programe d'affichage des pictos est :
<?php if ($result['pictoconf1'] != ''){?><img src="picto-confort/picto-conf1.gif"><?php }?>
<?php if ($result['pictoconf2'] != ''){?><img src="picto-confort/picto-conf2.gif"><?php }?>
<?php if ($result['pictoconf3'] != ''){?><img src="picto-confort/picto-conf3.gif"><?php }?>
<?php if ($result['pictoconf4'] != ''){?><img src="picto-confort/picto-conf4.gif"><?php }?>
etc..
donc si j'affiche un titre du genre : " pictogrammes confort " avant les resultats et que aucune case n'a été coché sur le formulaire, le titre "pictogrammes confort" restera seul sans raison.

Hors ligne Sellig33

  • Connaisseur
  • ***
  • Messages: 263
Re : conditions d'affichage ou pas
« Réponse #3 le: 21 Février 2013 à 08:30:51 »
Bonjour,

La valeur testé est dans un tableau ici $result

$title = "Mon Titre";

$result['pictoconf1'] = '';
$result['pictoconf2'] = 'on';
$result['pictoconf3'] = '';
$result['pictoconf4'] = '';
$result['pictoconf5'] = 'on';

// faire un Foreach pour tester le tableau

foreach ($result as $key => $value) {
    if(!$value == '') { // si $value non vide on récupère le path de l'image
    $resultat .= $key ." = ". $value . " --- et l'image qui vas avec => /path/picto-conf".$key.".gif <br>";
    }
}

// pour finir on teste le $resultat

if (!empty($resultat)) {
echo $title . '<br>';
echo $resultat;
} else { echo "rien!"; }


Gilles
« Modifié: 21 Février 2013 à 11:20:37 par Sellig33 »

Hors ligne mm58

  • Débutant
  • *
  • Messages: 11
Re : conditions d'affichage ou pas
« Réponse #4 le: 21 Février 2013 à 17:29:00 »
Bonjour, Désolé mais :
Notice: Undefined variable: resultat in C:\Program Files\EasyPHP-12.1\www\my portable files\morvan-tourisme-php\site\affichage-picto-confort.php on line 40
Mon Titre
0 = 1 --- et l'image qui vas avec => /path/picto-conf0.gif
id = 1 --- et l'image qui vas avec => /path/picto-confid.gif
1 = 1 --- et l'image qui vas avec => /path/picto-conf1.gif
id_user = 1 --- et l'image qui vas avec => /path/picto-confid_user.gif
2 = checked --- et l'image qui vas avec => /path/picto-conf2.gif
3 = checked --- et l'image qui vas avec => /path/picto-conf3.gif
4 = checked --- et l'image qui vas avec => /path/picto-conf4.gif
5 = checked --- et l'image qui vas avec => /path/picto-conf5.gif
6 = checked --- et l'image qui vas avec => /path/picto-conf6.gif http://www.morvan.com.fr/essai

Hors ligne Sellig33

  • Connaisseur
  • ***
  • Messages: 263
Re : conditions d'affichage ou pas
« Réponse #5 le: 22 Février 2013 à 15:52:12 »
Bonjour,

Une portion de code nous aiderez pour vous aider.

Gilles

Hors ligne mm58

  • Débutant
  • *
  • Messages: 11
Re : conditions d'affichage ou pas
« Réponse #6 le: 23 Février 2013 à 11:03:27 »
Je vs remercie sincèrement si vs pouvez m'aider. je vous joint le fichier complet.

<?php require_once('_'); ?>

<?php

//récupération de la variable,
//qui va nous permettre de savoir quel enregistrement afficher
$id_user  = $_GET["identifiant"] ;
 
//sélection base et pass.
mysql_select_db($database_);

//création de la requête SQL:
$sql = "SELECT * FROM tbl_picto_confort WHERE id_user = '$id_user'";

//exécution de notre requête SQL:
$requete = mysql_query( $sql,  ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );

//récupération avec mysql_fetch_array(), et affichage de nos résultats :
$result = mysql_fetch_array( $requete )

?>
<table width="900" border="0" cellpadding="5">
<tr>
  <td>
<?php
// c'est là que je voudrais afficher le titre ou pas l'afficher si aucun champ n'est remplie sauf
// biensûr le champ ID et le champ ID_USER
?>
 Titre -> confort

  </td>
</tr>
<tr>
  <td> 
<?php if ($result['pictoconf1'] != ''){?><img src="picto-confort/picto-conf1.gif"><?php }?>
<?php if ($result['pictoconf2'] != ''){?><img src="picto-confort/picto-conf2.gif"><?php }?>
<?php if ($result['pictoconf3'] != ''){?><img src="picto-confort/picto-conf3.gif"><?php }?>
<?php if ($result['pictoconf4'] != ''){?><img src="picto-confort/picto-conf4.gif"><?php }?>
<?php if ($result['pictoconf5'] != ''){?><img src="picto-confort/picto-conf5.gif"><?php }?>
<?php if ($result['pictoconf6'] != ''){?><img src="picto-confort/picto-conf6.gif"><?php }?>
etc..

  </td>
</tr>
</table>

« Modifié: 24 Février 2013 à 11:52:35 par mm58 »

Hors ligne Sellig33

  • Connaisseur
  • ***
  • Messages: 263
Re : conditions d'affichage ou pas
« Réponse #7 le: 23 Février 2013 à 12:18:28 »
Bonjour,

<?php

//récupération de la variable,
//qui va nous permettre de savoir quel enregistrement afficher
$id_user  $_GET["identifiant"] ;
 
//sélection base et pass.
mysql_select_db($database_);

//création de la requête SQL:
$sql "SELECT * FROM tbl_picto_confort WHERE id_user = '$id_user'";

//exécution de notre requête SQL:
$requete mysql_query$sql,  ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );

//récupération avec mysql_fetch_array(), et affichage de nos résultats :
$result mysql_fetch_array$requete 

//
// [b]voila ce que je vous propose[/b]
// 

// on recupére les conforts disponibles
foreach ($result as $key => $value) {
    if(!$value == '') {
     // on place les pictos disponibles dans un tableau
     $picto[] = "picto-conf".$key.".gif";
    } 
}
// si le tableau picto contient des resultats on les affiches
if (!empty($picto)) { ?>

<table>
<tr><td>
<?php echo "Titre du confort";  ?>
</td></tr>

<tr>
<?php  foreach ($picto as $key => $value) {
echo '<td><img src="picto-confort/'.$value.'"></td>';
}?>

</tr>
</table>
<?php } else {  // sinon pas de confort :-(
echo "Aucun confort"
}
 
?>




Hors ligne mm58

  • Débutant
  • *
  • Messages: 11
Re : conditions d'affichage ou pas
« Réponse #8 le: 23 Février 2013 à 15:06:08 »
bjr,
dur, dur ! ça me prend la tête ! juste pour afficher un titre  ^_^

Parse error: syntax error, unexpected 'foreach' (T_FOREACH) in C:\Program Files\EasyPHP-12.1\www\my portable files\morvan-tourisme-php\site\affichage-picto-confort-sauvegarde.php on line 29


p.s.

fichier d'alimentation de la table

<?php
 
require('_');
 
  //requête SQL:
 
 $sql = "SELECT * FROM tbl_picto_confort WHERE id_user = 1 " ;
 
  //exécution de la requête:
  $requete = mysql_query( $sql, _ ) ;
 
  //affichage des données:
    if( $result = mysql_fetch_object( $requete ))
  {
 
  ?>
  <form name="insertion" action="modif-pictoconf-2.php" method="POST">
  <input type="hidden" name="id_user" value="<?php echo($id_user) ;?>">
  <table border="1" align="center" cellspacing="0" cellpadding="2" bordercolor="#CCCCCC">
 
 
  <tr>
    <td>
      <input type="checkbox" name="pictoconf1" value="checked"<?php echo($result->pictoconf1)?> />
    </td>
    <td><img src="../picto-confort/picto-conf1.gif"/ width='32'  height='32'  style='height:32px;width:32px;'  class='' ></td>
    <td>D&eacute;pannage 1&#176; soins</td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="pictoconf2" value="checked"<?php echo($result->pictoconf2)?> />
    </td>
    <td><img src="../picto-confort/picto-conf2.gif"/ width='30'  height='30'  style='height:30px;width:30px;'  class='' ></td>
    <td>T&eacute;l&eacute;vision dans la chambre</td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="pictoconf3" value="checked"<?php echo($result->pictoconf3)?> />
    </td>
    <td><img src="../picto-confort/picto-conf3.gif"/ width='30'  height='30'  style='height:30px;width:30px;'  class='' ></td>
    <td>Transport de bagage</td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="pictoconf4" value="checked"<?php echo($result->pictoconf4)?> />
    </td>
    <td><img src="../picto-confort/picto-conf4.gif"/ width='30'  height='30'  style='height:30px;width:30px;'  class='' ></td>
    <td>T&eacute;l&eacute;vision</td>
etc... 

</table>


<br>
<table border=0>
<tr align="center">
      <td colspan="2"><input type="submit" value="modifier"></td>
    </tr>
  </table> 
   
</form>

<?php
  }//fin if
  ?>
« Modifié: 24 Février 2013 à 11:55:17 par mm58 »

Hors ligne Sellig33

  • Connaisseur
  • ***
  • Messages: 263
Re : conditions d'affichage ou pas
« Réponse #9 le: 23 Février 2013 à 16:36:44 »
Bonjour,

regarde dans le fichier affichage-picto-confort-sauvegarde.php à la ligne 29 ou avant
et vérifie la syntaxe des lignes.

Gilles

Hors ligne mm58

  • Débutant
  • *
  • Messages: 11
Re : conditions d'affichage ou pas
« Réponse #10 le: 23 Février 2013 à 19:21:05 »
OUI SUPER  on approche ! , c'est presque cela
J'ai changé
$result = mysql_fetch_array( $requete )
par
if( $result = mysql_fetch_assoc( $requete ))
  {.....

le problème est qu'il ressort le tableau avec  id et id_user (donc on ne peu pas voir quand il n'y a rien)
ci-dessous affichage source de la page qui s'affiche
<table>
      <tr><td>
         Titre du confort      </td></tr>
      
      <tr>
         <td><img src="picto-confort/id.gif"></td><td><img src="picto-confort/id_user.gif"></td><td><img src="picto-confort/pictoconf1.gif"></td><td><img src="picto-confort/pictoconf2.gif"></td><td><img src="picto-confort/pictoconf3.gif"></td><td><img src="picto-confort/pictoconf4.gif"></td><td><img src="picto-confort/pictoconf5.gif"></td>      </tr>
   </table>

Hors ligne Sellig33

  • Connaisseur
  • ***
  • Messages: 263
Re : conditions d'affichage ou pas
« Réponse #11 le: 23 Février 2013 à 20:38:22 »
Bonsoir
Il suffit de remplacer * du select par le nom du champ que tu souhaite
Gilles

Hors ligne mm58

  • Débutant
  • *
  • Messages: 11
Re : conditions d'affichage ou pas
« Réponse #12 le: 24 Février 2013 à 11:51:00 »
OUI !!! Merci beaucoup ! c'est vraiment ça  qu'il me fallait ^_^
J'ai appris quelque chose.
Maintenant il faut que je me mette au travail car il y a 8 séries de picto à installer.

Hors ligne Yannick!

  • Administrateur
  • Habitué
  • *****
  • Messages: 120
Re : conditions d'affichage ou pas
« Réponse #13 le: 25 Février 2013 à 10:30:57 »
Bonjour,

Attention aux injections SQL !!!
//récupération de la variable,
//qui va nous permettre de savoir quel enregistrement afficher
$id_user  = $_GET["identifiant"] ;
 
//sélection base et pass.
mysql_select_db($database_);

//création de la requête SQL:
$sql = "SELECT * FROM tbl_picto_confort WHERE id_user = '$id_user'";

Il faut échapper votre variable (ex : $id_user  =  addslashes($_GET["identifiant"]))

Bon courage

Yannick

Hors ligne mm58

  • Débutant
  • *
  • Messages: 11
Re : conditions d'affichage ou pas
« Réponse #14 le: 25 Février 2013 à 23:24:37 »
Merci ! ^_^