Pb sur un resultat de requete passé en session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb sur un resultat de requete passé en session

par Truc » 15 janv. 2006, 00:55

merci truc je te paye une biere :wink:
Un [Résolu] suffira :wink:

par storm61 » 15 janv. 2006, 00:18

Truc merci de ta patiente

Je post sur plusieurs forum car quand j'ai un pb j'essaye de le resoudre sinon je dors pas


bon ca marche pour le code mais comment recupère tu la donnée ex $_SESSION['niv1']; sur l'autre page c'est a dire souscription car la je recupère rien

oh putain j'ai trouvé :D echo $_SESSION['niv1'];

merci truc je te paye une biere :wink:

par Truc » 14 janv. 2006, 22:17

On m'a conseillé de ne pas utiliser de boucle car il s'agit de lire simplement une ligne de valeur
C'est bien ce que je redoutais :wink:

dans ce cas la variable de session à 2 dimension devient inutile !!
(au passage tu poste sur combiens de Forums ? [-( )

essaie comme ça:
<?php
session_start();
$requete = mysql_query( $sql );
$result = mysql_fetch_array( $requete ); 

$_SESSION['niv1']=$result["niv1"];
$_SESSION['niv1plus']=$result["niv1plus"];
$_SESSION['niv2']=$result["niv2"];
$_SESSION['niv3']=$result["niv3"];
?>

<TBODY>
	<TR>
	  <TD height="38" align="middle" bgcolor="#FFFFFF"><div align="left"><FONT
	color="#555766" face="Tahoma" style="FONT-SIZE: 10pt"><B>Montant de votre cotisation mensuelle</B></FONT>
		</div></TD>
	  <TD width="94" height="38" align="middle" bgcolor="#CCCCCC"> <div align="center"><FONT color="#FFFFFF" size="4" face="Tahoma"
	style="FONT-SIZE: 11pt"><B><?php echo $result["niv1"]; ?>&nbsp;€</font>
		</div></TD>
	  <TD width="94" height="38" align="middle" bgcolor="#CCCCCC"> <div align="center"><FONT color="#FFFFFF" size="4" face="Tahoma"
	style="FONT-SIZE: 11pt"><B><?php echo $result["niv1plus"]?>"&nbsp;€</font>
		</div></TD>
	  <TD width="94" height="38" align="middle" bgcolor="#CCCCCC"> <div align="center"><FONT color="#FFFFFF" size="4" face="Tahoma"
	style="FONT-SIZE: 11pt"><B><?php echo $result["niv2"]?>"&nbsp;€</font>
		</div></TD>
	  <TD width="94" height="38" align="middle" bgcolor="#CCCCCC"> <div align="center"><FONT color="#FFFFFF" size="4" face="Tahoma"
	style="FONT-SIZE: 11pt"><B><?php echo $result["niv3"]?>"&nbsp;€</font>
		</div></TD>		  
  </TBODY>
</table>

par storm61 » 14 janv. 2006, 19:37

Bon j'avoue que tu peux y perdre le nord :wink:

On m'a conseillé de ne pas utiliser de boucle car il s'agit de lire simplement une ligne de valeur je récapitule depuis le debut

j'ai une base de donnée sous la forme

age niv1 niv1plus niv2 niv3
18 26.50 30.67 € 35.81 € 47.30 €

je fais une requete sur cette base du style
if ($regime1 > '0')
{
switch ($regime1) { 
case '1': 
$sql = "SELECT * FROM tarif1 where age=$age";
break;
case '2': 
$sql = "SELECT niv1 * 0.85 as niv1, niv1plus * 0.85 as niv1plus, niv2 * 0.85 as niv2, niv3 * 0.85 as niv3 FROM tarif1 where age=$age";
break;
case '4': 
default :
    $sql = "0" ;
}
}
puis j'affiche le code selon le resulat de cette requete dans une page result.php

php session_start();
$requete = mysql_query( $sql );
$result = mysql_fetch_array( $requete );

echo ("<TBODY>
            <TR> 
              <TD height=\"38\" align=\"middle\" bgcolor=\"#FFFFFF\"><div align=\"left\"><FONT 
            color=\"#555766\" face=\"Tahoma\" style=\"FONT-SIZE: 10pt\"><B>Montant de votre cotisation mensuelle</B></FONT> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$_SESSION['niv1'][0]=$result["niv1"]."&nbsp;€</font> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$_SESSION['niv1plus'][1]=$result["niv1plus"]."&nbsp;€</font> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$_SESSION['niv2'][2]=$result["niv2"]."&nbsp;€</font> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$_SESSION['niv3'][3]=$result["niv3"]."&nbsp;€</font> 
                </div></TD>
				  
          </TBODY>
        </table>");

J'ai un bouton souscription qui pointe vers une page souscription.php

dans cette page j'ai le code suivant


<?php session_start();
echo $_SESSION['niv1'][0];
?>

ce que je voudrais c'est recuperer la valeur 26.50 à un endroit d'un formulaire puis la valeur 30.67 à un autre endroit

la ca m'affiche la bonne valeur 26.50 mais ca m'afffiche aussi les autres en creant tout seul des cellules avec les trois autres valeur ce qui décale mon code html par ailleurs :?

je ne veux que par exemple une valeur la 26.50

voila j'espère que j'ai été clair

par Truc » 14 janv. 2006, 14:52

On va reprendre parceque je sent qu'il y a un truc qui va de travers :?

Tu fait une boucle while() ce qui me fait "penser" qu'il y aura plusieurs passages dans la boucle et donc plusieurs données retournées pour le meme champ de la table (si ce n'est pas le cas une variable de session simple suffira, pas de tableau à 2 dimensions):

ex.
1er passage $result["niv1"] =20
2eme passage $result["niv1"]=30

on retrouve donc
$_SESSION['niv1'][0]=20;
$_SESSION['niv1'][1]=30;
de plus dans la session (apres affichage avec var_dump()) tu as des String "26.50 € ", "30.67 € " ... et dans le meme array [0]

peux tu montrer ton code tel qu'il est maintenant ?

par storm61 » 14 janv. 2006, 13:32

voila ca me donne ceci

array(1) {
[0]=>
string(791) "26.50 €

30.67 €

35.81 €

47.30 €



"
}


oui je veux recuperer toutes les valeurs mais les afficher à des endroits différents dans mon formulaire souscription.php

c'est a dire

exemple votre prix pour la garantie niv1 : $_SESSION['niv1'][0]

puis 10 lignes plus bas apres un text en html

votre prix pour la garantie niv1plus : $_SESSION['niv1plus'][1]


et je ne m'explique pas pourqoi si je fais ca ex $_SESSION['niv1'][0]

il me sort les valeurs niv1, niv1plus, niv2, niv3

voila

par Truc » 14 janv. 2006, 12:58

tu peux faire un copier/coller du resultat de:
<pre>
<? var_dump($_SESSION['niv1']); ?>
</pre>
en principe la session devrai comporter les valeurs de la boucle sous cete forme:
$_SESSION['niv1'][0] // 1ere valeur de la boucle
$_SESSION['niv1'][1] // 2eme valeur de la boucle
$_SESSION['niv1'][2] // 3eme valeur de la boucle
Mais tu veux bien récupérer toutes les valeurs de la boucle ?

par storm61 » 14 janv. 2006, 11:34

Merci pour ta réponse

ok j'ai vérifier et j'ai bien une valeur

si j'inclue les variables de sessions dans la boucle et sur l'autre page je fais ceci
echo $_SESSION['niv1'][0]; 
 
j'ai la bonne valeur mais j'ai aussi les 3 autres sans comprendre pourquoi

ce que je veux simplement sait prendre la première valeur et l'inclure au bon endroit dans mon formulaire

merc de ton aide

par Truc » 13 janv. 2006, 23:15

inclus les 3 dernières lignes (affectation des variables de session) dans la bouclz while().

Sur l'autre page inclus ce bout de code pour verifier le contenu de la session (niv1 par exemple):
<pre>
<? var_dump($_SESSION['niv1']); ?>
</pre>

Pb sur un resultat de requete passé en session

par storm61 » 13 janv. 2006, 20:31

Bonsoir

grace à ce code je calcule un tarif mais je voudrais passer toutes les variables $result en session afin de les traiter dans une autre page mais je n'y arrive pas

merci :(

Comment je dois coder ca pour recuperer les resultats sur une autre page php

si je fais ceci :

j'ai bien vérifier d'avoir session start en deput de page


echo $_SESSION['niv3'][0];

sur l'autre page j'ai aucun résultat

$requete = mysql_query( $sql );
                while( $result = mysql_fetch_array( $requete ) )
{
  
echo ("<TBODY>
            <TR> 
              <TD height=\"38\" align=\"middle\" bgcolor=\"#FFFFFF\"><div align=\"left\"><FONT 
            color=\"#555766\" face=\"Tahoma\" style=\"FONT-SIZE: 10pt\"><B>Montant de votre cotisation mensuelle</B></FONT> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$result["niv1"]."&nbsp;€</font> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$result["niv1plus"]."&nbsp;€</font> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$result["niv2"]."&nbsp;€</font> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$result["niv3"]."&nbsp;€</font> 
                </div></TD>
                                  
          </TBODY>
        </table>");
}
$_SESSION['niv1'][]=$result["niv1"];
$_SESSION['niv2'][]=$result["niv2"];
$_SESSION['niv3'][]=$result["niv3"];
?>