Salut all,

J'ai un probleme avec une requete preparee qui fonctionne sans probleme, mais que je n'arrive pas a controler quand elle est hors zone.
Je m'explique
Disons que j'ai une table avec 100 enregistrements et une requete sql pour afficher les informations d'1 enregistrement par $val_numid
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$sql = 'SELECT *
            FROM ' . MA_TABLE . '
            WHERE table_id = ?';
$stmt = mysqli_prepare($ConnexionBdD, $sql);
mysqli_stmt_bind_param($stmt, 'i', $val_numid);
mysqli_stmt_execute($stmt);
$leresultat = mysqli_stmt_get_result($stmt);
 
if ($leresultat)
{
     while($row = mysqli_fetch_assoc($leresultat))
     {
           // ici la procedure d'affichage
      }
else
{ // ici pas de resultat (enfin normalement mais ne viens jamais)  }
mysqli_stmt_close($stmt);
Alors tout est ok si $val_numid est entre 1 et 100.

Mais si je definis $val_numid avec une valeur hors zone (disons 200), je n'ai pas d'erreur car $leresultat n'est pas vide avec ces infos (object(mysqli_result)#6 (5) { ["current_field"]=> int(0) ["field_count"]=> int(41) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) })
Et ca m'affiche une page vierge de donnees (hors template)

Donc ma question : Comment faire pour éviter cela et/ou savoir si $leresultat est bien vide ou pas ?

En vous remerciant par avance.