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écupérer chaque colonne d'une requête


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Points : 61
    Points
    61
    Par défaut Récupérer chaque colonne d'une requête
    Bonjour,

    Je voudrais récupérer chaque colonne de ma requête dans un array :

    Je voudrais obtenir un array du type:
    array(
    1=>('7193, 6045, 8571, 6921, 7468, 6565, )
    2=>('1, 1, 1, 0.9935, 0.9872, 1, )
    etc...
    Avec la fonction getColumn() je n'arrive à récupérer que la première valeur de chaque colonne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    $resultat = array();
     
     
    	for($i=0;$i<$interDate; $i++)
    	{
    		$resultat[$i] = $valeurs->fetchColumn($i);
     
    		print("$i -> $resultat[$i]<br/>");
    	}
     
    ?>
    Pouvez-vous me proposer une solution à mon problème svp?

    Merci,
    Bilal
    Images attachées Images attachées  

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    A adapter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $con=mysql_connect("host","user","pass")//se connecter a la machine avec un user un mot de passe
     
    $bdd=mysql_select_db("nom de la bdd",$con);//se connecter a la bdd 
    $req=mysql_query("select * from toto")//fiare une requete sql sur la table
    $i=0; 
    while($ligne=mysql_fetch_row($req)){ 
       //tu recupere les donnees selon le nombre de colonne de ta table 
       $tab[$i][1]=$ligne[champ1]; 
       $tab[$i][2]=$ligne[champ2]; 
       $tab[$i++][3]=$ligne[champ3]; 
    }
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Points : 61
    Points
    61
    Par défaut
    Merci de ta réponse.

    Il n'y a pas une erreur dans le code que tu m'as passé?
    au niveau de $tab[$i++]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // Je fais la connexion en PDO
    $valeurs = $kpi->query($req);
    $tab = array();
    $i=0
    while($ligne=mysql_fetch_row($valeurs)){ 
       $tab[$i][1]=$ligne[champ1];
       $tab[$i][2]=$ligne[champ2]; 
       $tab[$i][3]=$ligne[champ3];
       $i++;
    }
    Avec ce code je ne récupère rien dans le array $tab.



    Merci,
    Bilal

  4. #4
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Manque peut être $tab[$i]=array();Sinon, c'est au niveau de la requête que ça coince !!
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Points : 61
    Points
    61
    Par défaut
    Ma requête fonctionne puisque je l'utilise dans le code plus bas!
    Je ne comprends pas!

    EDIT : J'arrive à récupérer les valeurs de la première colonne avec ce code :

    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
     
    	$tab = array();
    	$valTab = array();
    	//$nbTables comme son nom l'indique représente le nombre de tables concernées
     
    	for($j=0;$j<$nbTables;$j++)
    	{
    		$i=0;
    		while($val = $valeurs->fetch())
    		{
    			$tab[$j] .= $val[0].", ";
    			$i++;
    		}
    	}
    	print_r($tab);

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    La, tu n'utilises pas de matrice !! j'aurais plutôt fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	//$nbTables comme son nom l'indique représente le nombre de tables concernées
     
    // Je fais la connexion en PDO
    $valeurs = $kpi->query($req);
    $tab = array();
    $i=0
    while($ligne=mysql_fetch_row($valeurs)){
       for($j=0;$j<$nbTables;$j++)
           $tab[$j][$i]=$ligne[$j];
       $i++;
    }	
    print_r($tab);
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Points : 61
    Points
    61
    Par défaut
    Je crois que la fonction mysql_fetch_row ne fonctionne pas chez moi
    J'utilise PDO c'est peut être pour ca?

    EDIT : C'est bon!

    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
     
    $tab = array();
    $temp="";
    $monTab = $valeurs->fetchAll(PDO::FETCH_NUM);
     
    for($i=0;$i<$nbTables;$i++)
    {
    	for($j=0; $j<$interDate; $j++)
    	{
    		$temp .= $monTab[$j][$i].", ";
    		$tab[$i] = $temp;
    	}
     
    	$temp="";
    }
    print_r($tab);

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/01/2010, 15h24
  2. Réponses: 0
    Dernier message: 11/01/2010, 11h31
  3. Récupérer le nombre de colonne d'une requête
    Par Buell dans le forum PL/SQL
    Réponses: 2
    Dernier message: 13/08/2009, 17h44
  4. Réponses: 2
    Dernier message: 20/11/2008, 18h09
  5. récupérer chaque ligne d'une requête ?
    Par ctobini dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 10/11/2005, 09h15

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