Récupérer une requête avec $_SESSION

Résolu/Fermé
Rabi - Modifié par Rabi le 10/03/2015 à 00:46
 Rabi - 10 mars 2015 à 00:59
Le problème ici ce que j'aurai une erreur "mysqli_num_rows(): Couldn't fetch mysqli_result in" il dépasse pas la condition "if" et quand je met print_r($req) ou un var_dump($req) pour voir qu'est ce qu'elle contient la requête j'aurai un message d'erreur pareil "mysqli_result Object
Warning: print_r(): Couldn't fetch mysqli_result in", vu que ma requête va bien.
Alors là, je ne comprend pas c'est quoi le problème quand je veux récupérer la requête sauvegarder dans la SESSION.
QU'EN PENSEZ VOUS?

/***************page de traitement******************/
$sql = "ma requête qui marche bien, déjà tester avec PHPMyAdmin";
$req = mysqli_query($conn, $sql);
$_SESSION['exemple'] = $req;
header("Location: destination.php");
//mysqli_close($conn) : ajouter ou non reste pareil
mysqli_close($conn);
//**********************************************
/***************page destination******************/
if (isset($_SESSION['exemple']) ) {
$req = $_SESSION['exemple'];
         
 // On recupere 
       if (mysqli_num_rows($req) > 0) {
            while($data = mysqli_fetch_assoc($req)) {
?>
           <tr>
  <td>
  <a href=""><?php echo $data['donnee1'] ; ?></a>
                </td>
          </tr>
<?php 
          }
       }
}
?>

1 réponse

jordane45 Messages postés 38353 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 décembre 2024 4 719
Modifié par jordane45 le 10/03/2015 à 00:28
Bonjour,

Perso.. je n'aime pas utiliser les sessions pour passer des resultats de requêtes.... mais bon.. c'est un choix personnel.

par contre.. tu stockes le résultat de ta requête dans
$_SESSION['exemple']
... mais après.. tu la lis depuis la variable
$req = $_SESSION['utilisateurs_list'];

Le souci est là non ??

Par contre, histoire de ne pas promener ton objet (le resultat de ta requête...) je serais toi.. je la stockerai directement dans un array.

Page de traitement
<?php
//activation des SESSIONS si pas déjà présentes:
if(session_id() == '' || !isset($_SESSION)) {
    // session isn't started
    session_start();
}
/***************page de traitement******************/

$sql = "ma requête qui marche bien, déjà tester avec PHPMyAdmin";
$req = mysqli_query($conn, $sql);
$result = array();
 while($row= mysqli_fetch_assoc($req)) {
   $result[] = $row;
 }
$_SESSION['exemple'] = $result;
//mysqli_close($conn) : ajouter ou non reste pareil
mysqli_close($conn);
header("Location: destination.php");


<?php
//activation des SESSIONS si pas déjà présentes:
if(session_id() == '' || !isset($_SESSION)) {
    // session isn't started
    session_start();
}
/***************page destination******************/

$req = isset($_SESSION['exemple'])?$_SESSION['exemple']:NULL;
if($req){
 foreach ($req as $data){
    echo '<tr>
            <td class="cart_product">
               <a href="">'. $data['donnee1'] .'</a>
             </td>
            </tr>';
     }
  }

?>





Cordialement,
Jordane
1
Bonjour jordane45,

C'était pas exprès pour
$req = $_SESSION['utilisateurs_list'];
juste j'ai oublié de modifier "utilisateurs_list" par "exemple", ni celui de l'activation de la session.

Merci c'est résolu grâce à vous.
0