PB PHP/mysql recup résultat d'un tableau

Fermé
marie - 22 janv. 2007 à 09:37
marie77 Messages postés 6 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 22 janvier 2007 - 22 janv. 2007 à 11:31
bonjour, à tous, voilà j'ai un tit problème.

Je voudrais récupérer des variables que j'ai listé dans un tableau préalablement créer soit des n° de coupon.

Mais je n'arrive qu'à en récupérer un seul sur le nbre x qu'il peut y avoir.

Logiciel, programme utilisé :
-phpmyadm 2.6.1
-mysql 4.1.9
-PHP 4.3.10


Voila tout d'abord fichier pre info :
<?
include("connect_bd.php");
$num=$_GET['var1'];
$nom=$_GET['var2'];

echo"<form action='verif_facture.php'>
<center><h1><font color=blue>Editer la facture de : $nom </h1></font></center>";

$sql="select coupon.num_coupon,coupon.nom_eleve,nb_h,
eleve.num_eleve,eleve.civilite_eleve,num_rue_eleve,rue_eleve,
cp_eleve,ville_eleve,pt_cadeau_eleve
FROM coupon,eleve
WHERE eleve.num_eleve=coupon.num_eleve
and coupon.etat_facture='attente'
AND eleve.num_eleve=('$num')";

$req=mysql_query($sql)or die ("error de connexion");

//echo $req ;

$nb=mysql_num_rows($req);//nbre de ligne du résultat de la requete

echo'<table align=center bgcolor=blue border=0 cellspacing=5>';
$i=0;

while($resultat=mysql_fetch_array($req))
// creation tableau pour afficher resultat de la requete
{
// les mettres qu'entre les $RESULTAT permet d'eviter de répéter les meme DONNER
$num_coupon=$resultat['num_coupon'];
$num=$resultat['num_eleve'];

//echo '<br>'.$num_coupon;
// BUT pouvoir garder une trace des N° coupon afin aprés de les déclarer en Etat_facture=valider Mais on les cache

// ." . $i . " permet de compter les numéros
echo "<input type=hidden name=num_coupon_".$i ." value=".$num_coupon."></td></tr>";
$i=$i+1;
echo "<input type='hidden' name='i' value='$i'></td></tr>";
echo $i;
}
echo "<tr><td align=center>N° de l'élève : </td><td align=center><input name='num' value='$num'></td></tr>";

...
echo'<div align=center><input type="submit" name="Valider" value="Valider"></div></form> ';
?>

PUIS sa renvoie donc au fichier VERIF : qui creer le tableau pour récupérer n° coupon

<?
//session_start();
include('connect_bd.php');
$nom=$_GET['nom'];
$i=$_GET['i'];

// Vérification si facture déjà fait au nom donné
{
$sql="select * from facture,eleve,coupon
where nom_eleve_facture=('$nom') ";

/*
BUT essayer de s'occuper des num_coupons
$num=$_GET['num'];
AND facture.num_eleve=('$num')
and facture.num_eleve=eleve.num_eleve
and eleve.num_eleve=coupon.num_eleve
and coupon.etat_facture='attente'*/
$req=mysql_query($sql)or die('erreur');

$nb=mysql_num_rows($req);//nbre de ligne du résultat de la requete
}

// verifie si une ou plusieures factures ont déjà été faites à son nom
if($nb>=1){

/* C = est 1 variable simple, $i est le nbre total de num_coupon */
/// création du tableau pour récuperer les num_coupon
for ($c=0;$c<$i;$c++)
{
$tableau[$c]=$_GET[ 'num_coupon_'.$c];
//echo $tableau[$c];
$num_coupon=$_GET[ 'num_coupon_'.$c];
//echo "$num_coupon<br>";
}
echo "$num_coupon<br>";

include('previsu_facture_sans.php');
}

else...

?>


Donc aprés sa renvoie au fichier Prévisu : qui va récupérer les N° de coupon et les lister dans un tableau, donc jusque là sa marche.


<?
//session_start();

$chaine="form action=ajout_facture_sans.php?";
echo "$chaine<br>";

foreach ($tableau as $num => $num_coupon)
{
echo "$num : $num_coupon <br>";
//$chaine=$chaine.$num.'='.$num_coupon;
$chaine=$chaine.'&'.$num_coupon;
$chaine1=$num_coupon;
//echo "$chaine<br>";
//echo "$num_coupon<br>";
}
echo $chaine1;
echo '<br>'.$num_coupon;

echo"<$chaine>";
...
/*
RESULTAT d'affichage :
form action=ajout_facture_sans.php?
0 : 33490
1 : 33497
2 : 33496
3 : 33494
donc sa récupere bien

*/
echo"<br><p span class='Style1' align='center'><input type='submit' name='Valider' value='ENREGISTRER DANS BASE'></p></form> ";
?>
DONC le $ chaine que j'ai fait, va se mettre sur le boutton :

Soit si on se met sur le boutton est marqué :
ajout_facture_sans.php?&33490&33497&33496&33494

Et donc c'est censer me renvoyer mes n° sur la page ajout.

SOIT page AJOUT :
adresse de la page étant :

"/ajout_facture_sans.php?num_facture=&date=&num=195&num_coupon=33494... "

Donc il ne me prend pas les autres n°.
BUT Recupérer ces N° pour les modifier dans la base.
Le code :
<?
session_start();
//echo $chaine;
//$num_coupon=$_GET[ 'num_coupon_'.$c]
$num_coupon=$_GET['num_coupon'];

echo $num_coupon;=> affiche en fait que le 1er ou dernier N° de coupon.

$nom=$_GET['nom'];// assimile NOM + PRENOM
....

$valider='valider';
include('connect_bd.php');
{
$req="UPDATE coupon SET
etat_facture=('$valider') where coupon.num_coupon=('$num_coupon') ";

mysql_query($req) or die('erreur1');

//echo'etat facture modifier<br>';
}

?>


Merci de M'aider !!!

Bonne journée.
A voir également:

2 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
22 janv. 2007 à 11:10
Si tu dois passer une nombre inconnu de paramètre, je te conseille alors l'une de ces deux méthodes :

Soit tu fais une fonction qui construit ton url en fonction d'un tableau, afin de passer en argument le nombre d'élément du tableau, puis chacun des éléments avec un nom commun et un numéro.

Ex : http://www.bidule.com?nb=12&arg1=toto&arg2=...&arg12=bibi

Ainsi dans ta page de traitement, tu récupère tes arguments (numéro) de nouveau dans un tableau de la sorte :
$nb = $_GET["nb"];
$liste = null;

for ( $i=0; $i < nb; $i++ )
   $liste[i] = $_GET["arg"+i];



Du moins quelque chose dans le genre.

Soit, tu gere les sessions (au moins pour les pages où il est nécessaire de passer ces numéros) et tu met le tableau en session avant d'appeler ton traitement, et le récupère en début de traitement. C'est la méthode la plus simple.

Désolé j'ai pas regardé ton code, trop tot encore ^^
0
marie77 Messages postés 6 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 22 janvier 2007
22 janv. 2007 à 11:31
J'y avais pensé avec la session, je vais essayer, et je te monterai mon code.

Merci de m'avoir répondu.
0