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 :

sous-requête + mathématiques [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut sous-requête + mathématiques
    Bonjour ^^ Je souhaite plus que tout au monde que ce soit possible, je sais que j'invente une fonction ici mais c'est pour mieux vous illustrer ma volonté, peut-on faire quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $id = mysql_query("SELECT id FROM table WHERE user = '".mysql_real_escape_string($user)."'");
    $commun = mysql_query("SELECT user FROM table WHERE id IS CONTAINED BY $id");

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Comme ta syntaxe ne correspond pas à quelque chose d'existant, il faudrait que tu expliques un peu plus besoin pour qu'on puisse le comprendre.
    Avec un exemple peut-être...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Désolé je croyais que l'anglais ne poserait pas problème, le "IS CONTAINED BY" veut dire "est contenu dans", donc je veux trouver tous les "user" dont le id est contenu dans la chaîne $id

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Quelque chose comme ça alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT  user
    FROM    table
    WHERE   $id LIKE CONCAT('%', 'id', '%')
    PS : C'est encore un problème de colonne qui contient une liste de valeurs ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Je m'aperçois que j'ai fait une légère erreur dans ma requête.
    La ligne 3 devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE   $id LIKE CONCAT('%', id, '%')
    Mais je suppose que tu avais déjà identifié et corrigé cette anomalie...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je ne suis pas sur de comprendre ce que tu souhaites obtenir.

    Désolé je croyais que l'anglais ne poserait pas problème, le "IS CONTAINED BY" veut dire "est contenu dans", donc je veux trouver tous les "user" dont le id est contenu dans la chaîne $id
    Tout d'abord, "IS CONTAINED BY" signifie "est contenu par", en informatique il vaut mieux eviter les approximations

    Ensuite, il me semble que ce que tu cherches est le mot cle "IN".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT user FROM table WHERE id IN (id1, id2, id3, ...);

    Pour la coloration syntaxique qui semble te perturber, c'est un bon outil pour voir les bugs mais attention ce n'est pas fiable a 100%. Selon ton editeur et/ou tes plugins tu peux avoir des syntaxes non reconnues, seul l'execution du script fait foi de bon ou mauvais fonctionnement.

    Si j'ai mal interprete ta question essaye de donner du contexte afin que ce soit plus clair, et non personne ne t'as abandonnee mais les gens ont une vie, un travail, une famille

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    J'avais pensé à utiliser un IN, mais dans mon cas il faudrait écrire $id IN, je pense pas que ça fonctionne avec une variable plutôt qu'une colonne

  8. #8
    Invité
    Invité(e)
    Par défaut
    $id n'est qu'une reference a une variable, ne n'est vraiment pas clair ce que tu essaies d'obtenir. Essaye d'expliquer en francais au lieu de parler avec du code je pense que ce sera plus simple.

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Avec une sous-requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $commun = mysql_query("SELECT user FROM tableA WHERE id IN (SELECT id FROM tableB WHERE user = '".mysql_real_escape_string($user)."')");
    Au passage l'extension mysql est obsolète, il faudrait passer à PDO.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Pb de formatage de texte... Vertical, inversé...
    Par Grammaton dans le forum Access
    Réponses: 4
    Dernier message: 01/03/2007, 13h54
  2. Ajout d'un Component dans un Container
    Par willowII dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 07/09/2004, 18h08
  3. [LDAP] recherche dans differents container LDAP avec Java
    Par touinth dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 01/07/2004, 16h06
  4. [GEF]class Figure dans container SWING ?
    Par Albarad dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 01/06/2004, 12h12
  5. [Turbo C++] Fonciton containing for are not expanded inline
    Par BuG dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 17/02/2003, 06h48

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