Bonjour,
J'utilise une fonction qui renvoi le résultat d'une requête SELECT sous forme d'un tableau HTML, avec une requête en dur pas de soucis ma fonction fonctionne à merveille, mais j'ai maintenant besoin de l'utiliser avec une requête préparée et c'est là que les choses se corsent.
Je voudrait pouvoir appeler la même fonction show_table si possible, je cherche juste comment lui transmettre une requête préparée
Voici mon code fonctionnel (MARCHE PARFAITEMENT BIEN) :
Voici ma fonction :
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
18
19
20
21
22
23
24
25
26
27
28
29
30 <?php /* ------------------------------ */ /* Affichage des Bons de commande */ /* ------------------------------ */ /* Inclusion des fonctions */ include_once('include/fonction.inc.php'); /* Connexion à la base de données */ include_once('include/connexion.inc.php'); /* Création de la requête SQL */ $sql = 'SELECT * FROM `bon` ORDER BY id_BON'; /* Affichage du nombre d'enregistrement */ if($result = $link->query($sql)){ $n = $result->num_rows; printf("<p>Nombre d'enregistrements : %d</p>",$n); $result->close(); } /* Affiche le résultat d'une requête sous forme de tableau HTML */ if($result = $link->query($sql)){ show_table($result); $result->close(); } /* Ferme la connexion à la base de donné */ $link->close(); ?>
J'ai cherché à modifier le code de ma page de la manière suivante :
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
18
19
20
21
22
23
24
25 <?php /* Fonction qui affiche le résultat d'une requête sous forme de tableau HTML */ function show_table($result){ if(!$result) { echo"<p>Résultat de requête invalide.</p>\n"; return; } if($result->num_rows>0 && $result->field_count>0){ echo "<table>"; /* Description de la colonne */ echo "<tr>"; foreach($result->fetch_fields() as $meta) printf("<th>%s</th>", htmlspecialchars($meta->name)); echo "</tr>\n"; /* Contenu du tableau */ while($row = $result->fetch_row()){ echo "<tr>"; foreach($row as $col) printf("<td>%s</td>", htmlspecialchars($col)); echo "</tr>\n"; } echo "</table>\n"; } }?>
Concaténation d'une variable dans ma requête SQL :
Mais sans succès la requête ne me renvoie rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 /* Création de la requête SQL */ $sql = "'SELECT * FROM `bon` WHERE utilisateur_BON=`".$_SESSION['id_UTILISATEUR']."`'";
et aussi avec une requête préparée :
Mais là je ne sais pas comment adapter mon code après car je ne peux plus utiliser
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
18
19
20
21
22 <?php /* ------------------------------ */ /* Afficahge des Bons de commande */ /* ------------------------------ */ /* Inclusion des fonctions */ include_once('include/fonction.inc.php'); /* Connexion à la base de données */ include_once('include/connexion.inc.php'); /* Création de la requête */ $sql = 'select * FROM `bon` where utilisateur_BON=?'; /* Préparation de la requête */ $rqp = mysqli_prepare($link, $sql); /* Affectation des paramètres */ mysqli_stmt_bind_param($rqp,"s", $_SESSION['id_UTILISATEUR']); /* Execution de la requête */ mysqli_stmt_execute($rqp); [???] ?>vu que j'ai déjà exécuté la requête !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part if($result = $link->query($sql))
Merci d'avance pour vos conseils avisés![]()
Partager