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 :

Convertir un Array en integer [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Par défaut Convertir un Array en integer
    Voilà mon intitulé parrait plutôt simple cependant après avoir testé toutes les solutions possible, toujours le même résultat !

    Voici la partie du code en question :
    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
     
            $client = new SoapClient($serverurl);
            $enrolment = new stdClass();
     
            //Récupération de l'userid
            $req = $bdd->prepare('select id from mdl_user where idnumber = :idnumber');
            $req->bindValue(':idnumber', $apprenant->Code);
            $req->execute();
            $userid = $req->fetchAll(PDO::FETCH_ASSOC);
            settype($userid, 'int');
     
            //Récupération du courseid
            $req = $bdd->prepare('select id from mdl_course where idnumber = :idnumber');
            $req->bindValue(':idnumber', $apprenant->UNC_CODE);
            $req->execute();
            $courseid = $req->fetchAll(PDO::FETCH_ASSOC);
            settype($courseid, 'int');
     
            // Intégration des valeurs
            $enrolment->userid = $userid;
            $enrolment->roleid = 5; //Mise en place tu rôle par défaut à 5 = student
            $enrolment->courseid = $courseid;
     
            $params = array($enrolment);
            var_dump($params);
    Et voila le résultat que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    array
      0 => 
        object(stdClass)[7]
          public 'userid' => int 1
          public 'roleid' => int 5
          public 'courseid' => int 1
    A chaque fois il me met "int 1" au lieu de me marqué le resultat ! Comment faire ?

  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
    Par défaut
    Bonjour,

    Et settype c quoi et comment elle fonctionne ?

  3. #3
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Si tu ne veux que le premier Id, tu peux faire comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $stmt = $bdd->prepare('select id from mdl_user where idnumber = :idnumber');
    if (!$stmt->execute(array('idnumber' => $apprenant->Code)))
      throw new RuntimeException('Query error');
     
    $courseid = (int)$stmt->fetchColumn();
    Le résultat du var_dump t'affichera toujours le type suivi de la valeur mais ne t'inquiète pas, le type n'est pas dans la valeur.

    @french

    settype sert juste à faire un cast.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    settype($a, 'int');
    // équivaut à
    $a = (int)$a;

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Par défaut
    Bonjour Fench,

    Settype est une fonction PHP permettant de convertir une variable.
    Ici, j'essaye de la convertir en Integer.

  5. #5
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    PDOStatement::fetchAll renvoie toujours un tableau à 2 dimensions s'il existe des résultats, la première dimension sont les lignes, la deuxième sont les colonnes.

    Dans ton cas, tu ne veux pas ça, tu veux utiliser fetchColumn comme je t'ai montré. Tu ne devrais vraiment pas caster un tableau en scalaire.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Par défaut
    J'ai essayé ta solution Benj :p et sa marche du feu de Dieu :d.

    Comment dire !!! MERCIII :d

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

Discussions similaires

  1. [Débutant(e)]Convertir un string en integer
    Par BernardT dans le forum Langage
    Réponses: 8
    Dernier message: 20/07/2010, 14h40
  2. convertir type datarow en integer
    Par mouchkar dans le forum ASP.NET
    Réponses: 3
    Dernier message: 28/03/2007, 13h05
  3. [Delphi 7] Array contre integer
    Par Droïde Système7 dans le forum Delphi
    Réponses: 9
    Dernier message: 12/07/2006, 14h55
  4. Réponses: 4
    Dernier message: 29/12/2005, 17h51
  5. convertir un Double en integer
    Par amelhog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/08/2005, 09h08

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