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 :

Choix entre deux fonctions [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut Choix entre deux fonctions
    bonjour,
    je souhaite comprendre pk dans le code ci on relie la variable id a la valeur i AVEC le bind_param?

    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
    <?php
    public function getUnique($id)
            {
                $id = (int) $id;
     
                $requete = $this->db->prepare('SELECT id, auteur, titre, contenu, DATE_FORMAT (date_ajout, \'le %d/%m/%Y à %Hh%i\') AS date_ajout, DATE_FORMAT (date_modif, \'le %d/%m/%Y à %Hh%i\') AS date_modif FROM news WHERE id = ?');
                $requete->bind_param('i', $id);
                $requete->execute();
     
                $requete->bind_result($id, $auteur, $titre, $contenu, $date_ajout, $date_modif);
     
                $requete->fetch();
     
                return new News(array(
                    'id' => $id,
                    'auteur' => $auteur,
                    'titre' => $titre,
                    'contenu' => $contenu,
                    'date_ajout' => $date_ajout,
                    'date_modif' => $date_modif
                ));
            }
    ?>
    de plus j'avais fais ce code moi est ce moin bien fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    public function getUnique($id)
    	{
     
    		$requete = $this->db->prepare('SELECT id ,titre ,description ,estActive ,DATE_FORMAT (dateModification, \'le %d/%m/%Y à %Hh%i\') as dateModification, DATE_FORMAT (dateCreation, \'le %d/%m/%Y à %Hh%i\') AS dateCreation ,idSupCategorie FROM categorie WHERE id =  :id');
     
     
    		$requete->execute();
     
    		return new Categorie($requete->fetch(PDO::FETCH_ASSOC));
     
    	}
    ?>
    MERCI :p

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    le bind sert a rien, deja y'a pas de type, et le fetchMode n'est pas du type BOUND

    pour ton seconde code tu peux faire un FETCH_CLASS

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    quelle est l avantage du FETCH_Clas par rapport au FETCH_ASSOC, merci.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par kate59 Voir le message
    quelle est l avantage du FETCH_Clas par rapport au FETCH_ASSOC, merci.
    FETCH_CLASS, va directement de créer un objet en fonction de la class donnée

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    merci une autre petite question, j'ai créer cette fonction mais elle ne renvoie rien, pK?
    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
    <?php
    public function getByEmail($email)
    	{
     
     
    		$email = (string) $email;
     
    		$requete = $this->db->prepare('SELECT id, nom, prenom, email, password, activer, DATE_FORMAT (dateCreation, \'le %d/%m/%Y à %Hh%i\') AS dateCreation , status FROM employe  WHERE email = :email');
    		$requete->binValue(':email', $email, PDO::PARAM_INT);
    		$requete->execute();
     
    		return new Employe($requete->fetch(PDO::FETCH_ASSOC));
     
     
    	}
    	?>
    alors que celle-ci fonctionne:
    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
    <?php
    public function getByEmail($email)
    		{
    			$listemploye = array();
     
    $requete = 'SELECT id ,nom ,prenom ,email,password,activer, DATE_FORMAT (dateCreation, \'le %d/%m/%Y à %Hh%i\') AS dateCreation ,status FROM employe WHERE email = \''.$email.'\'';
     
     
    $requete = $this->db->query($requete);
     
    		while ($employe = $requete->fetch(PDO::FETCH_ASSOC))
    		$listemploye[] = new Employe ($employe);
     
    		$requete->closeCursor();
     
    		return $listemploye;
     
    		}
    ?>
    merci.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est pas comme ca que ca marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $requete->setFetchMode(PDO::FETCH_CLASS, 'Employe');
    return $requete->fetch();
    //return $requete->fetchAll();
    mais après tout dépend comment est construite ta classe

    EDIT : sinon ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete->binValue(':email', $email, PDO::PARAM_INT); 
    sert a rien

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

Discussions similaires

  1. attendre 1 seconde entre deux fonctions
    Par urousseau dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2008, 19h14
  2. sauver une variable entre deux fonctions ?
    Par shloka dans le forum Langage
    Réponses: 10
    Dernier message: 03/04/2007, 14h38
  3. [MySQL] conflit entre deux fonction while
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/12/2006, 12h56
  4. [MySQL] Conflit entre deux fonction WHILE
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/11/2006, 18h15
  5. Choix entre deux champs dans une requete
    Par Pico10 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/07/2005, 15h36

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