IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Résultat d'une requête préparée dans tableau html [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 4
    Par défaut 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 : 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();
    ?>
    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
    <?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 : 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']."`'";
    Mais sans succès la requête ne me renvoie rien.
    et aussi avec une requête préparée :
    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); [???] ?>
    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
    if($result = $link->query($sql))
    vu que j'ai déjà exécuté la requête !!!

    Merci d'avance pour vos conseils avisés

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Tu ne devrais pas créer une table HTML directement à partir d'une ressource MySQL mais à partir de ses données, justement pour t'éviter ce genre de problème.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 4
    Par défaut [RESOLU]
    J'ai résolu mon soucis de la manière suivante :
    Concaténation de ma variable dans ma requête SQL :
    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
    31
    32
    33
    <?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');
     
    /* On récupère le nom de l'utilisateur */
    $utilisateur_BON = $_SESSION['id_UTILISATEUR'];
     
    /* Création de la requête SQL */
    $sql = "SELECT * FROM `bon` where utilisateur_BON='$utilisateur_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();
    ?>
    Si ça peut servir à d'autres...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.0] Copier le résultat d'une requête mysql dans un autre tableau PHP
    Par Didier100 dans le forum Langage
    Réponses: 6
    Dernier message: 30/05/2012, 23h59
  2. récupérer le résultat d'une requête mysql dans un tableau en java
    Par RouRa22 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 08/01/2011, 22h36
  3. [PHP 5.2] Affichage du résultat d'une requête SQL dans un tableau indenté
    Par ratatam25 dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2009, 16h50
  4. Réponses: 15
    Dernier message: 11/05/2007, 15h28
  5. [Conception] Résultat d'une requête PHP dans un tableau avec lien ?
    Par DjMaC dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/04/2006, 20h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo