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

Langage PHP Discussion :

[Tableaux] Comment initialiser un tableau de deux dimensions via mysql ?


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Points : 143
    Points
    143
    Par défaut [Tableaux] Comment initialiser un tableau de deux dimensions via mysql ?
    Bonjour tout le monde,

    J'essaie d'initialiser mon tableau "$table_ref" de deux dimensions par un select (mysql).

    Hélas, je n'arrive pas avec le code suivant:

    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
    <?
     
    // Parametres mysql 
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
    define('DB_SERVER_PASSWORD', 'password'); // mot de passe
    define('DB_DATABASE', 'test'); // nom de la base
     
    // Connexion au serveur mysql
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, 
    DB_SERVER_PASSWORD) or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db(DB_DATABASE, $connect);
     
    $sql = "SELECT pri_id, pri_name FROM bo_priority" ;
    $result = mysql_query ( $sql ) ;
    $table_ref = array() ;
    while ( $row = mysql_fetch_assoc ( $result ) )
    {
    $table_ref[] = $row[0], $row[1]  ;
    }
    ?>

    De ce fait, avez-vous une idée.

    Merci d'avance.

    Yves

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Points : 216
    Points
    216
    Par défaut
    mysql_fetch_assoc permet de récupérer les données par leur champ (_assoc comme tableau associatif)
    mais permet il de récupérer les données par leur rang dans la requête (0 1 ..2) comme mysql_fetch_row?

    c'est ma première question, avant que je réfléchisse plus

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?
    [...]
    $i = 0;
    while ( $row = mysql_fetch_array ( $result ) ){
        $table_ref[$i][0] = $row['pri_id'];
        $table_ref[$i][1] = $row['pri_name'];
        $i++;
    }
    ?>
    As-tu essayé cela ?

  4. #4
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Points : 143
    Points
    143
    Par défaut
    A première vue cela ne fonctionne pas!
    J'ai essayé d'afficher les valeurs (suite à ton message) avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach($table_ref as $cle=>$valeur)
        {
        echo $cle.' : '.$valeur.'<br>';
        }
    Mais je n'obtiens rien (ma page reste vierge) !

    Ai-je oublié quelque chose ?

    Yves

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Fait plutôt un :

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Salut,


    Pour faire ce que tu souhaites, voici la solution la plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql = "SELECT pri_id, pri_name FROM bo_priority" ;
    $result = mysql_query ( $sql ) ;
    $table_ref = array() ;
    while ( $row = mysql_fetch_assoc ( $result ) )
         $table_ref[] = $row;

    A titre informatif, tu pourrais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while ( $row = mysql_fetch_assoc ( $result ) )
         $table_ref[] = array( $row["pri_id"] , $row["pri_name"] );
     
    while ( $row = mysql_fetch_assoc ( $result ) )
         $table_ref[] = array( 0=>$row["pri_id"] , 1=>$row["pri_name"] );
     
    while ( $row = mysql_fetch_assoc ( $result ) )
         $table_ref[] = array( "pri_id"=>$row["pri_id"] , "pri_name"=>$row["pri_name"] );
    ect ect. Je te laisses voir les pages de man pour les explications, ou pour trouver d'autres méthodes.
    Ce qui est certain ce que le résultat sera très similaire.

    bye

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Maj de mon code, ça devrait aller mieux :p

  8. #8
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Points : 143
    Points
    143
    Par défaut
    Merci à vous tous, cela fonctionne correctement.

    Yves

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

Discussions similaires

  1. initialiser a tableau de deux dimension
    Par can48yous dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 20/06/2008, 10h44
  2. [Tableaux] Tableau de deux dimensions
    Par kuja2053 dans le forum Langage
    Réponses: 4
    Dernier message: 14/03/2007, 10h13
  3. [Tableaux] taille tableau a deux dimensions
    Par nath-0-0 dans le forum Langage
    Réponses: 2
    Dernier message: 24/08/2006, 18h04
  4. Réponses: 6
    Dernier message: 26/11/2005, 19h55
  5. Réponses: 13
    Dernier message: 13/10/2005, 16h03

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