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 :

Simplification code tableau


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 29
    Points
    29
    Par défaut Simplification code tableau
    Bonjour tout le monde,

    Je ne suis pas trés fort en PHP mais il n'y a que celui qui ne fait rien qui ne se trompe pas.

    Ma problématique : Récupérer une valeur (juste une) qui est dans ma BDD, mais le probléme c'est que je n'arrive pas à passer outre que par un tableau ; voici mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    RecupID();
    function RecupID()
    {
    	try
    	{
    		$bdd = new PDO('mysql:host=localhost;dbname=TOTO;charset=utf8', 'USER', 'PASSWORD');
    	}
    	catch(Exception $e)
    	{
    		die('Erreur : '.$e->getMessage());
    	}
     
    	$reponse = $bdd->query('SELECT IDMoulin FROM Moulins WHERE CodeMoulin=11');
     
    	//echo $reponse[0];
     
    	foreach($reponse as $element)
    	{
    		//print_r ($element);
    		$a=($element);
    	}
     
    	echo $a[0];
    }
    ?>
    Comme vous pouvez le voir je passe par un tableau parcouru par un foreach juste pour mettre dans une variable la valeur que je veux récupérer.

    N'y a t il pas un moyen plus simple ? (je suis sur que si )

    J'ai essayé de faire un echo $reponse[0]; mais ça ne fonctionne pas de je ne comprend pas bien pourquoi par ailleurs, à moins que ce soit un tableau dans un tableau?! mais visiblement non car echo $reponse[0][0]; ne fonctionne pas non plus.

    Merci par avance pour vos clarifications

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Bonjour,

    Cela fait un moment que je n'ai pas touché à PDO PHP. Cependant, le plus simple pour voir le contenu d'une variable est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($ma_variable);
    Documentation correspondante : var_dump

    Pour la sélection simplifié, il me semble qu'il y a un très bon tutoriel ici : Comprendre PDO

    La section qui semble d'intéressé est :
    a. Trouver le nombre de lignes retournées
    Note : Il y a des var_dump dans les exemples


    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Comme c'est du PDO et du MySQL, autant faire dans les règles de l'Art

    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
     
    function RecupID()
    {
        try {
            $bdd = new PDO('mysql:host=localhost;dbname=TOTO;charset=utf8', 'USER', 'PASSWORD');
        } catch (Exception $e) {
            die('Erreur : ' . $e->getMessage());
        }
     
        $sql = 'SELECT IDMoulin FROM Moulins WHERE CodeMoulin = ? LIMIT 1';
        $e = $bdd->prepare($sql);
        $e->execute([11]);
        $result = $e->fetch(PDO::FETCH_ASSOC);
     
        echo $result['IDMoulin'];
     
    }
     
    ?>

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 84
    Points : 83
    Points
    83
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach($reponse as $element)
    {
    	//print_r ($element);
    	$a=($element);
    }
    en faisant ça tu ne récupère que la dernière valeur de ton array $reponse, pour chaque valeur dans $reponse tu écrases la précédente.

    pour ne pas écraser et mettre à la suite il faut faire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    foreach($reponse as $element)
       $a[]=$element;
    après si je ne me trompe pas tu peux récupérer tes valeurs directement en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_dump($reponse[$l_id_de_ton_array]);
    un foreach ne te sera pas vraiment utile vu la requête si je ne me trompe pas

    et je n'ai pas testé mais si tu veux avoir un array id => value,
    tu peux essayer ça je pense vu que tu ne veux que les résultat d'une colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($reponse as $element)
                foreach($element as $value)
                    $a[]=$value;
    var_dump($a);
    Sans pomme nous n'aurions jamais découvert la gravité... Sans tête Non plus.

Discussions similaires

  1. [XL-2003] Simplification code VBA
    Par jackborogar dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/04/2012, 10h55
  2. [AC-2003] Simplification code débutant
    Par cycnus89 dans le forum VBA Access
    Réponses: 1
    Dernier message: 20/02/2011, 18h12
  3. [AC-2007] Simplification code choix multicritères
    Par christophe31 dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/03/2010, 09h18
  4. [XL-2003] Simplification code VBA généré par enregistreur de macro
    Par altra dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/08/2009, 11h47
  5. [XSLT] Erreur partielle - Simplification Code ?
    Par Sam 069 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 13/04/2007, 11h45

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