begin process at 2012 05 31 05:12:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

PB d'insertion dans une base.. suite des checkbox !!!


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

PB d'insertion dans une base.. suite des checkbox !!!

mardi 16 août 2005 à 09:22:03 | PB d'insertion dans une base.. suite des checkbox !!!

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 structure (table Employe). Ceux qui travaillent sur une machine donnée sont cochés.
Quand l'utilisateur clique sur le bouton 'modifier' , j'aimerai modifier la liste d'employés affectée à une machine, soit la liste de la table EmployeMachine.
Pour cela je fais deux requêtes :
1. Delete des lignes de la table EmployeMachine correspondantes à la machine donnée
2. Insert des lignes constituées du nom_machine et de l'id_employe dans la table EmployeMachine. les id_employe viennent du choix utilisateur, soit des cases qu'il a coché dans le formulaire initial.

La requete de delete fonctionne bien mais la requête d'insertion ne fonctionne pas. Il me dit qu'une contrainte m'empeche de la faire. Quand je fais ces requetes séparément avec MySQL, cela fonctionne bien. J'ai donc un souci dans ma boucle d'insertion.

Est-ce que quelqu'un pourrait m'aider. J'en serais très heureuse.

Paulinett'

Voici mon code :

formulaire_modif_employemachine.php

<html>
<head>
<title> Formulaire de modification des employés d'une machine </title>
<link rel=stylesheet href='film3.css' type='text/css'>
</head>

<body>

<h1> Formulaire de Modification des employés de la machine </h1>

<form action="modif_employemachine.php" method=post>

<!--------------------------------------->
<!-- RECUPERATION DU NOM DE LA MACHINE -->
<!--------------------------------------->

<?php
  $nom_machine =$_POST['nom_machine'];
 ?>

<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);
  
   // déclaration de l'entête du tableau 
    echo "<center><table border=4 cellspacing=2 cellpadding=2>"
        ."<tr><th>ID<th>Nom<th>Prénom<th>Fonction<th>Téléphone<th>Email<th>Check</tr>\n";
  
  
   // déclaration d'un tableau pour les employés d'une machine
    $tabEmployesMachine=array();
    
    // Requête donnant les employés d'une machine
  $employes_machine=mysql_query("SELECT EmployeMachine.nom_machine, EmployeMachine.id_employe FROM EmployeMachine WHERE EmployeMachine.nom_machine LIKE '%$nom_machine%'",$connexion);
  
  // Stockage des employés d'une machine dans un tableau
  while ($ligne = mysql_fetch_array($employes_machine, MYSQL_NUM))
  {
     array_push($tabEmployesMachine,$ligne[1]);
  }
  
  // Requête sélectionnant tous les employés
  $employes_tous=mysql_query("SELECT * FROM Employe",$connexion);
  
  // Boucle permettant de parcouri la liste des employés et d'affecter à chaque employé un check s'il est associé à la machine en question
  while ($tous_employes=mysql_fetch_object($employes_tous))
  {
      $check='';
      if (in_array($tous_employes->id_employe,$tabEmployesMachine))
      {
        $check=' checked="checked"';
      }
   
     
      // écriture du tableau
       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.'"'.$check.' /></td></tr>';
  }
  echo "</table></center>\n"; 
?> 

<!-- champ caché avec le nom de la machine pour le récupérer pour l'update des employes -->
<input type=hidden name="nom_machine" value=<?php echo $nom_machine;?>>


<center><h3>Confirmez-vous ces nouveaux employés ?</h3></center>
<center><input type=submit value='Modifier' name='modifier'></center>

</form>

</body>
</html>



modif_employemachine.php

<html>
<head>
<title> Formulaire de modification des employés d'une machine </title>
<link rel=stylesheet href='film3.css' type='text/css'>
</head>

<body>

<h1> Formulaire de Modification des employés de la machine </h1>

<form action="modif_employemachine.php" method=post>

<!--------------------------------------->
<!-- RECUPERATION DU NOM DE LA MACHINE -->
<!--------------------------------------->

<?php
  $nom_machine =$_POST['nom_machine'];
  
?>


<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);
  
   // déclaration de l'entête du tableau 
    echo "<center><table border=4 cellspacing=2 cellpadding=2>"
        ."<tr><th>ID<th>Nom<th>Prénom<th>Fonction<th>Téléphone<th>Email<th>Check</tr>\n";
  
  
   // déclaration d'un tableau pour les employés d'une machine
    $tabEmployesMachine=array();
    
    // Requête donnant les employés d'une machine
  $employes_machine=mysql_query("SELECT EmployeMachine.nom_machine, EmployeMachine.id_employe FROM EmployeMachine WHERE EmployeMachine.nom_machine LIKE '%$nom_machine%'",$connexion);
  
  // Stockage des employés d'une machine dans un tableau
  while ($ligne = mysql_fetch_array($employes_machine, MYSQL_NUM))
  {
     array_push($tabEmployesMachine,$ligne[1]);
  }
  
  // Requête sélectionnant tous les employés
  $employes_tous=mysql_query("SELECT * FROM Employe",$connexion);
  
  // Boucle permettant de parcouri la liste des employés et d'affecter à chaque employé un check s'il est associé à la machine en question
  while ($tous_employes=mysql_fetch_object($employes_tous))
  {
      $check='';
      if (in_array($tous_employes->id_employe,$tabEmployesMachine))
      {
        $check=' checked="checked"';
      }
   
     
      // écriture du tableau
       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.'"'.$check.' /></td></tr>';
  }
  echo "</table></center>\n"; 
?> 

<!-- champ caché avec le nom de la machine pour le récupérer pour l'update des employes -->
<input type=hidden name="nom_machine" value=<?php echo $nom_machine;?>>


<center><h3>Confirmez-vous ces nouveaux employés ?</h3></center>
<center><input type=submit value='Modifier' name='modifier'></center>


</form>

</body>
</html>

mercredi 17 août 2005 à 09:04:03 | Re : PB d'insertion dans une base.. suite des checkbox !!!

paulinett

J'ai trouvé la solution pour faire mes requetes correctement.
Le code, si certains sont intéressés :

<html>
<head>
<title> Modification des employés d'une machine </title>
<link rel=stylesheet href='film3.css' type='text/css'>
</head>

<body>

<!-- Récupération des variables pour l'update fournisseur -->
<?php
   // Récupération de variables du formulaire
    $nom_machine=$_POST['nom_machine']; 
     echo $nom_machine;
    
    $id_employes[]=$_POST['employes'];
     print_r($id_employes);
     
?>

<h1> Résultat de la mise à jour de vos employés pour la machine <?php echo $nom_machine;?> </h1>

<!-- REQUETES EN ATTENTE-->
<?php 
   // On a besoin de ce fichier pour la connexion
    require("Connect.php");
 
   // Connexion au serveur et accès à la base
     $connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
     mysql_select_db (BASE, $connexion);
     
    // Requete engendrée par la pression du bouton Modifier
    if (isSet($_POST['modifier']))
      {
         // Requete de destruction
         $requete_destruction = "DELETE FROM EmployeMachine WHERE EmployeMachine.nom_machine = '$nom_machine'";
         $resultat_destruction = mysql_query($requete_destruction,$connexion);
       
         if ($resultat_destruction)
           echo "<hr> La requête de destruction '$requete_destruction' a été effectuée.\n";
         else
         {
           echo "La requête de destruction n'a pas pu être effectuée pour la raison suivante :"
           .mysql_error($connexion);
         }
         
      
         for ($i=0; $i< count($id_employes[0]);$i++)
          {
           //echo $nom_machine;
           
           $var='';
           $var=$id_employes[0][$i];
           //echo $var;
           
           $requete_insertion = "INSERT INTO EmployeMachine(nom_machine, id_employe) VALUES('".$nom_machine."',".$var.")";     
           
           $resultat_insertion = mysql_query($requete_insertion,$connexion);
           
           if($resultat_insertion)
             echo "<hr> La requête d'insertion '$requete_insertion' a été effectuée.\n";
           else
           {
             echo "La requête d'insertion n'a pas pu être effectuée pour la raison suivante :"
             .mysql_error($connexion);           }         
           }
      }

?>

 

<h2><a href="Retourhttp://localhost/liste_machine.php">Retour</a><h2>
</body>
</html>



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


Répondre à ce message

Sujets en rapport avec ce message

CHECKBOX à cocher suivant une boucle [ par 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 li AU SECOURS !!! PB de ponctuation [ par paulinett ] Bonjour,Je souhaite faire un formulaire de modif d'une machine déjà existance dont j'ai récupéré le nom_machine qui est la clé primaire de ma table ma 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 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_ Base MySql distante [ par Dark77 ] Bonjour j'aurai besoin d'acceder a une base mysql distantePar acces j'entend ecrire et lire directemnt dedans exemple la machine 192.168.0.1 execute u 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 probleme array/requete [ par ninho44 ] Bonjour.Voila j'ai un petit souci avec mon code PHP. $requete=mysql_query("select nom,prenom from employe where code=('".$employe."')");$req=mysql_fet mysql_fetch_row() avec WHERE [ par darth vador ] Bonjour tous le monde ;)Voila depuis hier je cherche a règler cette erreurWarning: mysql_fetch_row(): supplied argument is not a valid MySQL result r liste/menu [ par ikramta ] bonjour tout le mande .j'éspére que tout le mande programme bien .mon probléme est que je veut extraire les tuples d'un tableau dans un select et je v galerie photo mysql [ par nissweb ] Bonjour j'ai besoin un code qui pemet d' ajouter et suprimer des photo à partir d'un formulaire  qui contiens discription; style de photo et parcurir


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,281 sec (4)

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