Page 1 sur 1

Transmettre variable via champs caché

Posté : 23 juil. 2010, 18:47
par Faenor
Bonjour,

Je galère depuis quelques heures sur un problème tout bête en apparence.
J'ai extrait de ma BDD le nombre d'entrées qui y a dans chaque table. Ce nombre est visible par l'utilisateur du formulaire au moment de la saisie.
Par ailleurs je me sers de ces stats pour un algorithme traité sur une autre page, j'ai donc besoin de la transmettre via un champs caché mais rien y fait.

Voici les différentes portions de codes :

un des formulaire de saisie avec ma requête qui fonctionne :
<form method="post" action="titreseval.php">
		<fieldset>
			<legend>Achats de titres</legend>
			<p>
				<label>Date (jj/mm/aaaa) </label><input type="text" maxlength=2 size=2 name="DateD_Entrees"/>
									<input type="text" maxlength=2 size=2 name="DateM_Entrees"/>
									<input type="text" maxlength=4 size=4 name="DateY_Entrees"/><br/>
				<label>Quantite</label><input type="text" size=5 name="Quantite_Entrees"/><br/>
				<label>Prix unitaire</label><input type="text" size=5 name="PU_Entrees"/><br/>
				<input type="Submit" value="Envoyer"/>		
			</p>
			<p>
				<?php
					mysql_connect("localhost", "root", "") ;
					mysql_select_db("OPCVM") ;
					$rstat1 = mysql_query("select count(*) as statqe from Entrees") ;//on compte le nb d'entrées
					$stat1 = mysql_fetch_array($rstat1) ;
					echo "En ce moment : ".$stat1['statqe']. " entrees dans la base" ;
					
				?>
			</p>
		</fieldset>
		</form>

Le formulaire d'envoi des données vers ma page de traitement
<form method="post" action="titreseval_traitement.php">
			<p>
				<input type="hidden" name="nbentrees" value="<?php echo $stat1['statqe'] ; ?>"/>
				<input type="hidden" name="nbsorties" value="<?php echo $stat2['statqs'] ; ?>"/>
				<input type="Submit" value="Evaluer"/>
			</p>
		</form>

Le début de la 2ieme page avec la récupération des variables :
//connection BDD
			mysql_connect("localhost", "root", "") ;
			mysql_select_db("OPCVM") ;
			//contrôle de cohérence entre les entrées et les sorties de stock
			$rstat3 = mysql_query("select sum(Quantite_Entrees) as statqe from Entrees") or exit(mysql_error()) ; ;
			$rstat4 = mysql_query("select sum(Quantite_Sorties) as statqs from Sorties") or exit(mysql_error()) ;
			$stat3 = mysql_fetch_array($rstat3) ;
			$stat4 = mysql_fetch_array($rstat4) ;
			$totqtee = $stat3['statqe'] ;
			$totqtes = $stat4['statqs'] ;
			echo $totqtee ;
			//recuperation nb entrées et sorties
			$nb_entrees = $_POST['nbentrees'] ;
			$nb_sorties = $_POST['nbsorties'] ;			
			echo $nb_sorties ;
			echo $nb_entrees ;
ps : les 2 premiers formulaires sont situés sur la même page
ça fait pas mal de temps que je cherche la bourde mais sans succès car les derniers "ECHO" du code ci-joint ne donnent rien ! et SQL ne me renvoie aucune erreur

Merci d'avance !

Re: Transmettre variable via champs caché

Posté : 23 juil. 2010, 23:57
par ouckileou
Tu as regardé dans le source du formulaire (je veux dire dans le naigateur, une fois généré par PHP), s'il y avait bien tes valeurs dans "value" ?

Re: Transmettre variable via champs caché

Posté : 24 juil. 2010, 04:59
par AB
Pour poursuivre un peu la réponse de ouckileou, $stat2['statqs'] est défini où dans ton code ?

Re: Transmettre variable via champs caché

Posté : 24 juil. 2010, 13:44
par Faenor
Bonjour et merci pour vos réponses,

Ouckileou => oui j'ai bien vérifier dans le code source, mes stats y apparaissaient bien

AB => $stat2['statqs'] correspond à un deuxième formulaire qui reprend les stats d'une autre table, je n'ai pas posté le code car le problème apparaissait déjà avec le premier formulaire.

Bon mais j'ai pu résoudre le problème en mettant un ISSET()
Par contre par la suite j'ai une erreur SQL m'indiquant que ma syntaxe n'était pas bonne par contre la je ne comprends pas car j'ai utilisé stricto senso la même requête que sur une de mes autres page si on exclut le nom des variables.
mysql_query("insert into Synthèse (ID_Sorties, ID_Entrees, Prix_cession, Prix_acquisition, Qte_vendue, Resultat) 
										values ('".$numsortie."','".$numentree."','".$pc."','".$pa."','".$qrc."','".$result."') ") or exit(mysql_error()) ;
Le but de mon programme est de gérer un Algorithme de gestion de stock en FIFO. En gros j'ai une table des ENTREES et une des SORTIES. Et je calcule un résultat (Prix de cession - Prix achat) * Qte acheté) par cession. Ces informations sont stocker dans une table SYNTHESE sans clé primaire et je me demande si le problème ne vient pas de là....

nb : Une cession peut concerner 1 ou N lots achetés
et une aquisition peut concerner 1 ou N cession

Pouvez-vous me dire ce que vous en pensez ?
Merci !

Re: Transmettre variable via champs caché

Posté : 24 juil. 2010, 14:28
par ouckileou
Par contre par la suite j'ai une erreur SQL m'indiquant que ma syntaxe n'était pas bonne par contre la je ne comprends pas car j'ai utilisé stricto senso la même requête que sur une de mes autres page si on exclut le nom des variables.
mysql_query("insert into Synthèse (ID_Sorties, ID_Entrees, Prix_cession, Prix_acquisition, Qte_vendue, Resultat) 
										values ('".$numsortie."','".$numentree."','".$pc."','".$pa."','".$qrc."','".$result."') ") or exit(mysql_error()) ;
Et bien il y a peut-être un problème après l'insertion des variables, c'est pour ça qu'il faut tjrs montrer le SQL généré.

Re: Transmettre variable via champs caché

Posté : 24 juil. 2010, 14:40
par Faeno
Ok ! par contre est ce que tu peux me dire comment faire ça justement ?

Re: Transmettre variable via champs caché

Posté : 24 juil. 2010, 14:46
par ouckileou
Tu mets ton code requête dans une variable que tu affiches avant d'envoyer à ton mysql_query()

Il y a un sujet pour débugguer du SQL dans PHP dans ma signature, lis le stp

Re: Transmettre variable via champs caché

Posté : 24 juil. 2010, 15:14
par Faenor
re,

merci, j'ai rajouté le test auquel tu faisais référence :

$requete = "insert into Synthèse (ID_Sorties, ID_Entrees, Prix_cession, Prix_acquisition, Qte_vendue, Resultat)
values ('".$numsortie."','".$numentree."','".$pc."','".$pa."','".$qrc."','".$result."') " ;
echo $requete ;

J'ai bien les valeurs dans mes variables mais avec le message d'erreur suivant :
insert into Synthèse (ID_Sorties, ID_Entrees, Prix_cession, Prix_acquisition, Qte_vendue, Resultat) values ('2','2','7','15','5','-40') You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '¨se (ID_Sorties, ID_Entrees, Prix_cession, Prix_acquisition, Qte_vendue, Resulta' at line 1

Re: Transmettre variable via champs caché

Posté : 24 juil. 2010, 16:07
par AB
Tu devrais éviter d'utiliser des caractères accentués ou spéciaux dans le nom de tes tables.

Re: Transmettre variable via champs caché

Posté : 25 juil. 2010, 12:32
par Faenor
salut ! je te remercie c'était exactement ça !