Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Pb php/mysql recuperer numero dans un tableau

marie77, le lundi 22 janvier 2007 à 09:55: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.
Configuration: Windows XP
Firefox 1.5.0.9
internet explorer dernier version
Répondre à marie77  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
nauno, le lundi 22 janvier 2007 à 11:25:38
salut, je suis pas sur d'avoir tout compris mais il semblerait que tu récupère un tableau de num_coupon alors que tu n'envoie q'un seul num_coupon!

PS: il y'a une balise
code
qui permet de lire bcp plus facilement le code C'est au pied du mur
que l'on voit le mieux le mur!!!
Répondre à nauno

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Reivax962, le lundi 22 janvier 2007 à 11:57:28
Bonjour,

Je crois que j'ai localisé ton problème. En tous cas, c'est un problème !
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;
} 

Dans ce bout de code, tu mets N fois la ligne
<input type='hidden' name='i' value='$i'>
(N étant le nombre de résultats de ta requête).

Le problème, c'est que du coup, tu as N champs input ayant le même nom, "i" !
Donc, dans la suite, quand tu fais $i = $_GET['i'] , lequel de ces champs va être utilisé ? Vu le problème que tu décris (un seul numéro), je dirais bien qu'il prend le premier : <input name='i' value='1'>...
Pour résoudre ton problème, je te propose de "sortir" cette ligne (echo "<input type='hidden' name='i' value='$i'>) de la boucle. Ainsi, tu n'auras qu'un seul <input name='i' [...]>, qui vaudra la valeur la plus grande de i, c'est à dire le nombre total de coupons de ta requête.

Voilà, j'espère que ça va t'aider :)

Xavier
Répondre à Reivax962

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marie77, le lundi 22 janvier 2007 à 12:03:38
oui pi etre,


et donc il faudrait que je sors :
// ." . $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;

de ma boucle while..{ } je le met aprés avec les autres input
C'est sa ?
Répondre à marie77

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Reivax962, le lundi 22 janvier 2007 à 12:12:11
C'est ça.
Ca donne quoi ?
Répondre à Reivax962

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marie77, le lundi 22 janvier 2007 à 12:49:44
Donc je me suis remise dedans , donc j'ai essayé de mettre ce qu'on avait dit aprés les accolade du while, mais non sa ne marche pas car là justement il me prend qu'un numéro.

je vais tenté lors de la création du tableau et de son listage de le mettre en session, le truc aprés c'est q je sais pas comme reprendre les info pr que ma requete l'indentifie.

Je vais tester.
on verra.
lol.
Répondre à marie77

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marie77, le lundi 22 janvier 2007 à 12:27:07
J'ai pas encore testé je testerai tte a l'heure, car je me suis pris la tete dessus hier donc aujourd'hui j'ai décroché un peu et demande un peu d'aide.

Donc, je regarderai aprés mangé, et je te tiens au courant, ya pas de soucis.

Merci.
Répondre à marie77

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Reivax962, le lundi 22 janvier 2007 à 12:52:24
Euh, je n'ai pas trop compris... Tu peux mettre ici ton code modifié ?
(et n'oublie pas de le mettre entre < code > et </ code>, c'est nettement plus facile à lire :) )
Répondre à Reivax962

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marie77, le lundi 22 janvier 2007 à 13:59:34
Comme je te disais j'ai essayé de mettre le comptage des num aprés la boucle, mais il ne prend pas en compte tous les num s'il en a plusieurs.


...
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'];
}



// ." . $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; 





Donc je vais voir avec la session
Répondre à marie77

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Reivax962, le lundi 22 janvier 2007 à 14:12:57
Il n'y avait qu'une seule ligne à enlecer du while !
Donc au final, ça donne plutôt :
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'];

// ." . $i . " permet de compter les numéros
echo "<input type=hidden name=num_coupon_".$i ."
value=".$num_coupon."></td></tr>";
$i=$i+1;
echo "</td></tr>";
echo $i;
}

echo "<input type='hidden' name='i' value='$i'>";
Répondre à Reivax962

Résultats pour pb php/mysql recuperer numero dans un tableau

[PHP/MYSQL]recupération de données... (Résolu) bonjour, je fais un site en php/mysql j'ai créé un formulaire où j'ai une liste déroulante comportant mes utilisateurs et une zone texte correspondant au service auquel appartient c utilisateurs. lorsque je choisis un utilisateur,... www.commentcamarche.net/forum/affich-1294314-php-mysql-recuperation-de-donnees
PHP MySql, rechercher dans plusieurs tables (Résolu) Bonjour! Je viens de creer une base de donné avec 3 table et je veux un script qui me permet de faire une recherche dans ces 3 tables a la fois en utilisant PHP Mysql. Merci. www.commentcamarche.net/forum/affich-1029703-php-mysql-rechercher-dans-plusieurs-tables
[PhP/Mysql] résultat d'1 requete en array (Résolu) Bonjour, J'ai un souci. Je cherche a mettre le résultat d'une requete mysql dans un tableau. j'ai fait ma requete SELECT * FROM table. Pour la récupérer j'ai tenté 2 méthodes 1 $var= mysql_fetch_array($cherche,MYSQL_NUM); 2... www.commentcamarche.net/forum/affich-2567322-php-mysql-resultat-d-1-requete-en-array

Résultats pour pb php/mysql recuperer numero dans un tableau

Installation rapide de LAMP (Apache+MySql+php) sous LinuxLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL... www.commentcamarche.net/faq/sujet-7971-installation-rapide-de-lamp-apache-mysql-php-sous-linux

Résultats pour pb php/mysql recuperer numero dans un tableau

PHP/MySQL:script pour site d'annonces,.... (Résolu)salut, j'ai des connaissances de base en PHP/MYsql. Pour les besoins d'un site d'annonces, je cherche un script qui permet de rentrer une annonce dans une catégorie, de l'afficher, de la confirmer et ensuite de la publier dans la... www.commentcamarche.net/forum/affich-2679335-php-mysql-script-pour-site-d-annonces
Apache php mysql help help help (Résolu)bonjour j essaie d installer apache php mysql tout va bien juske la en tar gz tout roule je teste mon serveur apache , la page d accueil s affiche ok c en html . Donc mon serveur c lire le html , g installé php mysql avec apache pour que tout... www.commentcamarche.net/forum/affich-1296475-apache-php-mysql-help-help-help
Apache,php,mysql,phpmyadmin (Résolu)Bonjour, durans mon stage de fin d'année je doit rénauvé le site internet d'un lycée. J'arrive a installer apache,php,mysql et phpmyadmin mais je n'arrive pas a les configurer a pouvoir les utiliser au travers de internet explorer,... www.commentcamarche.net/forum/affich-6377959-apache-php-mysql-phpmyadmin