Page 1 sur 1

Comparaison de value de checkbox avec données de la BdD

Posté : 20 juin 2011, 09:41
par Fabien.Stinson
Bonjour, :D

J'ai un switch par mois de l'année allant donc de case 1 à 12, comme ceci:
<?php
	case 11: if ( (date('d') > 9) AND (date('m')  > 8) )	
		{
			for ($nb_case = 1; $nb_case <= 31; $nb_case++) 
			{
				echo ' '.$nbcase ++. '<input type="checkbox" name="case" id="case" disabled />';
			}
		}
		else
		{
			for ($nb_case = 1; $nb_case <= 30; $nb_case++) 
			{
				echo ''. $nbcase++.'<input type="checkbox" name="jour_dispo[]" value="'.$nbcase.'/'.$_SESSION['mois'].'/'.$annee.'"/> ' ;
			}
		}
		break;
 ?> 
Pour l'exemple du mois de Novembre (ci-dessus), j'ai une ligne de checkboxs allant de 1 à 30 représentant les 30 jours du mois. Elles sont verrouillées
si la date est supérieure au 09/08 pour respecter une contrainte. Si cette date n'est pas passée, les checkboxs sont accessibles et ont pour value le
numéro de la case (de 1 à 30, soit le numéro du jour), le numéro du mois et l'année. Exemple: 1/11/2011.
L'utilisateur coche les cases (il s'agit d'un système de réservation en quelque sorte). Les values des checkboxs vont s'enregistrer dans une table où
chaque utilisateur est identifié par un numéro, un nom et des dates de réservation.
De plus, j'ai une table où sont répertoriés tout les jours de l'année de 1 à 365. Lorsqu'un jour est réservé, le nom de l'utilisateur est inscrit
dans la table calendrier sur la ligne du jour concerné.

Ce que je veux faire maintenant, c'est griser une checkbox pour laquelle un utilisateur aurait déjà réservé, mais seulement pour lui afin qu'il ne la
recoche pas. Les autres utilisateurs peuvent réserver ce jour là aussi, ça ne pose pas de problèmes. :wink:

J'ai fait une requête pour récupérer les dates pour lesquelles un utilisateur aurait déjà réservé:
<?php
$reponse=$bdd->query('SELECT ID_JOUR_DISPO FROM personnel WHERE NOM_PERSONNE = '$_SESSION['nom']'');	
echo $reponse;
?>

Cette requête me retourne cette erreur sur ma page sur la ligne de la requête:
Parse error: syntax error, unexpected T_VARIABLE.

De plus, même en parvenant à extraire les résultats, je n'ai pas vraiment d'idée pour bloquer les cases. :roll:

Merci d'avance pour votre aide.

Re: Comparaison de value de checkbox avec données de la BdD

Posté : 20 juin 2011, 13:51
par telnes
hello

erreur de synthaxe (concaténation)


par exemple :
$sessionName = $_SESSION['nom'];
$reponse=$bdd->query("SELECT ID_JOUR_DISPO FROM personnel WHERE NOM_PERSONNE = '$sessionName' ");

Re: Comparaison de value de checkbox avec données de la BdD

Posté : 20 juin 2011, 14:51
par Fabien.Stinson
Oui, j'ai réglé ce problème finalement. Mais maintenant, j'vois pas du tout comment comparer les données renvoyées par les values de checkboxs à celles renvoyées par la requête.
J'aurais besoin de faire quelque chose comme:
if(value checkbox = $reponse_requete)
{
afficher la/les checkboxs concernées en disabled
}
Et je vois pas du tout comment coder tout ça .. :?

Re: Comparaison de value de checkbox avec données de la BdD

Posté : 20 juin 2011, 15:00
par moogli
salut,

in_array ?


@+

Re: Comparaison de value de checkbox avec données de la BdD

Posté : 21 juin 2011, 10:06
par Fabien.Stinson
Merci moogli.
J'ai essayé ça:
$reponse=$bdd->query("SELECT ID_JOUR_DISPO FROM personnel WHERE NOM_PERSONNE = '.{$_SESSION['nom']}.'");
			$arr=array($reponse);
			echo $arr;
			if(in_array('$reponse', $arr))
			{
				for ($nb_case = 1; $nb_case <= 30; $nb_case++) 
				{
					echo ''.$nbcase++.'<input type="checkbox" name="jour_dispo[]" value="'.$nbcase.'/'.$_SESSION['mois'].'/'.$annee.'"/> ' ;
				}
			}
Ça n'a aucun effet, la variable contenant le résultat de ma requête ne passe pas dans un array: lorsque j'affiche l'array, il n'y a rien dedans ... Pourtant, la requête envoyée directement dans Phpmyadmin me retourne un résultat.

Re: Comparaison de value de checkbox avec données de la BdD

Posté : 21 juin 2011, 23:21
par moogli
heu y a rien qui te choque la if(in_array('$reponse', $arr)) ?

si la réponse est non je te conseil de revoir l'utilisation des variables avec php :)



@+































































solution : if(in_array($reponse, $arr))