[RESOLU] enregistrer des actions de l'utilisateur

Mammouth du PHP | 619 Messages

06 juin 2013, 16:45

une petite erreur
<?php
/* Variables de connexion */
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "application";
/* On récupère si elle existe, la valeur de l'activité envoyée par le formulaire */
$code_Activ = isset($_POST['Activ_Principal'])?$_POST['Activ_Principal']:"";
$code_Sactiv = isset($_POST['Sous_Activ'])?$_POST['Sous_Activ']:"";
?>

<html>
<head>
<title>Sélectionner une sous activiter selon l'activiter choisie</title>
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">

<?php
/* On établit la connexion à MySQL */
$connexion = mysql_pconnect("localhost", "root","");

if($connexion != false)
{
    $choixbase = mysql_select_db("application");
	
	if(isset($_POST['valider'])){
		 $sql = "INSERT INTO suivi ('ID_Activprinc', 'ID_Sousactiv' ,'Temps_Action') VALUES('".$code_activ."','".$code_sactiv."','".date("Y-m-d H:i:s")."')";
         $req = mysql_query($sql) or die("Erreur dans la requete SQL! <a href='menu.php'>retour</a>");
         if($req){
              echo("L'enregistrement a ete correctement effectuee") ;
			  //ici redirection vers la bonne page
         }
         else{
               echo("L'enregistrement a echouee ") ;
         }

	}	
	
    $sql1 = "SELECT `ID_Activprinc`, `Activ_Principal`".
    " FROM `activiter_principales`".
    " ORDER BY `ID_Activprinc`";
    $rech_activ = mysql_query($sql1);
    $code_activ = array();
    $activ = array();
    /* On active un compteur pour les activités */
    $nb_activ = 0;
    if($rech_activ!= false)
    {
        while($ligne = mysql_fetch_assoc($rech_activ))
        {
            array_push($code_activ, $ligne['ID_Activprinc']);
            array_push($activ, $ligne['Activ_Principal']);

            /* On incrémente de compteur */
            $nb_activ++;
        }
    }
    ?>
        
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgsact">
<fieldset style="border: 3px double #333399">
<legend>Selectionnez une activiter</legend>
<select name="Activ_Principal" id="Activ_principal" onchange="document.forms['chgsact'].submit();">
  <option value="-1">- - - Choisissez une activiter - - -</option>
  
    <?php
    for($i = 0; $i < $nb_activ; $i++)
    {
?>

  <option value="<?php echo($code_activ[$i]); ?>"<?php echo((isset($code_Activ) && $code_Activ == $code_activ[$i])?" selected=\"selected\"":null); ?>><?php echo($activ[$i]); ?></option>

  <?php
    }
    ?>
        
</select>

    <?php
    mysql_free_result($rech_activ);
    /* On commence par vérifier si on a envoyé un numéro de l'activité et le cas échéant s'il est différent de -1 */

    if(isset($code_Activ) && $code_Activ != -1)
    {
        /* Cération de la requête pour avoir les sous activités de cette activité */
        $sql2 = "SELECT `ID_Sousactiv`, `Sous_Activ`".
        " FROM `sous_activiter`".
        " WHERE `ID_Activprinc` = ". $code_Activ ."".
        " ORDER BY `ID_Sousactiv`;";
        if($connexion != false)
        {
            $rech_sactiv = mysql_query($sql2, $connexion);
            /* Un petit compteur pour les sous activités */
            $nd = 0;
            /* On crée deux tableaux pour les numéros et les noms des sous activités */
            $code_sactiv = array();
            $nom_sactiv = array();
            /* On va mettre les numéros et noms des sous activités dans les deux tableaux */
            while($ligne_sactiv = mysql_fetch_assoc($rech_sactiv))
            {
                array_push($code_sactiv, $ligne_sactiv['ID_Sousactiv']);
                array_push($nom_sactiv, $ligne_sactiv['Sous_Activ']);
                $nd++;
            }
            /* Maintenant on peut construire la liste déroulante */
            ?>
<select name="Sous_Activ">
            <?php  
            for($d = 0; $d<$nd; $d++)
            {
                ?>
  <option value="<?php echo($code_sactiv[$d]); ?>"<?php echo((isset($code_Sactiv) && $code_Sactiv == $code_sactiv[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_sactiv[$d]." (". $code_sactiv[$d] .")"); ?></option>
                <?php
            }
?>

</select>

<?php
        }
        /* Un petit coup de balai */
        mysql_free_result($rech_sactiv);
    }
?>

<br /><input type="button" value="Valider" name="valider"/>
<tr /><input type="button" value="Annuler" onclick="location.href='menu.php'" />
</fieldset>
</form>

<?php
    /* ferme la connexion */
    mysql_close($connexion);
}
else
{
?>

<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>

<?php
}
?>

</body>
</html>
edit : corriger

Eléphanteau du PHP | 35 Messages

06 juin 2013, 16:52

ah on y est presque ! :D

sa a rien changer mais je sens qu'on est pas loin

je ne peut juste pas selectionné les sous activités , et la validation ne fait rien .

enfaite je suis obliger de faire l'enregistrement sur une autre page :?

Mammouth du PHP | 619 Messages

06 juin 2013, 17:24

ok que veux tu dire par je dois enregistrer sur une autre page ?

Eléphanteau du PHP | 35 Messages

06 juin 2013, 17:30

c'est a dire que des lors ou le user appuie sur valider sa va le rediriger sur une autre page avec marquer votre choix ttatata et atatata a bien ete enregistrer

et avec un bouton retour pour faire un autre choix et deco a coter.

Mammouth du PHP | 619 Messages

06 juin 2013, 17:35

ben tu peu le faire sur la même page :)


if(isset($_POST['valider'])){
//ici le code si il a clique
}
else{
ici le code si il a pas cliquer :)
}

Mammouth du PHP | 619 Messages

06 juin 2013, 17:36

par exemple
<?php
/* Variables de connexion */
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "application";
/* On récupère si elle existe, la valeur de l'activité envoyée par le formulaire */
$code_Activ = isset($_POST['Activ_Principal'])?$_POST['Activ_Principal']:"";
$code_Sactiv = isset($_POST['Sous_Activ'])?$_POST['Sous_Activ']:"";
?>

<html>
<head>
<title>Sélectionner une sous activiter selon l'activiter choisie</title>
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">

<?php
/* On établit la connexion à MySQL */
$connexion = mysql_pconnect("localhost", "root","");

if($connexion != false)
{
    $choixbase = mysql_select_db("application");
	
	if(isset($_POST['valider'])){
		 $sql = "INSERT INTO suivi ('ID_Activprinc', 'ID_Sousactiv' ,'Temps_Action') VALUES('".$code_activ."','".$code_sactiv."','".date("Y-m-d H:i:s")."')";
         $req = mysql_query($sql) or die("Erreur dans la requete SQL! <a href='menu.php'>retour</a>");
         if($req){
              echo("L'enregistrement a ete correctement effectuee") ;
			  //ici redirection vers la bonne page
         }
         else{
               echo("L'enregistrement a echouee ") ;
         }

	}
	else{	
	
    $sql1 = "SELECT `ID_Activprinc`, `Activ_Principal`".
    " FROM `activiter_principales`".
    " ORDER BY `ID_Activprinc`";
    $rech_activ = mysql_query($sql1);
    $code_activ = array();
    $activ = array();
    /* On active un compteur pour les activités */
    $nb_activ = 0;
    if($rech_activ!= false)
    {
        while($ligne = mysql_fetch_assoc($rech_activ))
        {
            array_push($code_activ, $ligne['ID_Activprinc']);
            array_push($activ, $ligne['Activ_Principal']);

            /* On incrémente de compteur */
            $nb_activ++;
        }
    }
    ?>
        
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgsact">
<fieldset style="border: 3px double #333399">
<legend>Selectionnez une activiter</legend>
<select name="Activ_Principal" id="Activ_principal" onchange="document.forms['chgsact'].submit();">
  <option value="-1">- - - Choisissez une activiter - - -</option>
  
    <?php
    for($i = 0; $i < $nb_activ; $i++)
    {
?>

  <option value="<?php echo($code_activ[$i]); ?>"<?php echo((isset($code_Activ) && $code_Activ == $code_activ[$i])?" selected=\"selected\"":null); ?>><?php echo($activ[$i]); ?></option>

  <?php
    }
    ?>
        
</select>

    <?php
    mysql_free_result($rech_activ);
    /* On commence par vérifier si on a envoyé un numéro de l'activité et le cas échéant s'il est différent de -1 */

    if(isset($code_Activ) && $code_Activ != -1)
    {
        /* Cération de la requête pour avoir les sous activités de cette activité */
        $sql2 = "SELECT `ID_Sousactiv`, `Sous_Activ`".
        " FROM `sous_activiter`".
        " WHERE `ID_Activprinc` = ". $code_Activ ."".
        " ORDER BY `ID_Sousactiv`;";
        if($connexion != false)
        {
            $rech_sactiv = mysql_query($sql2, $connexion);
            /* Un petit compteur pour les sous activités */
            $nd = 0;
            /* On crée deux tableaux pour les numéros et les noms des sous activités */
            $code_sactiv = array();
            $nom_sactiv = array();
            /* On va mettre les numéros et noms des sous activités dans les deux tableaux */
            while($ligne_sactiv = mysql_fetch_assoc($rech_sactiv))
            {
                array_push($code_sactiv, $ligne_sactiv['ID_Sousactiv']);
                array_push($nom_sactiv, $ligne_sactiv['Sous_Activ']);
                $nd++;
            }
            /* Maintenant on peut construire la liste déroulante */
            ?>
<select name="Sous_Activ">
            <?php  
            for($d = 0; $d<$nd; $d++)
            {
                ?>
  <option value="<?php echo($code_sactiv[$d]); ?>"<?php echo((isset($code_Sactiv) && $code_Sactiv == $code_sactiv[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_sactiv[$d]." (". $code_sactiv[$d] .")"); ?></option>
                <?php
            }
?>

</select>

<?php
        }
        /* Un petit coup de balai */
        mysql_free_result($rech_sactiv);
    }
?>

<br /><input type="button" value="Valider" name="valider"/>
<tr /><input type="button" value="Annuler" onclick="location.href='menu.php'" />
</fieldset>
</form>

<?php
    /* ferme la connexion */
    mysql_close($connexion);
}
}
else
{
?>

<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>

<?php
}
?>

</body>
</html>

Eléphanteau du PHP | 35 Messages

06 juin 2013, 17:38

j'essai et je te redit sa
:)

Eléphanteau du PHP | 35 Messages

06 juin 2013, 17:44

sa me met pour le menu.php:Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\appli\menu.php on line 100

Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\appli\menu.php on line 123

et sa aprés la validation des choix: Undefined variable: code_activ, code_sactiv in C:\wamp\www\appli\menu.php on line 27

Mammouth du PHP | 619 Messages

06 juin 2013, 17:56

les variables sont pas bonne sinon essaie ce code la
<?php
/* Variables de connexion */
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "application";
/* On récupère si elle existe, la valeur de l'activité envoyée par le formulaire */
$code_Activ = isset($_request['Activ_Principal'])?$_request['Activ_Principal']:"";
$code_Sactiv = isset($_request['Sous_Activ'])?$_request['Sous_Activ']:"";

$connexion = mysql_pconnect("localhost", "root","");
?>

<html>
<head>
<title>Sélectionner une sous activiter selon l'activiter choisie</title>
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">

<?php
//on test la connexion a la bdd
if($connexion == false){//si on arrive pas se connecte
	echo '<p>Un incident s\'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>';
	exit;	
}
else{
	//si on valide le formulaire
	if(isset($_POST['valider'])){
		 $sql = "INSERT INTO suivi ('ID_Activprinc', 'ID_Sousactiv' ,'Temps_Action') VALUES('".$code_Activ."','".$code_Sactiv."','".date("Y-m-d H:i:s")."')";
         $req = mysql_query($sql) or die("Erreur dans la requete SQL! <a href='menu.php'>retour</a>");
         if($req){
              echo("L'enregistrement a ete correctement effectuee") ;
			  //ici redirection vers la bonne page
         }
         else{
               echo("L'enregistrement a echouee ") ;
         }

	}	
	//sinon on affiche le formulaire
	else{
		$sql1 = "SELECT `ID_Activprinc`, `Activ_Principal`".
		" FROM `activiter_principales`".
		" ORDER BY `ID_Activprinc`";
		$rech_activ = mysql_query($sql1);
		$code_activ = array();
		$activ = array();
		/* On active un compteur pour les activités */
		$nb_activ = 0;
		if($rech_activ!= false)
		{
			while($ligne = mysql_fetch_assoc($rech_activ))
			{
				array_push($code_activ, $ligne['ID_Activprinc']);
				array_push($activ, $ligne['Activ_Principal']);
	
				/* On incrémente de compteur */
				$nb_activ++;
			}
		}
		
		?>
        
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgsact">
<fieldset style="border: 3px double #333399">
<legend>Selectionnez une activiter</legend>
<select name="Activ_Principal" id="Activ_principal" onchange="document.forms['chgsact'].submit();">
  <option value="-1">- - - Choisissez une activiter - - -</option>
  
    <?php
    for($i = 0; $i < $nb_activ; $i++)
    {
?>

  <option value="<?php echo($code_activ[$i]); ?>"<?php echo((isset($code_Activ) && $code_Activ == $code_activ[$i])?" selected=\"selected\"":null); ?>><?php echo($activ[$i]); ?></option>

  <?php
    }
    ?>
        
</select>

    <?php
    mysql_free_result($rech_activ);
    /* On commence par vérifier si on a envoyé un numéro de l'activité et le cas échéant s'il est différent de -1 */

    if(isset($code_Activ) && $code_Activ != -1)
    {
        /* Cération de la requête pour avoir les sous activités de cette activité */
        $sql2 = "SELECT `ID_Sousactiv`, `Sous_Activ`".
        " FROM `sous_activiter`".
        " WHERE `ID_Activprinc` = ". $code_Activ ."".
        " ORDER BY `ID_Sousactiv`;";
        if($connexion != false)
        {
            $rech_sactiv = mysql_query($sql2, $connexion);
            /* Un petit compteur pour les sous activités */
            $nd = 0;
            /* On crée deux tableaux pour les numéros et les noms des sous activités */
            $code_sactiv = array();
            $nom_sactiv = array();
            /* On va mettre les numéros et noms des sous activités dans les deux tableaux */
            while($ligne_sactiv = mysql_fetch_assoc($rech_sactiv))
            {
                array_push($code_sactiv, $ligne_sactiv['ID_Sousactiv']);
                array_push($nom_sactiv, $ligne_sactiv['Sous_Activ']);
                $nd++;
            }
            /* Maintenant on peut construire la liste déroulante */
            ?>
<select name="Sous_Activ">
            <?php  
            for($d = 0; $d<$nd; $d++)
            {
                ?>
  <option value="<?php echo($code_sactiv[$d]); ?>"<?php echo((isset($code_Sactiv) && $code_Sactiv == $code_sactiv[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_sactiv[$d]." (". $code_sactiv[$d] .")"); ?></option>
                <?php
            }
?>

</select>

<?php
        }
        /* Un petit coup de balai */
        mysql_free_result($rech_sactiv);
    }
?>

<br /><input type="button" value="Valider" name="valider"/>
<tr /><input type="button" value="Annuler" onclick="location.href='menu.php'" />
</fieldset>
</form>

<?php
	}
	/* ferme la connexion */
	mysql_close($connexion);	
}

?>

Eléphanteau du PHP | 35 Messages

07 juin 2013, 09:39

re bonjour :D ,
sur ce code je ne peux rien selectionné ni valider , j'ai 3 warning:

Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\appli\menu.php on line 84

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\appli\menu.php on line 103

Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\appli\menu.php on line 126

Mammouth du PHP | 619 Messages

07 juin 2013, 09:53

et comme cela
<?php
/* Variables de connexion */
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "application";
/* On récupère si elle existe, la valeur de l'activité envoyée par le formulaire */
$code_Activ = isset($_request['Activ_Principal'])?$_request['Activ_Principal']:"";
$code_Sactiv = isset($_request['Sous_Activ'])?$_request['Sous_Activ']:"";

$connexion = mysql_pconnect("localhost", "root","");
$choixbase = mysql_select_db("application");
?>

<html>
<head>
<title>Sélectionner une sous activiter selon l'activiter choisie</title>
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">

<?php
//on test la connexion a la bdd
if($connexion == false){//si on arrive pas se connecte
        echo '<p>Un incident s\'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>';
        exit;   
}
else{
        //si on valide le formulaire
        if(isset($_POST['valider'])){
                 $sql = "INSERT INTO suivi ('ID_Activprinc', 'ID_Sousactiv' ,'Temps_Action') VALUES('".$code_Activ."','".$code_Sactiv."','".date("Y-m-d H:i:s")."')";
         $req = mysql_query($sql) or die("Erreur dans la requete SQL! <a href='menu.php'>retour</a>");
         if($req){
              echo("L'enregistrement a ete correctement effectuee") ;
                          //ici redirection vers la bonne page
         }
         else{
               echo("L'enregistrement a echouee ") ;
         }

        }       
        //sinon on affiche le formulaire
        else{
                $sql1 = "SELECT `ID_Activprinc`, `Activ_Principal`".
                " FROM `activiter_principales`".
                " ORDER BY `ID_Activprinc`";
                $rech_activ = mysql_query($sql1);
                $code_activ = array();
                $activ = array();
                /* On active un compteur pour les activités */
                $nb_activ = 0;
                if($rech_activ!= false)
                {
                        while($ligne = mysql_fetch_assoc($rech_activ))
                        {
                                array_push($code_activ, $ligne['ID_Activprinc']);
                                array_push($activ, $ligne['Activ_Principal']);
        
                                /* On incrémente de compteur */
                                $nb_activ++;
                        }
                }
                
                ?>
        
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgsact">
<fieldset style="border: 3px double #333399">
<legend>Selectionnez une activiter</legend>
<select name="Activ_Principal" id="Activ_principal" onchange="document.forms['chgsact'].submit();">
  <option value="-1">- - - Choisissez une activiter - - -</option>
  
    <?php
    for($i = 0; $i < $nb_activ; $i++)
    {
?>

  <option value="<?php echo($code_activ[$i]); ?>"<?php echo((isset($code_Activ) && $code_Activ == $code_activ[$i])?" selected=\"selected\"":null); ?>><?php echo($activ[$i]); ?></option>

  <?php
    }
    ?>
        
</select>

    <?php
    mysql_free_result($rech_activ);
    /* On commence par vérifier si on a envoyé un numéro de l'activité et le cas échéant s'il est différent de -1 */

    if(isset($code_Activ) && $code_Activ != -1)
    {
        /* Cération de la requête pour avoir les sous activités de cette activité */
        $sql2 = "SELECT `ID_Sousactiv`, `Sous_Activ`".
        " FROM `sous_activiter`".
        " WHERE `ID_Activprinc` = ". $code_Activ ."".
        " ORDER BY `ID_Sousactiv`;";
        if($connexion != false)
        {
            $rech_sactiv = mysql_query($sql2, $connexion);
            /* Un petit compteur pour les sous activités */
            $nd = 0;
            /* On crée deux tableaux pour les numéros et les noms des sous activités */
            $code_sactiv = array();
            $nom_sactiv = array();
            /* On va mettre les numéros et noms des sous activités dans les deux tableaux */
            while($ligne_sactiv = mysql_fetch_assoc($rech_sactiv))
            {
                array_push($code_sactiv, $ligne_sactiv['ID_Sousactiv']);
                array_push($nom_sactiv, $ligne_sactiv['Sous_Activ']);
                $nd++;
            }
            /* Maintenant on peut construire la liste déroulante */
            ?>
<select name="Sous_Activ">
            <?php  
            for($d = 0; $d<$nd; $d++)
            {
                ?>
  <option value="<?php echo($code_sactiv[$d]); ?>"<?php echo((isset($code_Sactiv) && $code_Sactiv == $code_sactiv[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_sactiv[$d]." (". $code_sactiv[$d] .")"); ?></option>
                <?php
            }
?>

</select>

<?php
        }
        /* Un petit coup de balai */
        mysql_free_result($rech_sactiv);
    }
?>

<br /><input type="button" value="Valider" name="valider"/>
<tr /><input type="button" value="Annuler" onclick="location.href='menu.php'" />
</fieldset>
</form>

<?php
        }
        /* ferme la connexion */
        mysql_close($connexion);        
}

?>

Eléphanteau du PHP | 35 Messages

07 juin 2013, 10:04

la j'ai la liste mais je peux pas la selectionné sa revient au depart (menu.php) , j'ai un pro dans la requete sql et warning:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\appli\menu.php on line 104

Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\appli\menu.php on line 127

Mammouth du PHP | 619 Messages

07 juin 2013, 10:10

tu peu poster la structure create de tes tables stp :)

Eléphanteau du PHP | 35 Messages

07 juin 2013, 10:20

yes :) voici :
  • --
    -- Structure de la table `activiter_principales`
    --

    CREATE TABLE IF NOT EXISTS `activiter_principales` (
    `ID_Actprinc` int(2) NOT NULL AUTO_INCREMENT,
    `Activ_Principal` varchar(20) NOT NULL,
    PRIMARY KEY (`ID_Actprinc`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

    --
    -- Contenu de la table `activiter_principales`
    --

    INSERT INTO `activiter_principales` (`ID_Actprinc`, `Activ_Principal`) VALUES
    (1, 'Boutique'),
    (2, 'Administration'),
    (3, 'Production'),
    (4, 'Atelier'),
    (5, 'Pause'),
    (6, 'Fin_Journer');

    -- --------------------------------------------------------

    --
    -- Structure de la table `compte`
    --

    CREATE TABLE IF NOT EXISTS `compte` (
    `ID_Compte` varchar(5) NOT NULL DEFAULT '',
    `Nom` varchar(20) NOT NULL,
    `Prenom` varchar(20) NOT NULL,
    `username` varchar(20) NOT NULL,
    `password` varchar(20) NOT NULL,
    PRIMARY KEY (`ID_Compte`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    --
    -- Contenu de la table `compte`
    --

    INSERT INTO `compte` (`ID_Compte`, `Nom`, `Prenom`, `username`, `password`) VALUES
    (1, 'Casado', 'Adrien', 'adrien', 'casado'),
    (2, 'Fiore', 'Bruno', 'bruno', 'fiore'),
    (3, 'Agnan', 'Cedric', 'cedric', 'agnan'),
    (4, 'Harmange', 'Etienne', 'etienne', 'harmange'),
    (5, 'Employer', 'Employer', 'employer', 'employer');

    -- --------------------------------------------------------

    --
    -- Structure de la table `sous_activiter`
    --

    CREATE TABLE IF NOT EXISTS `sous_activiter` (
    `ID_Sousactiv` int(2) NOT NULL,
    `ID_Activprinc` int(20) NOT NULL,
    `Sousactiv__Principal` varchar(20) COLLATE utf8_bin NOT NULL,
    PRIMARY KEY (`ID_Sousactiv`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

    --
    -- Contenu de la table `sous_activiter`
    --

    INSERT INTO `sous_activiter` (`ID_Sousactiv`, `ID_Activprinc`, `Sousactiv__Principal`) VALUES
    (1, 1, 'Inventaire'),
    (2, 1, 'Vente_PC'),
    (3, 1, 'AppelClient'),
    (4, 2, 'Comptabiliter'),
    (5, 2, 'Reunion'),
    (6, 3, 'Depannage_PC'),
    (7, 4, 'Assemble_PC'),
    (8, 5, 'Cafe');

    -- --------------------------------------------------------

    --
    -- Structure de la table `suivi`
    --

    CREATE TABLE IF NOT EXISTS `suivi` (
    `ID_Suivi` int(11) NOT NULL,
    `ID_Compte` int(11) NOT NULL,
    `ID_Activprinc` int(11) NOT NULL,
    `ID_Sousactiv` int(11) NOT NULL,
    `Temps_Action` datetime NOT NULL,
    `commentaire` text COLLATE utf8_bin NOT NULL,
    PRIMARY KEY (`ID_Suivi`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

    --
    -- Contenu de la table `suivi`
    --

Mammouth du PHP | 619 Messages

07 juin 2013, 10:36

ok j'ai vu mon erreur quel bete :p

voila
<?php
/* Variables de connexion */
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "application";
/* On récupère si elle existe, la valeur de l'activité envoyée par le formulaire */
$code_Activ = isset($_POST['Activ_Principal'])?$_POST['Activ_Principal']:"";
$code_Sactiv = isset($_POST['Sous_Activ'])?$_POST['Sous_Activ']:"";

$connexion = mysql_pconnect($serveur,$admin,$mdp);
$choixbase = mysql_select_db($base);
?>

<html>
<head>
<title>Sélectionner une sous activiter selon l'activiter choisie</title>
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">

<?php
//on test la connexion a la bdd
if($connexion == false){//si on arrive pas se connecte
        echo '<p>Un incident s\'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>';
        exit;   
}
else{
        //si on valide le formulaire
        if(isset($_POST['valider'])){
                 $sql = "INSERT INTO suivi (ID_Activprinc, ID_Sousactiv ,Temps_Action) VALUES('".$code_Activ."','".$code_Sactiv."','".date("Y-m-d H:i:s")."')";
         $req = mysql_query($sql) or die("Erreur dans la requete SQL! <a href='menu.php'>retour</a>");
         if($req){
              echo("L'enregistrement a ete correctement effectuee") ;
                          //ici redirection vers la bonne page
         }
         else{
               echo("L'enregistrement a echouee ") ;
         }

        }       
        //sinon on affiche le formulaire
        else{
                $sql1 = "SELECT `ID_Activprinc`, `Activ_Principal`".
                " FROM `activiter_principales`".
                " ORDER BY `ID_Activprinc`";
                $rech_activ = mysql_query($sql1);
                $code_activ = array();
                $activ = array();
                /* On active un compteur pour les activités */
                $nb_activ = 0;
                if($rech_activ!= false)
                {
                        while($ligne = mysql_fetch_assoc($rech_activ))
                        {
                                array_push($code_activ, $ligne['ID_Activprinc']);
                                array_push($activ, $ligne['Activ_Principal']);
        
                                /* On incrémente de compteur */
                                $nb_activ++;
                        }
                }
                
                ?>
        
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgsact">
<fieldset style="border: 3px double #333399">
<legend>Selectionnez une activiter</legend>
<select name="Activ_Principal" id="Activ_principal" onchange="document.forms['chgsact'].submit();">
  <option value="-1">- - - Choisissez une activiter - - -</option>
  
    <?php
    for($i = 0; $i < $nb_activ; $i++)
    {
?>

  <option value="<?php echo($code_activ[$i]); ?>"<?php echo((isset($code_Activ) && $code_Activ == $code_activ[$i])?" selected=\"selected\"":null); ?>><?php echo($activ[$i]); ?></option>

  <?php
    }
    ?>
        
</select>

    <?php
    mysql_free_result($rech_activ);
    /* On commence par vérifier si on a envoyé un numéro de l'activité et le cas échéant s'il est différent de -1 */

    if(isset($code_Activ) && $code_Activ != -1)
    {
        /* Cération de la requête pour avoir les sous activités de cette activité */
        $sql2 = "SELECT `ID_Sousactiv`, `Sous_Activ`".
        " FROM `sous_activiter`".
        " WHERE `ID_Activprinc` = ". $code_Activ ."".
        " ORDER BY `ID_Sousactiv`;";
        if($connexion != false)
        {
            $rech_sactiv = mysql_query($sql2, $connexion);
            /* Un petit compteur pour les sous activités */
            $nd = 0;
            /* On crée deux tableaux pour les numéros et les noms des sous activités */
            $code_sactiv = array();
            $nom_sactiv = array();
            /* On va mettre les numéros et noms des sous activités dans les deux tableaux */

            while($ligne_sactiv = mysql_fetch_assoc($rech_sactiv))
            {
                array_push($code_sactiv, $ligne_sactiv['ID_Sousactiv']);
                array_push($nom_sactiv, $ligne_sactiv['Sous_Activ']);
                $nd++;
            }
            /* Maintenant on peut construire la liste déroulante */
            ?>
<select name="Sous_Activ">
            <?php  
            for($d = 0; $d<$nd; $d++)
            {
                ?>
  <option value="<?php echo($code_sactiv[$d]); ?>"<?php echo((isset($code_Sactiv) && $code_Sactiv == $code_sactiv[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_sactiv[$d]." (". $code_sactiv[$d] .")"); ?></option>
                <?php
            }
?>

</select>

<?php
        }
        /* Un petit coup de balai */
        mysql_free_result($rech_sactiv);
    }
?>

<br /><input type="submit" value="Valider" name="valider"/>
<tr /><input type="button" value="Annuler" onclick="location.href='menu.php'" />
</fieldset>
</form>

<?php
        }
        /* ferme la connexion */
        mysql_close($connexion);        
}

?>
Modifié en dernier par ghost5922 le 07 juin 2013, 10:51, modifié 1 fois.