Page 1 sur 1

récupérer valeur d'une variable.

Posté : 23 mai 2012, 16:29
par piotrowski-s
Bonjour à tous, j'ai ce code ci dessous:
  <?php
					   
					  $sql253 = "SELECT * FROM `liasses` WHERE  n_doss='".mysql_real_escape_string($_GET['n_doss'])."'";
$req117 = mysql_query ($sql253) or die ('Erreur SQL !<br>'.$sql253.'<br>'.mysql_error ()); 	
$num_rows = mysql_num_rows($req117)		;

if ($num_rows =='0') {
	$sql17 = "SELECT SUM(`factures`.`montant`)   AS montant FROM `factures`  WHERE `factures`.`n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
	
$req17 = mysql_query ($sql17) or die ('Erreur SQL !<br>'.$sql17.'<br>'.mysql_error ()); 

while($data119 = mysql_fetch_assoc ($req17)) 

{ 
$sd1 = number_format(($data119['montant']+ $tx-$nbr4)  , 2, ',', ' ');
echo $sd1 ;   ?> <?php } ?>
<?php } else {
					    $sql17 = "SELECT SUM(`factures`.`montant`) + SUM(`liasses`.`montant`)  AS montant FROM `factures` INNER JOIN `liasses` ON `factures`.`n_doss`=`liasses`.`n_doss` WHERE `factures`.`n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
						
$req17 = mysql_query ($sql17) or die ('Erreur SQL !<br>'.$sql17.'<br>'.mysql_error ()); 

while($data119 = mysql_fetch_assoc ($req17)) 

{ 
$sd1 = number_format(($data119['montant']+ $tx-$nbr4)  , 2, ',', ' ');
echo $sd1 ;  } ?> <?php } ?>
qui me donne la variable $sd1,

le soucis c'est que j'aurais besoin de réutiliser cette variable ci, mais quelques lignes plus loin, or comme je suis sorti de la condition, acollade fermée, la variable redevient indéfinie.
N'y a t'il pas un moyen de pouvoir continuer a la réutiliser?

Par avance merci.

Re: récupérer valeur d'une variable.

Posté : 23 mai 2012, 16:41
par moogli
déclare la variable avant le while

Et nettoie ton code c'est vraiment crade des truc comme ça
?> <?php } ?>
<?php } else {


@+

Re: récupérer valeur d'une variable.

Posté : 23 mai 2012, 16:49
par piotrowski-s
ça ne fonctionnes pas j'ai toujour sla même erreur.

Re: récupérer valeur d'une variable.

Posté : 23 mai 2012, 17:17
par xTG
Il n'y a pas de raison.
Nettoies ton code et tu trouveras surement ton erreur.

Re: récupérer valeur d'une variable.

Posté : 23 mai 2012, 17:42
par moogli
J'ai p'tet mal compris. C'est en dehors de la clause if/else que tu veux utiliser cette variable ?

Si c'est le cas, la déclaration doit être faite avant le if, sinon effectivement tu a un problème de portée ;)


@+

Re: récupérer valeur d'une variable.

Posté : 24 mai 2012, 09:07
par piotrowski-s
bah j'ai bien déclaré la variable avant le if, mais comment faire pour que la valeur récupérée soit la même que celle de la condition?

d'avance merci.

Re: récupérer valeur d'une variable.

Posté : 24 mai 2012, 09:16
par xTG
Bah elle restera la même si tu ne la modifies pas entre deux. Je comprend pas trop ton problème. :?

Re: récupérer valeur d'une variable.

Posté : 24 mai 2012, 09:32
par piotrowski-s
il met met toujours variable $sd51 indéfinie alors que je l'ai bien, vous l'avez constaté.

Re: récupérer valeur d'une variable.

Posté : 24 mai 2012, 10:00
par piotrowski-s
j'ai optimisé le code:
</font><font color=yellow>
<?php					   
$sql253 = "SELECT * FROM `liasses` WHERE  n_doss='".mysql_real_escape_string($_GET['n_doss'])."'";
$req117 = mysql_query ($sql253) or die ('Erreur SQL !<br>'.$sql253.'<br>'.mysql_error ()); 	
$num_rows = mysql_num_rows($req117)		;

if ($num_rows =='0') 
{
$sql17 = "SELECT SUM(`factures`.`montant`)   AS montant FROM `factures`  WHERE factures`.`n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
} 
else 
{
$sql17 = "SELECT SUM(`factures`.`montant`) + SUM(`liasses`.`montant`)  AS montant FROM `factures` INNER JOIN `liasses` ON `factures`.`n_doss`=`liasses`.`n_doss` WHERE `factures`.`n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
}
$req17 = mysql_query ($sql17) or die ('Erreur SQL !<br>'.$sql17.'<br>'.mysql_error ()); 

while($data119 = mysql_fetch_assoc ($req17)) 
{ 
$sd1 = number_format(($data119['montant']+ $tx-$nbr4)  , 2, ',', ' ');
echo $sd1 ;  
} ?>
ce que je souhaites c'est récupérer la valeur de la variable $sd1 mais le soucis c'est que comme elle est en dehors du while il met undefined var.

N'y a t'il pas moyen de récupérer et d'exploiter cette variable ou du moins sa valeur en dehors du while?

D'avance merci.

Re: récupérer valeur d'une variable.

Posté : 24 mai 2012, 10:29
par xTG
On t'a donné la solution...
On doit la déclarer avant :
$sd1 = '';
while($data119 = mysql_fetch_assoc ($req17))
{
$sd1 = number_format(($data119['montant']+ $tx-$nbr4)  , 2, ',', ' ');
}
echo $sd1;
Mais saches que tu ne récupéreras que la dernière affectation, puisque qu'à chaque itération de la boucle tu réécrases sa valeur.