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 :

Remplir un Array avec une Requete MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut Remplir un Array avec une Requete MySQL
    Bonjour,

    J'aimerais remplir un Array depuis une Requete Mysql afin d'avoir mes variables définies à la volée en fonction des données d'une table.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INSERT INTO `infos` (`id_infos`, `info_titre`, `info_valeur`) VALUES
    (1, 'titlesite', 'TITRE DU SITE'),
    (2, 'meta_description', 'META DESCRIPTION'),
    (3, 'google_publisher', 'google_publisher'),
    (4, 'facebook_page', 'valeur facebook_page'),
    (5, 'meta_author', 'meta_author'),
    (6, 'youtube', 'youtube'),
    (7, 'meta_keywords', 'meta_keywords');
    voici mon code, mais je ne boucle pas 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
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
     
    $infos = array();
    $req = $bdd->query('SELECT * from infos');
    while ($donnees = $req->fetch())
    {
    	$infos[] = array($donnees['info_titre'] => $donnees['info_valeur']);
    }
    print_r($infos);
    Ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Array
    (
        [0] => Array
            (
                [titlesite] => TITRE DU SITE
            )
     
        [1] => Array
            (
                [meta_description] => META DESCRIPTION
            )
    J'aimerais en fait pour voir appeler une variable directement avec par exemple : $infos[titlesite]

    Pourriez vous m'éclairer ?
    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $infos = $req->fetch(PDO::FETCH_ASSOC);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $infos = $req->fetchAll(PDO::FETCH_ASSOC);
    A+.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    En fait, c'est plutôt :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    while ($donnees = $req->fetch())
    {
    	$infos[ $donnees['info_titre'] ] = $donnees['info_valeur']);
    }

    Et tu as tes variables :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    echo $infos['titlesite'];
    echo $infos['meta_description'];
     
    ....

    N.B. Actuellement, tu vas faire appel à la BD et les redéfinir à chaque (changement de) page ?
    Non.

    Tu peux le faire une fois pour toute à l'arrivée du visiteur sur le site, en utilisant des SESSION.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php session_start();
    function config_session_infos()
    {
     if( empty($_SESSION['infos']) ){  // une seule fois
       $_SESSION['infos'] = array(); // initialisation
       // ICI, connexion + requête
       // ...
       // définition des variables
       while ($donnees = $req->fetch())
       {
    	$_SESSION['infos'][ $donnees['info_titre'] ] = $donnees['info_valeur']);
       }
     }
    }

    Et tu as tes variables (utilisables partout !):
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php 
    config_session_infos();
     
    echo $_SESSION['infos']['titlesite'];
    echo $_SESSION['infos']['meta_description'];
     
    ....
    Dernière modification par Invité ; 15/09/2016 à 20h50.

Discussions similaires

  1. [Débutant] Remplir ListView avec une requete SQL server
    Par theuma dans le forum Accès aux données
    Réponses: 2
    Dernier message: 02/05/2013, 10h32
  2. [Etats & Requêtes] Remplir un état avec une requete
    Par fozzeuh dans le forum WinDev
    Réponses: 4
    Dernier message: 25/10/2010, 15h43
  3. c# remplir une listbox avec une requete sql
    Par noobyyy dans le forum C#
    Réponses: 2
    Dernier message: 13/06/2009, 20h44
  4. [MySQL] Remplir un array() avec des données issues d'une bdd
    Par fichtre! dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/12/2006, 17h03
  5. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29

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