[RESOLU] enregistrer des actions de l'utilisateur

Eléphanteau du PHP | 35 Messages

07 juin 2013, 10:48

c'est super vraiment extra cela :D :D
sa marche nickel !! :D

je sais pas pourquoi, j'ai toujours c'et warning mais sa m’empêche pas de faire la sélection aurais- tu une idée meme si deja tu fait enormement beaucoup pour moi :D :cry:

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

Mammouth du PHP | 619 Messages

07 juin 2013, 11:18

il a une erreur dans tes champ bdd

voila
<?php
/* Variables de connexion */
$serveur = "localhost";
$admin   = "test";
$mdp     = "test";
$base    = "test";
/* 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("localhost", "test","test");
$choixbase = mysql_select_db("test");
?>

<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_Actprinc`, `Activ_Principal`
                FROM `activiter_principales`
                ORDER BY `ID_Actprinc`";
                $rech_activ = mysql_query($sql1) or die("Erreur dans la requete SQL!");
                $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_Actprinc']);
                                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`, `Sousactiv__Principal` 
		FROM `sous_activiter` 
		WHERE `ID_Activprinc` = '$code_Activ' 
		ORDER BY `ID_Sousactiv`";
        if($connexion != false)
        {
            $rech_sactiv = mysql_query($sql2, $connexion) or die("Erreur dans la requete SQL!");
            /* 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);        
}

?>

Eléphanteau du PHP | 35 Messages

07 juin 2013, 12:26

mince sa a empirer, la je peut que sélectionne l’activé et j'ai deux fois, les même champs avec les même warning et quand a enregistre sa met bien que c'est fait mais aprés il y a directe une erreur de la requete sql. :?

Mammouth du PHP | 619 Messages

07 juin 2013, 13:06

Re,

chez moi avec le code tous marche l'erreur vient du faite que tu as pas de champ AUTO INCREMENT sur ID_Suivi

sinon poste ton code complet que je puise voir et si tu as un lien en pm

Eléphanteau du PHP | 35 Messages

07 juin 2013, 14:02

table :
-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Ven 07 Juin 2013 à 11:59
-- Version du serveur: 5.5.8
-- Version de PHP: 5.3.5

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données: `application`
--

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

--
-- Structure de la table `activiter_principales`
--

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

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

INSERT INTO `activiter_principales` (`ID_Activprinc`, `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` int(3) NOT NULL,
  `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(2) NOT NULL,
  `Sous_Activ` 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`, `Sous_Activ`) 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(3) NOT NULL,
  `ID_Activprinc` int(2) NOT NULL,
  `ID_Sousactiv` int(2) NOT NULL,
  `Temps_Action` datetime NOT NULL,
  `Commentaire` text COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`ID_Suivi`),
  KEY `ID_Compte` (`ID_Compte`),
  KEY `ID_Activprinc` (`ID_Activprinc`),
  KEY `ID_Sousactiv` (`ID_Sousactiv`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

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

index.html:
<html>
<head>
<title>bienvenue sur la page D'accueil</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</Head>
<body>
<div align="center"> connectez-vous
<form action="login.php" method="post">
<div id="header"> <h2 class="sansserif"> PAGE DE CONNEXION </h2> </div>
 <table>
             
        <tr>
            <td> Entrez Nom d'utilisateur: </td>
            <td> <input type="text" name="username" size="20"> </td>
        </Tr>
             
        <tr>
            <td> Entrez Mot de passe: </td>
            <td> <input type="password" name="password" size="20"> </td>
        </Tr>
        <tr>
             <td> <input type="submit" name="submit" value="valider"> </td>
        </Tr>
 </Table>
</Form>
</Div>
</Body>
</Html>
login.php:
<?php

session_start();

$username = $_POST['username'];
$password = $_POST['password'];

if ($username&&$password)
{
 $connect=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");
 
 $query = mysql_query("SELECT * FROM compte WHERE username='$username'");
 
 $numrows = mysql_num_rows($query);
 
 if ($numrows != 0)
 {
  while ($rows = mysql_fetch_assoc($query))
  {  
   $dbusername = $rows['username'];
   $dbpassword = $rows['password'];
  }
   if($username==$dbusername&&$password==$dbpassword)
   {
    echo"bonjour, $username. <a href='menu.php'>cliquer ici pour acceder au menu</a>";
    $_SESSION['username']=$dbusername;
   }
   else
    echo "mot de passe incorrect <a href='index.html'>retour</a>"; 
 }
 else
  echo "se login est introuvable <a href='index.html'>retour</a>"; 
} 
else
 echo "error: nom d'utilisateur ou mot de passe absent.<a href='index.html'>retour</a>"; 
?>
et 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 */
$code_Activ = isset($_POST['Activ_Principal'])?$_POST['Activ_Principal']:"";
$code_Sactiv = isset($_POST['Sous_Activ'])?$_POST['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 cliquer ici -> <a href='menu.php'>retour</a> pour revenir au menu ou sur deconnexion pour arreter la session") ;
          ?>
		 <br /><input type="button" value="deconnexion" onclick="location.href='index.html'"/>
		 <?php         

						 //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);        
}

?>
voila :)

Mammouth du PHP | 619 Messages

07 juin 2013, 14:06

tu as deja un souci avec ta table suivi comme dit plus haut efface et creer
CREATE TABLE IF NOT EXISTS `suivi` (
  `ID_Suivi` int(11) NOT NULL AUTO_INCREMENT,
  `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 AUTO_INCREMENT=0 ;
il a aussi un probleme avec la table compte

car ici je vois que tu garde le login en session

$_SESSION['username']=$dbusername;

mais que dans ta table c'est un int donc juste l'id user

Eléphanteau du PHP | 35 Messages

07 juin 2013, 14:15

daccord donc si je compend bie refait une table suivi avec les clé etrangere pour les 3 id et ensuite je met id_compte au lieu de username c'est bien sa? :?

Mammouth du PHP | 619 Messages

07 juin 2013, 14:19

Bonjour,

il faut avoir mettre un AUTO INCREMENT sur le champ ID_Suivi sinon il sera toujours a 0 et comme c'est une cle primair :)

vous pouvez utiliser le code mi plus haut

pour compte

vous pouvez stocker l'id user et le login sans probleme

apres c'est juste a vous de savoir si vous stocker l'iduser dans la table compte ou sont login

donc sois vous ajoutez $_SESSION['iduser']==$iduserdatabase;

ou vous modifie le champ

id_compte par login varchar :)

Eléphanteau du PHP | 35 Messages

07 juin 2013, 14:29

d'accord j'ai bien mis l'auto incrémentation et je veux veut l'id .

c'es bien comme sa :
if($username==$dbusername&&$password==$dbpassword)
   {
    echo"bonjour, $username. <a href='menu.php'>cliquer ici pour acceder au menu</a>";
    $_SESSION['ID_Compte']==$ID_Comptedatabase;;
?:)

Mammouth du PHP | 619 Messages

07 juin 2013, 14:33

j'ai modifie 2 ligne regarde bien les champs
<?php

session_start();

$username = $_POST['username'];
$password = $_POST['password'];

if ($username&&$password)
{
 $connect=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");
 
 $query = mysql_query("SELECT * FROM compte WHERE username='$username'");
 
 $numrows = mysql_num_rows($query);
 
 if ($numrows != 0)
 {
  while ($rows = mysql_fetch_assoc($query))
  {  
   $dbusername = $rows['username'];
   $dbpassword = $rows['password'];
   $dbidcompte = $rows['id_compte'];//modifier
  }
   if($username==$dbusername&&$password==$dbpassword)
   {
    echo"bonjour, $username. <a href='menu.php'>cliquer ici pour acceder au menu</a>";
    $_SESSION['username']=$dbusername;
	$_SESSION['id_compte']=$dbidcompte;//moidifier
   }
   else
    echo "mot de passe incorrect <a href='index.html'>retour</a>"; 
 }
 else
  echo "se login est introuvable <a href='index.html'>retour</a>"; 
} 
else
 echo "error: nom d'utilisateur ou mot de passe absent.<a href='index.html'>retour</a>"; 
?>
et a l'insert sa sera

$id_compte=$_SESSION['id_compte'];

Eléphanteau du PHP | 35 Messages

07 juin 2013, 14:42

sa me met Notice: Undefined index: id_compte in C:\wamp\www\appli\login.php on line 7

mais m'empche pas de continuer pour pourtant je les bien mis comme sa :
<?php

session_start();

$username = $_POST['username'];
$password = $_POST['password'];
$id_compte=$_SESSION['id_compte'];

Mammouth du PHP | 619 Messages

07 juin 2013, 14:47

essaie ce code
<?php

session_start();

$username = $_POST['username'];
$password = $_POST['password'];

if ($username&&$password)
{
 $connect=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");
 
 $query = mysql_query("SELECT * FROM compte WHERE username='$username'");
 
 $numrows = mysql_num_rows($query);
 
 if ($numrows != 0)
 {
  while ($rows = mysql_fetch_assoc($query))
  {  
   $dbusername = $rows['username'];
   $dbpassword = $rows['password'];
   $dbidcompte = $rows['ID_Compte'];//modifier
  }
   if($username==$dbusername&&$password==$dbpassword)
   {
    echo"bonjour, $username. <a href='menu.php'>cliquer ici pour acceder au menu</a>";
    $_SESSION['username']=$dbusername;
	$_SESSION['id_compte']=$dbidcompte;//moidifier
   }
   else
    echo "mot de passe incorrect <a href='index.html'>retour</a>"; 
 }
 else
  echo "se login est introuvable <a href='index.html'>retour</a>"; 
} 
else
 echo "error: nom d'utilisateur ou mot de passe absent.<a href='index.html'>retour</a>"; 
?>

et
  <?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("localhost", "test","test");
$choixbase = mysql_select_db("test");
?>

<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'])){
			     $id_compte=$_SESSION['id_compte'];
                 $sql = "INSERT INTO suivi (ID_Compte,ID_Activprinc, ID_Sousactiv ,Temps_Action) VALUES('".$id_compte."','".$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 cliquer ici -> <a href='menu.php'>retour</a> pour revenir au menu ou sur deconnexion pour arreter la session") ;
          ?>
                 <br /><input type="button" value="deconnexion" onclick="location.href='index.html'"/>
                 <?php         

                                                 //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);        
}

?>

Eléphanteau du PHP | 35 Messages

07 juin 2013, 14:56

sa me met :Notice: Undefined variable: _SESSION in C:\wamp\www\appli\menu.php on line 30

Mammouth du PHP | 619 Messages

07 juin 2013, 15:02

désolé j'ai oublie le session_start() :)

  <?php
  session_start();
/* 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("localhost", "test","test");
$choixbase = mysql_select_db("test");
?>

<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'])){
			     $id_compte=$_SESSION['id_compte'];
                 $sql = "INSERT INTO suivi (ID_Compte,ID_Activprinc, ID_Sousactiv ,Temps_Action) VALUES('".$id_compte."','".$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 cliquer ici -> <a href='menu.php'>retour</a> pour revenir au menu ou sur deconnexion pour arreter la session") ;
          ?>
                 <br /><input type="button" value="deconnexion" onclick="location.href='index.html'"/>
                 <?php         

                                                 //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);        
}

?>

Eléphanteau du PHP | 35 Messages

07 juin 2013, 15:08

ba écoute j'ai envie de te dire 4 chose mots "tuuu ess unn dieeuuuu" de non de dieu c'est parfait , sa marche du tonnerre :D :D :D