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 :

array avec les resultats de 2 colonnes


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Par défaut array avec les resultats de 2 colonnes
    Bonjour,

    Je cherche la syntaxe pour creer un array avec les resultats de 2 colonnes.

    Pour l'instant j'ai fais cela mais ca ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $result = mysql_query("SELECT Distinct ville,pays FROM  menu1 ");
    while ($row = mysql_fetch_assoc($result)) {
       		$info[]=$row['ville']['pays'];
    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $info = array();
    $index = 0;
    while ($row = mysql_fetch_assoc($result)) {
      $info[$index]['ville'] = $row['ville'];
      $info[$index]['pays'] = $row['pays'];
      $index++;
    }

  3. #3
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Comme ceci aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $result = mysql_query("SELECT Distinct ville,pays FROM  menu1 ");
    while ($row = mysql_fetch_assoc($result)) {
        $info[]=$row;
    }
    Ceci revient (normalement) à faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $result = mysql_query("SELECT Distinct ville,pays FROM  menu1 ");
    while ($row = mysql_fetch_assoc($result)) {
        $info[]= array('ville' => $row['ville'], 'pays ' => $row['pays']);
    }
    En faite, $row n'est pas un tableau à 2 dimensions mais à 1 dimension (avec plusieurs valeurs).
    Les valeurs de $row (couples clés/valeurs) changent à chaque tour de boucle.

    Aussi, les fonctions mysql_* ne permettent pas de récupérer d'un coup (sans boucle) toutes les données d'une requête.
    Par contre, si tu utilisais PDO ou MySQLi (qui au passage est recommandé) il aurait été possible de le faire, genre : $stmt->fetchAll().

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Par défaut
    Merci pour les reponses mais cela ne fonctionnais pas car j'obtenais le resultat suivant :

    Array ( [0] => Array ( [ville] => Montréal [pays ] => Canada ) [1] => Array ( [ville] => Gaspé [pays ] => Canada )

    et ce que je voulais c'etait :

    Array ( [0] => Montréal Canada [1] => Gaspé Canada [2] => OttawaCanada [3] => KyÅtoJapon

    du coup j'ai fais ceci mais il iy a peut etre plus simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while ($row = mysql_fetch_assoc($result)) {
       		$info1=$row['pays'];
    		$info2=$row['ville'];
    		$info3 = " (";
    		$info4 = ")";
    		$info[]=$info2 .= $info3 .= $info1 .= $info4;
    Merci de votre aide

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Il aurait fallut donner l'exemple, on ne pouvait pas le deviner.

    Tu crée des variables de trop à mon sens.
    De plus, tu mets des .= (point égal) alors qu'un . (point) suffit.
    Un .= est en règle général fait pour cumuler (et non juste concaténé) ce qui n'est pas le cas car toutes les variables sont réinitialisés à tour de boucle.

    Plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($row = mysql_fetch_assoc($result)) {
    	$info[] = $row['ville'].' ('.$row['pays'].')';
    }

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Par défaut
    Genial merci beaucoup

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

Discussions similaires

  1. [AC-2007] Regrouper/fusionner/créer, une table/colonne avec les données d'autres colonnes
    Par Crachover dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/03/2014, 14h39
  2. Séparer les resultats d'une colonne
    Par YoshV dans le forum Doctrine2
    Réponses: 10
    Dernier message: 28/02/2012, 16h32
  3. [MySQL] Ressortir un tableau avec les resultats d'une requete
    Par franco14 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/03/2010, 09h55
  4. Réponses: 3
    Dernier message: 16/04/2009, 22h17
  5. Réponses: 2
    Dernier message: 11/01/2007, 12h56

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