Isset, empty.. besoin d'aide

Fermé
fabieng_45 Messages postés 82 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 18 février 2012 - 29 nov. 2010 à 18:47
Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 - 30 nov. 2010 à 00:17
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
A voir également:

3 réponses

Lord Zero Messages postés 459 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
29 nov. 2010 à 22:18
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
fabieng_45 Messages postés 82 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 18 février 2012 5
29 nov. 2010 à 22:25
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
Lord Zero Messages postés 459 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
29 nov. 2010 à 22:37
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
Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
Modifié par Stouffi le 30/11/2010 à 00:17
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