begin process at 2012 05 28 23:47:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

CHECKBOX à cocher suivant une boucle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

CHECKBOX à cocher suivant une boucle

mercredi 10 août 2005 à 16:27:11 | CHECKBOX à cocher suivant une boucle

paulinett

Bonjour,

j'ai déja posté à propos de ce code mais la, le problème est autre.
je voudrais faire un check dans les checkbox suivant une boucle.

j'ai une liste d'employés qui travaillent sur une machine et je souhaite modifier cette liste. pour cela, une page s'ouvre avec la liste de tous les employés de l'établissement et des checkbox en face.
je veux cocher les employés qui sont dejà associés à la machine en question.

aucun message d'erreur n'apparait mais le check n'apparait que sur le premier des employés d'une machine.

merci d'avance

voici mon code,

<H2> Tous les employes disponibles </H2>
<H3> Les employes de votre machine <FONT COLOR=red><?php echo $nom_machine ; ?></FONT> sont cochés </H3>

<?php
  // Appel le fichier connect.php
  require_once("Connect.php");
  
    // Connexion au serveur et accès à la base
   $connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
   mysql_select_db (BASE, $connexion);
  
   // Ecriture de la 1ere Requete pour sélectionner tous les fournisseurs
   $employes_tous=mysql_query("SELECT * FROM Employe",$connexion);
  
   //Ecriture de la 2ème Requete pour sélectionner tous les fournisseurs de la machine
  $employes_machine=mysql_query("SELECT Employe.id_employe FROM Employe, EmployeMachine, Machine WHERE Machine.nom_machine LIKE '%$nom_machine%' AND Machine.nom_machine=EmployeMachine.nom_machine AND EmployeMachine.id_employe=Employe.id_employe",$connexion);
     
  
    echo "<CENTER><TABLE BORDER=4 CELLSPACING=2 CELLPADDING=2>"
         //."<CAPTION ALIGN=bottom>Table <I>Données Principales</I></CAPTION>"
         ."<TR><TH>ID<TH>Nom<TH>Prénom<TH>Fonction<TH>Téléphone<TH>Email<TH>Check</TR>\n";
    
    
    while($machines_employes=mysql_fetch_object($employes_machines))
     {
      while ($tous_employes=mysql_fetch_object($employes_tous))
        {
         if ($tous_employes->id_employe == $machine_employes->id_employe)
         {
           echo '<TR><TD>'.$tous_employes->id_employe.'</TD><TD>'
            .$tous_employes->nom_employe.'</TD><TD>'
            .$tous_employes->prenom_employe.'</TD><TD>'
            .$tous_employes->fonction_employe.'</TD><TD>'
            .$tous_employes->tel_employe.'</TD><TD>'
            .$tous_employes->email_employe.'</TD><TD>'
            .'<INPUT TYPE=CHECKBOX NAME="employes[]" VALUE="'.$tous_employes->id_employe.'" CHECKED></TD></TR>';
         }
         else
         {
           echo '<TR><TD>'.$tous_employes->id_employe.'</TD><TD>'
            .$tous_employes->nom_employe.'</TD><TD>'
            .$tous_employes->prenom_employe.'</TD><TD>'
            .$tous_employes->fonction_employe.'</TD><TD>'
            .$tous_employes->tel_employe.'</TD><TD>'
            .$tous_employes->email_employe.'</TD><TD>'
            .'<INPUT TYPE=CHECKBOX NAME="employes[]" VALUE="'.$tous_employes->id_employe.'"></TD></TR>';
         }
       }  
    } 
    echo "</TABLE></CENTER>\n";   
?>

mercredi 10 août 2005 à 16:44:14 | Re : CHECKBOX à cocher suivant une boucle

arnal69130

Pourtant ça doit être àa peu près ça...
Au passage, auu lieu de <INPUT ...CHECKED>, écrit plutôt <input ... checked="checked" />, mais le pb ne vient pas de là.
Je pense que ça vient plutôt de ta boucle ou de ton if...
mercredi 10 août 2005 à 16:57:28 | Re : CHECKBOX à cocher suivant une boucle

paulinett

ben oui en fait je ne pense pas en etre loin mais je ne sais pas pourquoi, quand il y a plusieurs employes sur une machine, il ne coche pas le deuxième. j'ai tourné le truc et je ne vois pas... ca m'embete !!!
mercredi 10 août 2005 à 17:14:58 | Re : CHECKBOX à cocher suivant une boucle

arnal69130

si tu ne mets pas le else {....}, que ce passe-t-il ?
mercredi 10 août 2005 à 17:23:29 | Re : CHECKBOX à cocher suivant une boucle

paulinett

la meme chose sauf qu'il manque tous les autres employes...
il n'y a donc que le premier employe de cocher à cahque fois ... le problème vient donc de l'intérieur du if ???
mercredi 10 août 2005 à 17:32:36 | Re : CHECKBOX à cocher suivant une boucle

arnal69130

Je pense qu'il doit être possible de ne faire qu'une seule requête.
Sinon, peuessaie simplement d'afficher le résultat de tes requêtes :
echo '<pre>';
while($machines_employes=mysql_fetch_object($employes_machines)) {
   print_r($machines_employes);
   while ($tous_employes=mysql_fetch_object($employes_tous)) {
      print_r($tous_employes);
   }
}

    
jeudi 11 août 2005 à 08:40:46 | Re : CHECKBOX à cocher suivant une boucle

paulinett

Bonjour,

faire une seule requete : honnetement, je calle !

j'ai affiché le résultat comme tu me l'as conseillé... et voila le résultat. le deuxième employé se retrouve à la fin... c'est pour cela qu'il ne doit pas etre pris en compte...
mais je ne sais pas non plus comment faire la...

merci de m'aider...

voila le résultat des print_r

stdClass Object
(
    [id_employe] => 1
)
stdClass Object
(
    [id_employe] => 1
    [nom_employe] => Blouin
    [prenom_employe] => Gérard
    [fonction_employe] => gestionnaire
    [tel_employe] => 02.33.79.44.15
    [email_employe] => gblouin@ch-sthilaire-harcouet.
)
stdClass Object
(
    [id_employe] => 2
    [nom_employe] => Sauvaget
    [prenom_employe] => Frédéric
    [fonction_employe] => gestionnaire
    [tel_employe] => 02.33.79.44.16
    [email_employe] => fsauvaget@ch-sthilaire-harcoue
)
stdClass Object
(
    [id_employe] => 3
    [nom_employe] => Vauttier
    [prenom_employe] => David
    [fonction_employe] => informaticien
    [tel_employe] => 02.33.79.44.01
    [email_employe] => mvauttier@ch-sthilaire-harcoue
)
stdClass Object
(
    [id_employe] => 4
    [nom_employe] => Challois
    [prenom_employe] => Micheline
    [fonction_employe] => responsable RH
    [tel_employe] => 02.33.79.44.10
    [email_employe] => mchallois@ch-sthilaire-harcoue
)
stdClass Object
(
    [id_employe] => 2
)

    

jeudi 11 août 2005 à 10:07:17 | Re : CHECKBOX à cocher suivant une boucle

arnal69130

Je ne suis pas sur, mais peut-être qu'un GROUP BY te permettrai de ne faire qu'une requête :

SELECT Employe.id_employe, Employe.nom_employe, Employe.prenom_employe, Employe.fonction_employe, Employe.tel_employe, Employe.email_employe, Machine.nom_machine
FROM Employe, EmployeMachine, Machine
WHERE Machine.nom_machine LIKE '%$nom_machine%'
AND Machine.nom_machine=EmployeMachine.nom_machine 
- AND EmployeMachine.id_employe=Employe.id_employe - Peut-être faut-il enlever cette condition, puisque tu la testes ensuite avec le if...
GROUP BY Machine.nom_machine

Enfin, il faut essayer...
jeudi 11 août 2005 à 10:18:40 | Re : CHECKBOX à cocher suivant une boucle

paulinett

si j'enlève la condition EmployeMachine.id_employe=Employe.id_employe, la case cochée est toujours la première ! donc ca ne va pas...

le group by ne fonctionne pas mieux... mais je ne comprends pas pourquoi une seule requete. qu'est-ce que tu veux faire exactement avec cette requete unique ?
jeudi 11 août 2005 à 10:44:23 | Re : CHECKBOX à cocher suivant une boucle

arnal69130

Logiquement, avec une seule requête sur les 3 tables en même temps
(1 jointure entre Machine et EmployeMachine, et un pdt cartésien entre EmployeMachine et Employe),
tu dois pouvoir récupérer toutes les infos qui t'intéresse :

---------------
Machine 1
   | Employé1
   | Employé2
   | Employé3
   | ...
---------------
Machine 2
   | Employé1
   | Employé2
   | Employé3
   | ...
---------------
Machine 3
...

Et à chaque ligne, tu testes
if ($resRequeteEmploye->id_employe == $resRequeteMachineEmploye->id_employe)
 et en fonction, tu coches (ou pas), comme tu à déjà fait...

C'est bizarre que ça ne change rien...

1 2 3 4

Cette discussion est classée dans : mysql, id, employe, machine, employes


Répondre à ce message

Sujets en rapport avec ce message

PB d'insertion dans une base.. suite des checkbox !!! [ par paulinett ] Bonjour,J'ai déja posté à ce sujet mais je n'ai toujours pas de solution. J'ai un premier formulaire qui me donne une liste d'employés dans une struct Problème de LIENS !!! AU SECOURS !!! [ par paulinett ] Bonjour,J'ai un problème avec des liens.j'ai trois fichiers :- liste_machine.php : lorsque je clique sur le nom d'une machine, je vais directement sur Pb de récupération de variable de checkbox [ par paulinett ] Bonjour,J'ai créé un formulaire qui affiche un tableau dont chaque ligne correspond à un fournisseur.Pour une machine donnée, dont je récupère le nom_ Utiliser AUTO_INCREMENT en MySQL tout en n'ayant pas de trous dans le champs... [ par azerty25 ] Hi allJ'ai une DB MySQL avec une table qui contient le champs ID en AUTO_INCREMENT. Le soucis, c'est que quand on supprime une entrée dans la table, ç pb requete mysql [ par joduak ] Salut à vous! J'ai un ptit pb de requête mysql... J'insère un certain nbre d'informations à un moment donné, par exemple la requete suivante: $requet requete sql assez complexe [ par sebmaster001 ] bonjour à tous, je ne suis pas habitué à poster pour demander de l'aide, mais la, le temps presse... je vous remercie donc d'avance de l'aide que v You don't have permission to access on this server. Forbidden [ par algouye ] Salut a tous,Voila j'essais de Updater une colonne dans une de mes tables des lors que l'on clicksur un lien : donc faire un +1 des que l'on click.Seu Problème de liste déroulante [ par paulinett ] Bonjour,Je suis débutante et je viens d'écrire un code qui doit permettre à un user d'obtenir des infos sur une machine en fonction de ses choix : nom problème de requete SQL avec ID aléatoire [ par djinko ] Bonsoir,Ayant chercher pendant des heures et des heures, je me tourne vers vous pour avoir une explication car franchement, je nage...J'ai crée un esp encore et toujours des pb !!! récuperer une variable à partir d'un lien [ par paulinett ] Bonjour,J'ai encore une question. J'ai créer un formulaire de recherche de machines (liste_machine.php) et j'ai mis un lien sur ma clé primaire : nom_


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,139 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales