[RESOLU] enregistrer des actions de l'utilisateur

Mammouth du PHP | 619 Messages

06 juin 2013, 13:00

Re,

ok test cela
<html>
<head>
<title>enregistrement</title>
</head>
<body>
<?php
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "application";
$code_activ = isset($_POST['Activ_Principal'])?$_POST['Activ_Principal']:"";
$code_sactiv = isset($_POST['Sous_Activ'])?$_POST['Sous_Activ']:"";

$sactiv_selectionne="";
$activ_selectionnee="";

             mysql_connect("localhost","root","")
            or die ("impossible de se connecter a la base de donnée");
  
             mysql_select_db("application")
            or die ("impossible de selectionné la base de donnée");
   
            $sql = "INSERT INTO suivi (ID_Activprinc, ID_Sousactiv) VALUES('".$code_activ."','".$code_sactiv."')"; 
            $req = mysql_query($sql)
                or die("Erreur dans la requete SQL!");
        
            if($req)
             {
              echo("L'enregistrement a ete correctement effectuee") ;
             }
             else
              {
               echo("L'enregistrement a echouee") ;
              }

?>
<p>Vous avez selectionne la sous activiter <?php echo($sactiv_selectionne); ?> dans l'activiter <?php echo($activ_selectionnee); ?></p>
<br /><input type="button" value="deconnexion" onclick="location.href='index.html'"/>
<tr /><input type="button" value="retour" onclick="location.href='menu.php'" />
</body>
</html>
mais attention tu as encore 2 variables non récupérer

$sactiv_selectionne="";
$activ_selectionnee="";

j'ai initialise les variables pour éviter les erreurs mais ton écho sera vide

si tu veux les avoir il faut faire une requête pour récupérer le nom en question

Eléphanteau du PHP | 35 Messages

06 juin 2013, 13:02

d'accord je teste ca et je te fait un rapport ! :)

et merci encore pour tout se que tu fait pour moi :)

Eléphanteau du PHP | 35 Messages

06 juin 2013, 13:56

sa marche très bien je te remercie beaucoup !!!

est ce que je peut mettre la date, et l'heure dans mon enregistrement?

si oui pourrait tu m'expliquer? :s

ps: je sais pas pourquoi mais dans ma base sa met que des 0. :?:

Mammouth du PHP | 619 Messages

06 juin 2013, 14:16

Re,

tu ne mets pas la date dans ta requete
$sql = "INSERT INTO suivi (ID_Activprinc, ID_Sousactiv) VALUES('".$code_activ."','".$code_sactiv."')"; 

devient
$sql = "INSERT INTO suivi (ID_Activprinc, ID_Sousactiv ,Date) VALUES('".$code_activ."','".$code_sactiv."','".date("Y-m-d H:i:s")."')"; 

Eléphanteau du PHP | 35 Messages

06 juin 2013, 15:00

c'est nickel ;) merci pour tout

dit, une derniere choe si tu le veut bien.

sa enregistrer bien mais sa mais dans la colone ID_activité et ID_sous activités 0 et 0 commence je peux corriger cela pour les id de dans c'est colone?

Mammouth du PHP | 619 Messages

06 juin 2013, 15:03

en haut de ta page fait un print_r($_POST); et post le résultat :)

Eléphanteau du PHP | 35 Messages

06 juin 2013, 15:10

comme sa:
html>
<head>
<title>enregistrement</title>
</head>
<body>
<?php
print_r($_POST)

$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "application";
$code_activ = isset($_POST['Activ_Principal'])?$_POST['Activ_Principal']:"";
echo $code_activ;
$code_sactiv = isset($_POST['Sous_Activ'])?$_POST['Sous_Activ']:"";
echo $code_sactiv;

Mammouth du PHP | 619 Messages

06 juin 2013, 15:22

print_r($_POST);

et quand je parle de résultat je veux dire ce que t'affiche ta page :)

Eléphanteau du PHP | 35 Messages

06 juin 2013, 15:28

sa me met " Array ( ) Erreur dans la requete SQL! retour "

Mammouth du PHP | 619 Messages

06 juin 2013, 15:37

repost tes deux page (les codes ) car actuellement rien est envoyé a ta page

Eléphanteau du PHP | 35 Messages

06 juin 2013, 15:43

d'accord

menu.php:
<?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 */
$val = isset($_POST['Activ_Principal'])?$_POST['Activ_Principal']:null;
?>

<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");
    $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($val) && $val == $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($val) && $val != -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` = ". $val ."".
        " 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($sactiv_selectionne) && $sactiv_selectionne == $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" onclick="location.href='registre.php'"/>
<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>
registre.php:
<html>
<head>
<title>enregistrement</title>
</head>
<body>

<?php
print_r($_POST);
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "application";
$code_activ = isset($_POST['Activ_Principal'])?$_POST['Activ_Principal']:"";
echo $code_activ;
$code_sactiv = isset($_POST['Sous_Activ'])?$_POST['Sous_Activ']:"";
echo $code_sactiv;

$sactiv_selectionne="ID_Sousactiv";
$activ_selectionnee="ID_Activprinc";

             mysql_connect("localhost","root","")
            or die ("impossible de se connecter a la base de donnée");
  
             mysql_select_db("application")
            or die ("impossible de selectionné la base de donnée");
   
             $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") ;
             }
             else
              {
               echo("L'enregistrement a echouee <a href='registre.php'>retour</a>") ;
              }

?>
<p>Vous avez selectionne la sous activiter <?php echo($sactiv_selectionne); ?> dans l'activiter <?php echo($activ_selectionnee); ?></p>
<br /><input type="button" value="deconnexion" onclick="location.href='index.html'"/>
<tr /><input type="button" value="retour" onclick="location.href='menu.php'" />
</body>
</html>
 
voila :)

Mammouth du PHP | 619 Messages

06 juin 2013, 16:06

Re,

dans ton formulaire tu as <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgsact"> du coup tu envoi ton formulaire sur la même page et non sur registre.php

essaie de me réexplique ce que tu veux faire

car actuellement on a un formulaire avec deux select active et sactive

tu veux garder le choix de l'utilisateur en mémoire ?

alors sois tu mets ton code registre.php dans ton premier fichier avec une condition

if(isset($_POST['Activ_Principal'])){
ici
}

ou alors tu mets action vers registre.php

Eléphanteau du PHP | 35 Messages

06 juin 2013, 16:17

alors enfaîte je voudrait envoyer le formulaire sur une autre page donc j'ai bien remplacer se que tu m''as dit par registre.php et oui je veux garder les choix de l'utilisateur en memoire dans ma base .

mais maintenant, sa me fait plus une liste déroulante liée car, je peut que sélectionne l'activité principales :S

what is the problem? :)

Mammouth du PHP | 619 Messages

06 juin 2013, 16:33

je te conseil de faire sur la même page pour garder en mémoire la sélection du visiteur

pas tester
<?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($val) && $val != -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` = ". $val ."".
        " 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, 16:40

sa marche pas, quand je valide rien ne se passe et je peux pas selectionné la sous activité :? mais merci quand meme :D