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 :

Récupérer les valeurs de la première colonne d'une table dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut Récupérer les valeurs de la première colonne d'une table dans un tableau
    Bonsoir,

    J'ai la requête suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $select = 'SELECT * from table';
    J'affiche avec cette requête les éléments de ma table dans ma page.
    J'aimerais récupérer les éléments de la première colonne de ma table dans un tableau (array) mais je suis bloquée.
    Pouvez-vous m'aider?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Qu'est ce qui te gêne ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Dans PHP, il y a la fonction mysql_fetch_array() qui place les enregistrements résultats de la requête dans un tableau.
    Mais il n'y a pas de fonction qui récupère les colonnes résultats de la requête.
    J'ai écrit 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
     
    $select = 'SELECT * from table';
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
     
        while($row = mysql_fetch_array($result)) {
    	?>
     
    	  <tr> 
     
    	   <td><b><?php echo $row["identifiant"] ?></b></td>
        <td><b><?php echo $row["Designation"] ?></b></td>
    	  <td><b><?php echo $row["Prix"] ?></b></td>
        </tr>
     
    	<?php }
    Après j'ai compté le nombre de lignes et j'ai mis ce nombre dans la variable $total.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $total = mysql_num_rows($result);
    L'idée m'est venue de faire une boucle, mais je suis coincée là et j'ai besoin d'un peu d'aide.

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    vraiment ton problème n'est pas claire !!!
    tu veux récupérer les noms des clones et les affichés dans la table ?

  5. #5
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Points : 683
    Points
    683
    Par défaut
    Bonsoir,

    A quoi servira la boucle ?

    A bientôt,
    Alexis
    J'aimerais mieux être le premier dans ce village que le second à Rome. (Caius Julius Caesar)

    J'ai aussi un site sur la Grande Guerre: Histoires de Poilus

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 26
    Points
    26
    Par défaut
    Tu devrais créer un tableau vide avant la boucle.

    Pendant la boucle, tu remplis le tableau ligne par ligne avec les valeurs de la colonne que tu veux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau[] = $row['premiere_colonne'];
    Lorsque la boucle est finie, $tableau contient toutes les valeurs de la première colonne.

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Alors, j'ai une table comme suit:
    id-produit |designation|prix
    1 | ballon |15
    2 | poupée | 30
    3 | peluche | 25

    j'ai fait une boucle qui met les valeurs de la première colonne (id_produit) dans un tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $tableau[]=array();
    for ($i=0; $i<$total; $i++)
    {
    $tableau[] = mysql_result($result,$i);
     }


    Maintenant, j'ai une table ligne_commande qui contient deux colonnes: num_commande et id_produit.
    J'ai par exemple récupéré les 3 valeurs de la première colonne dans mon tableau $tableau.
    J'aimerai enregistrer ces valeurs dans ma table ligne_commande comme suit:
    num_commande | id_produit
    1 | 1
    1 | 2
    1 | 3

    Pouvez-vous m'aider?

  8. #8
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Points : 117
    Points
    117
    Par défaut
    Bonjour
    On va réitérer la question différemment...

    redis nous :
    1) ce que tu veux faire
    2) qu'est ce qui cloche dans ce que tu a fait ( en comparaison avec le résultat voulu)

  9. #9
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Bonjour,
    Je vais essayer de simplifier les choses, j'ai une page php qui affiche les donnés d'une table "table" dans un tableau dynamique et qui récupère les valeurs de la première colonne pour les enregistrer dans une table "ligne_commande".
    J'ai réussi à récupérer ces valeurs dans un tableau $tableau (voir le code que j'ai mis).
    Maintenant, je veux enregistrer les valeurs de ce tableau dans la table "ligne_commande" qui contient deux colonnes: num_commande et id_produit qui sont tous les deux des clès primaires.
    Les valeurs du tableau auront tous le même num_commande, qui est un numéro aléatoire.
    J'ai écrit le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $j=rand();
    for ($i=0; $i<$total; $i++)
    {
    $tableau[] = mysql_result($result,$i);
    } 
     
     for($k=1; $k< $total+1;$k++) {
     $select="INSERT INTO ligne_commande ( num_commande, id_produit) values ($j,'". $tableau[$k]."')";
     $result= mysql_query($select,$link)or die("Erreur lors de l'enregistrement");
    }
    Mais rien ne se produit.
    J'ai donc modifié mon code pour tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $j=rand();
    for ($i=0; $i<$total; $i++)
    {
    $tableau[] = mysql_result($result,$i);
    } 
     
     for($k=1; $k< $total+1;$k++) {
     $select="INSERT INTO ligne_commande ( num_commande, id_produit) values ($j,$k)";
     $result = mysql_query($select,$link)or die("Erreur lors de l'enregistrement");
    }
    Mais pas d'enregistrement non plus et même l'erreur n'apparaît pas.
    La requête est correcte, je l'ai testée.
    J'espère que j'ai été claire et que quelqu'un viendra à mon aide.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 26
    Points
    26
    Par défaut
    Salut,

    Ceci ne nécessite pas PHP. Cette requête fait ce que tu désires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table_deux (num_commande, id_produit) SELECT ROUND(9999*RAND()), premier_champ FROM table_un
    Cordialement

  11. #11
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Merci louperivois, mais j'ai un problème: table 1 et table2 viennent de deux différentes bases de données.
    Sais-tu comment le contourner?

  12. #12
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 26
    Points
    26
    Par défaut
    Salut,

    Le plus simplement du monde, en spécifiant les tables au format : base.table

    Louperivois

  13. #13
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Salut,

    ça marche
    ça faisait plus d'une semaine que je cherchais une solution à ce problème, tu m'a rendu un grand service, merci beaucoup.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/02/2014, 14h43
  2. Réponses: 1
    Dernier message: 15/03/2012, 17h54
  3. [MySQL] Liste de colonnes d'une table dans un tableau
    Par gianni7033 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 26/07/2009, 03h51
  4. Réponses: 2
    Dernier message: 11/12/2006, 12h38
  5. Réponses: 4
    Dernier message: 05/01/2006, 20h29

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