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 :

Un select d'une variable [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Par défaut Un select d'une variable
    Bonjour à tous,

    j'ai deux BDD mysql, je récupère les infos d'une premières et les mets dans un tableau en tant que variable.

    Je veux faire une deuxième requête sql où je récupère aussi cette variable dans mon sélect, ainsi que les infos de la deuxième table, mais ça ne marche pas. Voici l'erreur:

    PHP Parse error: syntax error, unexpected 'billsec' (T_STRING)
    Et voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql = "SELECT trunks.nomtrunk, forfaits.destination_name, forfaits.prefixe, ".('$dataline['billsec']')."".
            " FROM trunks JOIN clients ON trunks.clients_id = clients.clients_id JOIN forfaits ON clients.forfaits_id = forfaits.forfaits_id".
            " WHERE forfaits.destination_name LIKE ('FRANCE%')".
            " AND '".$dataline['channel']."' LIKE concat ('%',trunks.nomtrunk, '%')".
            " GROUP BY trunks.nomtrunk";
    Impossible de savoir d'où ça vient, comment peut on inclure une variable dans un sélect?
    Merci à tous pour votre aide

  2. #2
    Membre confirmé
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Par défaut
    si ça peut aider voici l'erreur corrigée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT trunks.nomtrunk, forfaits.destination_name, forfaits.prefixe, ".($dataline['billsec'])."".

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 995
    Billets dans le blog
    6
    Par défaut
    ça n'est pas un problème SQL, mais votre syntaxe PHP ! Commencez par apprendre PHP !

    De plus votre requêtes est pourrie :
    • pourquoi des parenthèses qui ne servent à rien ?
    • pourquoi un GROUP BY qui ne sert à rien ? Vous voulez sciemment pourrir les performances d'un MySQL qui est déjà le plus mauvais élève en terme de perf ?


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre confirmé
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    ça n'est pas un problème SQL, mais votre syntaxe PHP ! Commencez par apprendre PHP !
    Bonjour et merci de ta gentillesse pour ta réponse. Ce code a été fait en collaboration avec mon prof de php à l'école, désolée donc si je suis ce que mon prof me dit...

    Mon GROUPBY n'est pas inutile puisqu'il me permet d'obtenir un tableau me rapportant les résultats dans l'ordre des trunk.
    Plutôt que de critiquer, pourquoi ne m'expliqueriez vous pas comment améliorer mon code? n'est-ce-pas le but d'un forum? Partager ses connaissances et aider les débutants à s'améliorer...

    Bref, comme vous l'avez surement gentiment remarqué je suis débutante en php et essaye de me débrouiller par moi-même pour ce projet donné par mon professeur de php/sql, en me basant sur ce qu'il nous a appris j'ai voulu avancer par moi-même sans son aide, je sais bien que mon code n'est pas optimal (et encore, vous n'avez pas vu le reste de mon code... il vous ferait hurler ) je chercher justement à m'améliorer.

  5. #5
    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
    Par défaut
    Je pense que tu as confondu ORDER BY (pour le tri) et GROUP BY (qui fait un groupement).

    Pour le reste, n'ajoute pas des syntaxes superflues :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql = "SELECT trunks.nomtrunk, forfaits.destination_name, forfaits.prefixe, ". $dataline['billsec'] ."
            FROM trunks JOIN clients ON trunks.clients_id = clients.clients_id JOIN forfaits ON clients.forfaits_id = forfaits.forfaits_id
            WHERE forfaits.destination_name LIKE ('FRANCE%')
            AND '".$dataline['channel']."' LIKE concat ('%',trunks.nomtrunk, '%')
            ORDER BY trunks.nomtrunk";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Par défaut
    Aaaah en effet dans ma tête le ORDER BY me les regroupait. Merci beaucoup !

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

Discussions similaires

  1. [formulaire] Récuperer la valeur d'un select dans une variable
    Par Despec dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 03/11/2006, 15h45
  2. Réponses: 11
    Dernier message: 18/07/2006, 13h53
  3. récupérer le résultat d'un SELECT dans une variable ?
    Par budhax dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/06/2006, 10h24
  4. Requête selection avec une variable de date
    Par kahmsin dans le forum Access
    Réponses: 7
    Dernier message: 20/11/2005, 19h38
  5. [Sybase] résultat d'un select dans une variable
    Par stoz dans le forum Sybase
    Réponses: 2
    Dernier message: 14/09/2004, 14h28

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