Transfert du contenu d'un tableau vers une autre page

Résolu
anthony428 Messages postés 102 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 29 mai 2012 - 23 juil. 2009 à 16:51
anthony428 Messages postés 102 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 29 mai 2012 - 24 juil. 2009 à 09:12
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

extraman1 Messages postés 103 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 26 décembre 2009 2
23 juil. 2009 à 17:55
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
3
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
23 juil. 2009 à 21:20
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 -
3
anthony428 Messages postés 102 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 29 mai 2012
24 juil. 2009 à 09:12
Merci pour vos solutions.
encore une fois kohntark est là pour résoudre mes problèmes.
Merci beaucoup.
0
Rejoignez-nous