Transfert du contenu d'un tableau vers une autre page [Résolu]

Signaler
Messages postés
102
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
29 mai 2012
-
anthony428
Messages postés
102
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
29 mai 2012
-
Bonjour,

J'ai le script suivant :

while ($row = mysql_fetch_assoc($result)) {
//retourne le nombre de résultats
$_SESSION['nb_enregistrement']=mysql_num_rows($result);
$_SESSION['nom_societe']=$row['nom_societe'];

}

et la récupération comme ceci :

session_start();
$nb_enregistrement=$_SESSION['nb_enregistrement'];
$i=0;
while ($i != $nb_enregistrement) {
$nom_societe[$i]=$_SESSION['nom_societe'];
echo $nom_societe[$i];
$i++;
}


ce code fonctionne mais me retourne seulement la dernière valeur enregistrée dans mon tableau et l'affiche le nombre de fois spécifié par mon compteur $i.
Comment puis adapté ce script afin de récupérer toutes les valeurs du tableau 1 de la page 1 et de les transférer dans le tableau 2 de la page 2 destiné à un autre traitement.
J'espère que je me suis exprimé clairement.

Voyez vous une solution à mon problème.
Je pense que ce n'est pas grand chose mais la syntaxe php me manque.

3 réponses

Messages postés
103
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
26 décembre 2009
1
Salut,

Le problème c'est que tu mets toutes les valeurs dans la même variable :
$_SESSION['nom_societe']=$row['nom_societe'];
$_SESSION['nom_societe'] est la même variable dans chaque tour de la boucle.

Pareil pour la lecture tu ne lis qu'une seule variable.


Voici une possibilité de correction :
$i = 0;
while ($row = mysql_fetch_assoc($result)) {

//retourne le nombre de résultats

$_SESSION['nb_enregistrement']=mysql_num_rows($result);

$_SESSION['nom_societe'.$i]=$row['nom_societe'];

$i++;
}




session_start();

$nb_enregistrement=$_SESSION['nb_enregistrement'];

$i=0;

while ($i != $nb_enregistrement) {

$nom_societe[$i]=$_SESSION['nom_societe'.$i];

echo $nom_societe[$i];

$i++;

}


a++ extraman1
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
Salut,


Il y a pas mal d'erreurs dans ton code :
- tu mets mysql_num_rows($result); dans la boucle while : c'est inutile puisque ta requête ne change pas
- $_SESSION['nom_societe']=$row['nom_societe'];
comme le dit Extraman tu ré écris à chaque fois dans la même variable
$nb_enregistrement=$_SESSION['nb_enregistrement'];
$nom_societe[$i]=$_SESSION['nom_societe'];

pourquoi ne pas utiliser directement la var de session ??
while ($i != $nb_enregistrement) {

préfère ça :
while ($i < $nb_enregistrement) {
ou mieux : for($i=0; $i < $nb_enregistrement; $i++) {
- ...

Perso je ferai plutôt ça :

$_SESSION['nb_enregistrement'] = mysql_num_rows($result);
$_SESSION['nom_societe'] = array();

while ($row = mysql_fetch_assoc($result)) {
  array_push($_SESSION['nom_societe'], $row['nom_societe'];
} 


et sur l'autre page :

session_start();

foreach($_SESSION['nb_enregistrement'] as $num_enregistrement) {
  echo $num_enregistrement;

}



Cordialement,


Kohntark -
Messages postés
102
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
29 mai 2012

Merci pour vos solutions.
encore une fois kohntark est là pour résoudre mes problèmes.
Merci beaucoup.