[RESOLU] Résultat d'une requete

Eléphant du PHP | 167 Messages

24 mai 2013, 10:35

Bonjour,

J'ai fais mes requêtes, elles fonctionnent bien sur phpmyadmin mais une fois en php ça me met la valeur 0 dans le champ que je veux !
Avez-vous une idée ?
$id_form=mysql_insert_id();

$sql = "UPDATE Formation SET nombreJ = ( SELECT count(`date`) AS nombreJ FROM dateformation WHERE id_form='$id_form') WHERE `id_form`='$id_form' ";

$result= mysql_query($sql);

if($result){
	echo " Le nombre de jour a été ajouté ! ";
}

Merci de votre aide.

Mammouth du PHP | 619 Messages

24 mai 2013, 10:38

Bonjour,

la requete juste avant $id_form=mysql_insert_id(); ce fait bien ?

fait un echo de $id_form;

Eléphant du PHP | 167 Messages

24 mai 2013, 10:41

Re,

Je viens de le faire, en effet, elle me prend le dernier id de la date... ce n'est pas normal :?

Mammouth du PHP | 619 Messages

24 mai 2013, 10:58

Re,

poste tous le code les deux requetes etc

Eléphant du PHP | 167 Messages

24 mai 2013, 11:07

Re,

C'est bon c'est réglé !
Sinon, j'ai un problème lorsque je veux insérer une formation qui contient un certain nombre de champs dont un id du formateur et un id du type de formation qui sont deux clés étrangères.
J'arrive à récupérer le id du type grâce à une liste déroulante mais pour le id du formateur qui aussi sous forme d'une liste déroulante, ça m'insère la valeur 0.
Suivant l'ordre dans le formulaire, c'est l'inverse...

Mammouth du PHP | 619 Messages

24 mai 2013, 11:12

post le formulaire et la requete sans code on peux pas t'aide :)

Eléphant du PHP | 167 Messages

24 mai 2013, 11:23

Voici les codes :
<form name="ajout" action="formation.php" method="POST">
            <table>


                <tr>
            <td><label for="id_formateur"><strong>Formateur :</strong></label></td>
            <td><form><select name="id_formateur">
                <?php
                require("connect.php");
                $dsn="mysql:dbname=".BASE.";host=".SERVER;
                try{
                     $connexion=new PDO($dsn,USER,PASSWD);
                    }
                catch(PDOException $e){
                printf("Échec de la connexion : %s\n", $e->getMessage());
                exit();
                             
                  }
                $requete="SELECT * FROM formateur";
                if(!$connexion->query($requete)) echo "Pb d'accès à la table";
                else{
                foreach ($connexion->query($requete) as $row){
                  echo "<option value=".$row['id_formateur'].">".$row['nomformateur']."</option>";}
                    }      
                  ?>
              </select></td></tr></form>
            <tr>

            <td><label for="idtype"><strong>Activité :</strong></label></td>
            <td><form ><select name="idtype">
                <option value="1" >Formation 1</option>
                <option value="2"  >Formation 2</option>
               
            </select></td></tr></form>
formation.php
$nomform=isset($_POST['nomform'])?$_POST['nomform]:"";
$id_formateur=isset($_POST['id_formateur'])?$_POST['id_formateur]:"";
$idtype=isset($_POST['idtype'])?$_POST['idtype']:"";
$sql= "INSERT INTO formation (`id_form`, `nomform`, `idtype`,`id_formateur`) VALUES (' ', '$nomform',  '$idtype','$id_formateur')";
$requete = mysql_query($sql) or die( mysql_error() ) ;

Mammouth du PHP | 619 Messages

24 mai 2013, 12:34

tu as des erreurs dans ton code regarde si deja ca va mieux
<?php
$nomform=isset($_POST['nomform'])?$_POST['nomform']:"";
$id_formateur=isset($_POST['id_formateur'])?$_POST['id_formateur']:"";
$idtype=isset($_POST['idtype'])?$_POST['idtype']:"";
$sql= "INSERT INTO formation (`id_form`, `nomform`, `idtype`,`id_formateur`) VALUES (' ', '$nomform',  '$idtype','$id_formateur')";
$requete = mysql_query($sql) or die( mysql_error() ) ;
?>

Eléphant du PHP | 167 Messages

24 mai 2013, 12:39

Re,

Pardon, c'était une erreur quand j'ai copier/coller. SInon, j'ai toujours mon idtype à 0...

Mammouth du PHP | 619 Messages

24 mai 2013, 12:51

ok fais un print_r($_POST); voir si tu récupère bien tous les valeurs et tu as un espace en trop (' ', '$nomform', '$idtype','$id_formateur')";
<?php
print_r($_POST);
$nomform=isset($_POST['nomform'])?$_POST['nomform']:"";
$id_formateur=isset($_POST['id_formateur'])?$_POST['id_formateur']:"";
$idtype=isset($_POST['idtype'])?$_POST['idtype']:"";
$sql= "INSERT INTO formation (`id_form`, `nomform`, `idtype`,`id_formateur`) VALUES (' ', '$nomform', '$idtype','$id_formateur')";
$requete = mysql_query($sql) or die( mysql_error() ) ;
?>

Eléphant du PHP | 167 Messages

24 mai 2013, 13:03

Non, justement je ne récupère pas le id du type :

Array ( [nomform] => Toto [id_formateur] => 2 [register] => Ajouter une formation )

ET si je change l'ordre dans le formulaire j'ai ceci :

Array ( [idtype] => 1 [nomform] =>Toto [register] => Ajouter une formation )

Mammouth du PHP | 619 Messages

24 mai 2013, 13:35

Re,

tu ferme ton form avant
<form name="ajout" action="formation.php" method="POST">
            <table>


                <tr>
            <td><label for="id_formateur"><strong>Formateur :</strong></label></td>
            <td><form><select name="id_formateur">
                <?php
                require("connect.php");
                $dsn="mysql:dbname=".BASE.";host=".SERVER;
                try{
                     $connexion=new PDO($dsn,USER,PASSWD);
                    }
                catch(PDOException $e){
                printf("Échec de la connexion : %s\n", $e->getMessage());
                exit();
                             
                  }
                $requete="SELECT * FROM formateur";
                if(!$connexion->query($requete)) echo "Pb d'accès à la table";
                else{
                foreach ($connexion->query($requete) as $row){
                  echo "<option value=".$row['id_formateur'].">".$row['nomformateur']."</option>";}
                    }      
                  ?>
              </select></td></tr>
            <tr>

            <td><label for="idtype"><strong>Activité :</strong></label></td>
            <td><form ><select name="idtype">
                <option value="1" >Formation 1</option>
                <option value="2"  >Formation 2</option>
               
            </select></td></tr></form>
 

Eléphant du PHP | 167 Messages

24 mai 2013, 13:50

Re,

Merci beaucoup ghost5922 !

Résolu !