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 :

Fonction avec variable dans la requête


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 65
    Par défaut Fonction avec variable dans la requête
    Bonjour à tous,

    J'essaie désespérément de faire une fonction contenant une requête SQL avec des variables à l'intérieur afin de savoir si une ligne existe dans ma BDD dans un premier temps et également connaitre la valeur du booléen.

    Cependant, je ne sais pas pourquoi mais elle ne fonctionne pas.

    Est-ce qu'une âme charitable pourrait m'aider, s'il vous plait?
    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
    function alert_exist($idses, $alert_type) {
    	 $req_alert = $bdd->query('
    	       SELECT "$alert_type"
    	       FROM gdpm_setup 
    	       WHERE id_user = "$idses"
    	       AND "$alert_type" = TRUE');
    	 $alert = $req_alert->fetch();
    	 $alert = $alert[$alert_type];
    	 return $alert;	                    
    }
     
    $alert = alert_exist(1, mail);
    echo $alert;
    Je vous remercie!

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 507
    Par défaut
    Salut,

    Modifies ta requête comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $req_alert = $bdd->query("SELECT '$alert_type'
    	       FROM gdpm_setup 
    	       WHERE id_user = '$idses'
    	       AND '$alert_type' = TRUE");
    Mais avant, il faut t'assurer que la requête retourne bien une ligne, pour ça tu peux utiliser num_rows.
    En gros ta fonction doit être comme suite :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function alert_exist($idses, $alert_type) {
    	 $req_alert = $bdd->query("SELECT '$alert_type'
    	       FROM gdpm_setup 
    	       WHERE id_user = '$idses'
    	       AND '$alert_type' = TRUE");
             $nbrLignes=$req_alert->num_rows;
             if($nbrLignes>0){
    	    $alert = $req_alert->fetch();
    	    $alert = $alert[$alert_type];
             }
             else $alert="Aucune ligne trouvée !";
    	 return $alert;	                    
    }
    et quand tu veux appeler la fonction, il faut mettre le champ mail entre double quotes "" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $alert = alert_exist(1, "mail");

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 65
    Par défaut
    Bonjour Toufik82,

    Merci beaucoup pour ta réponse.

    J'ai bien effectué les modifications, cependant, j'ai le même problème, lorsque j'appelle la fonction
    avec la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $alert = alert_exist(1, "mail");
    La page ne s'affiche plus.

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 507
    Par défaut
    as-tu copier/coller le corps de la fonction comme je l'ai mis dans mon post plus haut ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 65
    Par défaut
    Oui, la page ne s'affiche pas

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 507
    Par défaut
    Si la page ne s'affiche pas et qu'il n'y a aucune erreur affichée, cela veut dire qu'il y'a un truc anormal.

    commençons par voir les exceptions (s'il y'en a), englobe le corps de la fonction dans un bloc try catch :
    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
     
    function alert_exist($idses, $alert_type) {
       try{
    	$req_alert = $bdd->query("SELECT '$alert_type'
    	       FROM gdpm_setup 
    	       WHERE id_user = '$idses'
    	       AND '$alert_type' = TRUE");
             $nbrLignes=$req_alert->num_rows;
             if($nbrLignes>0){
    	    $alert = $req_alert->fetch();
    	    $alert = $alert[$alert_type];
             }
             else $alert="Aucune ligne trouvée !";
          }catch(Exception $e){
              $alert=$e->getMessage();
          }
       return $alert;	                    
    }

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

Discussions similaires

  1. [phpMyAdmin] Passer le nom d'une table en variable dans une requête avec phpMyAdmin
    Par EnRadeSurEclipse dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 29/09/2014, 11h49
  2. Requête sql avec variable dans cellule excel
    Par MENOT72 dans le forum SQL
    Réponses: 2
    Dernier message: 09/09/2011, 17h33
  3. [MySQL] erreur avec une variable dans une requête
    Par Hayabusa dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/03/2007, 23h42
  4. Nom de champ variable dans une requête SQL
    Par stip dans le forum ASP
    Réponses: 2
    Dernier message: 30/09/2004, 18h02
  5. Passage de variable dans une requête
    Par zestrellita dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/09/2004, 13h27

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