Isset, empty.. besoin d'aide

Bonjour,



Bonjour,



J ai crée un formulaire permettant à mes employés de choisir leur semaine de vacances.

J'aimerai me créer une pages qui repertori pour chaque semaine, qui va en vacances, et que la semaine ne s affiche que si une personne a pris une semaine de vacances

Or, je n arrive pas a faire que seulement les semaines ou il y a des personnes inscrites s'affiche. Actuellement, j ai toutes les semaines d affichées, qu il y ait qq1 en vacances ou non.

Voici en gros ce que j ai:

Semaine 1:

employé 1
employé 2
employé 3
employé 4

Semaine2
Semaine3
semaine4
employé 4
employé 5

Or j aimerai que seulement s'affiche:
Semaine 1:

employé 1
employé 2
employé 3
employé 4
semaine4
employé 4
employé 5

J ai essayé les f° isset et empty, mais j avous ne pas trop les comprendre...

Voici mon script (pour 1semaine, sans isset, ni empty):

<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=vacance', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>

<p>Voici ce qui a été enregistré: </p>

<p>Semaine n°1 </p>

<table class="planning">
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>semaine</th>

</tr>

<?php
$reponse = $bdd->query('SELECT * FROM planning WHERE semaine=\'01\' )

while ($donnees = $reponse->fetch())
{
?>

<tr><td>
<?php echo $donnees['nom']; ?>

</td>

<td>
<?php echo $donnees['prenom']; ?>

</td>

<td><?php echo $donnees['semaine']; ?>
</td>

<?php }
$reponse->closeCursor();

?>

</tr>
</table>

</br>

Comment dois je faire ???

Merci

3 réponses

  1. empty() Détermine si une variable contient une valeur non nulle
    isset() Détermine si une variable est affectée

    remplace :
    <?php echo $donnees['semaine']; ?> 

    par :

    <?php if(!empty($donnees['semaine']))
    {
    echo $donnees['semaine'];
    }
    ?>


    En gros je lui dis, Si $donnees['semaine']; n'est pas vide tu la met.
    mais ne connaissant pas ta table il se peut que ça fonctionne pas
    du coup il est possible de le modifier
    0
    1. Merci, mais je veux que ce soit la totalité du tableau qui s'affiche ou ne s'affiche pas.
      Si je met votre code, j'aurai toujours la ligne des <th>...
      0
      1. tu fait tes requete par semaine si je comprend bien,donc il se peut qu'une semaine soit vide(par exemple semaine 01) et personne n'a de vacance c'est ça?
        0
    2. Salut !

      Normalement tu devrais pouvoir savoir si à une semaine est inscrit quelqu'un ou personne rien qu'en faisant une requête SQL. Je ne sais pas si tu vois ce que je veux dire, mais il serait plus judicieux de revoir ta base de données, en y établissant deux tables, une pour les semaines et une pour les personnes.
      Avec une association "inscrire" (0,n 0,n) entre ces deux tables tu pourra alors faire une requête de ce type :

      SELECT * FROM semaine INNER JOIN inscrire USING semaineID INNER JOIN personne USING personneID WHERE semaineNumero=?

      tu obtiendra alors les informations de toutes les semaines où il existe des inscriptions ainsi que les informations sur les personnes inscrites à ces semaines.

      pour les th, avant de les afficher, il faut que tu vérifie que tu ais bien au moins une personne inscrite à la semaine correspondante, il suffit de compter le nombre d'entrée que retourne ta requête SQL et de remettre le curseur au début (ou bien de passer par les requêtes préparées) ou encore de faire un COUNT en SQL
      SELECT COUNT(*) FROM ...etc.

      Voilà quelques pistes
      0