Résultat d'une requête préparée dans tableau html
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) :
Code:
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();
?> |
Voici ma fonction :
Code:
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";
}
}?> |
J'ai cherché à modifier le code de ma page de la manière suivante :
Concaténation d'une variable dans ma requête SQL :
Code:
1 2
| /* Création de la requête SQL */
$sql = "'SELECT * FROM `bon` WHERE utilisateur_BON=`".$_SESSION['id_UTILISATEUR']."`'"; |
Mais sans succès la requête ne me renvoie rien.
et aussi avec une requête préparée :
Code:
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); [???] ?> |
Mais là je ne sais pas comment adapter mon code après car je ne peux plus utiliser
Code:
if($result = $link->query($sql))
vu que j'ai déjà exécuté la requête !!! :cry:
Merci d'avance pour vos conseils avisés ;)