Page 1 sur 1

if, isset, empty ?? besoin d'aide!!!

Posté : 30 nov. 2010, 22:01
par x5452
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

Re: if, isset, empty ?? besoin d'aide!!!

Posté : 01 déc. 2010, 02:09
par devlop78
$reponse = $bdd->query('SELECT * FROM planning WHERE semaine=\'01\' )

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

Pour les isset et tout, j'avoue ça m'a souvent destabiliser. Php offre un langage souple et plus intuitif que pas mal d'autres, mais sur ce point, il est assez sé au aine. Il faut regarder la doc ou les tableaux comparatifs. Dans les langages fortement typés, ces questions n'existent pas : soit la variable existe, soit t'as une erreur. Et si elle existe, soit elle est du type qu'il faut, soit elle est nulle. Gros Somodo. Mais à coté, les autres langages ont leurs difficultés ;) Là, la barrière entre non existant et null est quasi inexistant. Bref,

isset renverra False pour une variable jamais déclarée, détruite (avec unset) ou nulle. C'est la dernière condition que je ne trouve pas logique.
empty : renverra true pour :

* "" (une chaîne vide)
* 0 (0 en tant qu'entier)
* "0" (0 en tant que chaîne de caractères)
* NULL
* FALSE
* array() (un tableau vide)
* var $var; (une variable déclarée, mais sans valeur dans une classe)

Là encore ... "0" est vide pour lui. C'est là où PHP commence à être traitre ! donc if ("0" == 0 == null == false) et empty("0" == ""), tout ça c'est pareil !

Donc pour éviter ces problèmes, je te conseille perso, pour les $_POST, et trucs comme ça, de vérifier avec isset(). Pour des propriétés d'objet, avec === null (sauf erreur de ma part, j'avoue avoir un doute, c'est surtout un exemple du singleton où tu déclares $instance = null;), et pour le reste, dès que tu peux être le plus précis possible c'est mieux ($bool === false), ($int === 5), etc ... car n'oublions pas que "0" == 0 == null != "0 chien", mais que "0 chien" == 0 (lol). Mais "0" !== 0 !== null !== false

Je te conseille de lire la doc sur transtypage.

Re: if, isset, empty ?? besoin d'aide!!!

Posté : 01 déc. 2010, 09:47
par Cyrano
Tss tss, ça vaut la peine d'avoir une FAQ :roll:

Un peu de lecture ;)

Génération code php

Posté : 01 déc. 2010, 16:18
par HTML BOY
Bonjour, mon problème est petit mais très énervant ...
En fait j'essaye de puis 2 jours de créer une page me permettant de générer un certain nombres de codes, et les entrer dans mysql !
Mais cela ne m'entre dans tout les cas qu'un seul code :cry:
<?php
session_start();
mysql_connect("X", "XXX", "XXXXXXXX");
mysql_select_db("XXX_db");

if(isset($_POST['c']))
{
$c=$_POST['c'];
$n='0';
while($n<$c)
{
$gen=rand(1000, 9999);
mysql_query('insert into code(code) values ("'.$gen.'")');
echo "Tout c'est bien passé !!!";
$n++;
exit();
}
}
?>
Le nombre de code à générer :<form action="" method="post"><input type="text" name="c" value="" /><BR><input type="submit" value="Générer"></form>

OUPS

Posté : 01 déc. 2010, 16:20
par HTML BOY
Oups, je suis désolé, je me suis trompé d'endroit pour poster mon message 8-|