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 exists de SQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 79
    Par défaut Fonction exists de SQL
    Bonjour,

    je travaille sur le code PHP d'un site que je dois modifier
    je ne comprend pas a quoi sert le "exists" dans cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Getissue = 'exists(select followupcomplete.thingsdone from followupcomplete where followupcomplete.idissue = issuetask.idissue and followupcomplete.thingsdone like "%'.$FiltDesc.'%")';
    j'ai fait des recherches sur internet (notamment sur http://sql.developpez.com/ qui est un très bon site) et j'ai trouvé a plusieurs reprises comme quoi le exists se place dans le WHERE, or ce n'est pas le cas ici et la requête fonctionne parfaitement
    Donc si quelqu'un pouvait m'expliquer le but de cette fonction et son fonctionnement ça serait parfait

    Merci d'avance

  2. #2
    Membre très actif
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Par défaut
    c'est une requête imbriquée, cette variable est une sous-requête je pense qu'elle ne doit pas être exécutée directement comme cela. Peut être il y a une concaténation de cette variable avec une autre as tu vérifié ?

    pour plus de précisions : exists te renvoit vrai si la requête qui suit te retourne des lignes de résultats, faux sinon

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 79
    Par défaut
    En effet il y a concaténation avec une variable, que j'avait supprimé, il faut donc que j’enlève le exists d'ici pour le mettre dans le where ? (le résultat peut être NULL, donc je pense qu'il est mieux de l'avoir)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Le peu de code, d'infos et d'explications ne permettent pas de répondre...

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 79
    Par défaut
    Je vais vous expliquer mon problème :

    J'ai une liste déroulante dans un formulaire. Lorsque je fait mon choix dans la liste, la valeur du choix va dans une variable By, que j'utilise ensuite pour faire une requête SQL

    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
    // Due date
    if($_GET["By"] == "duedate")
    {
    	$GetIssue = 'select * from issuetask where duedate like "%'.$_GET["Keyword"].'%" and close != "'.$Close.'" and idtype like "%'.$Type.'%"';
    }
     
    // Priority
    if($_GET["By"] == "priority")
    {
    	$GetIssue = 'select * from issuetask where priority like "%'.$_GET["Keyword"].'%" and close != "'.$Close.'" and idtype like "%'.$Type.'%"';
    }
     
    // Description
    if($_GET["By"] == "description")
    {
    	$GetIssue = 'select * from issuetask where description like "%'.$_GET["Keyword"].'%" and close != "'.$Close.'" and idtype like "%'.$Type.'%"';
    }
    Puis le résultat de ses requêtes m'est affiché dans un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <table class="sorTableView">
    <thead>
    	<tr>
    		<th data-sort="int" class="userTdTitle" scope="col" width="9%">Due date</th>
    		<th data-sort="string" class="userTdTitle" scope="col" width="11%">Type</th>
    		<th data-sort="int" class="userTdTitle" scope="col" width="7%">Priority</th>
    	</tr>
    </thead> //Je ne vous met pas le corps du tableau ce n'est pas la le problème
    Le problème est le suivant : j'ai ajouté un nouveau choix dans ma liste déroulante, donc nouvelle requête plus bas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Things Done
    if($_GET["By"] == "thingsdone")
    {
    	$GetIssue = 'select thingsdone from followupcomplete where followupcomplete.idissue = issuetask.idissue and thingsdone like "%'.$_GET["Keyword"].'%" and close != "'.$Close.'" and idtype like "%'.$Type.'%"';
    }
    Or celle-ci ne fonctionne pas, et l'erreur est : Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in ..........blabla

    De plus je voudrais utiliser la fonction exists, car le résultat est parfois NULL, il me semble donc nécessaire de mettre cette fonction exists au sein de ma requête ... mais ou ? dans le where ? et qu'est-ce qui ne va pas dans ma requête ? cette erreur est en général liée a un type de colonne qui ne correspond pas ...

    Merci d'avance

  6. #6
    Invité
    Invité(e)
    Par défaut
    boolean given in ..........blabla
    ????

    Ca t'écorcherait de mettre le message d'erreur EN ENTIER ???
    A priori, c'est quand même ce qui permet de CONNAITRE l'erreur, non ?
    D'autant qu'il indique aussi (généralement) le numéro de ligne...

    Où se trouve ce mysql_fetch_array() dans ton code ??
    Comment est exécutée la requête (code ??)

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

Discussions similaires

  1. [2008] Tester l'existence d'une fonction en Transact SQL
    Par bza88 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 20/11/2014, 17h09
  2. fonction exists toujours vrai transact sql
    Par bobby51 dans le forum Développement
    Réponses: 6
    Dernier message: 27/03/2009, 11h09
  3. pb avecla fonction "exists"
    Par G-rhum dans le forum Langage
    Réponses: 2
    Dernier message: 14/01/2006, 14h09
  4. Fonction "Format" sous SQL
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 08/10/2004, 09h07
  5. fonction left avec sql server 6.5
    Par shake dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/06/2004, 08h48

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