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 :

requête fonctionne en local mais pas en ligne [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut requête fonctionne en local mais pas en ligne
    Bonjour,
    J'ai un souci avec une requête. Celle ci fonctionne très bien en local, mais une fois envoyé sur le site elle ne fonctionne plus. Si quelqu'un a une idée suis prenant..
    voici la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT `nom_projets`, `id_projets` FROM `projets` A  WHERE `A.id_projets` IN(SELECT `id_projets` FROM `projets-membres` B WHERE `B.id_membres` = '".$_SESSION['id']."')";
    Les tables sont les mêmes.

    Le serveur en ligne est un Serveur: mysql4-1
    Merci d avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    As-tu un message d'erreur ?
    Que te donne un echo $sql ?
    La requête obtenue fonctionne-t-elle si tu la lances directement (par ex. sur phpMyAdmin) ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    Sous phpmyadmin du serveur non en local oui.
    voici l erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT `id_projets` FROM `projets-membres` B WHERE `B.id_membre

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    Desole la requete qui marche en local et pas en distant est celle ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT `nom_projets`, `id_projets` FROM `projets` WHERE `id_projets` IN(SELECT `id_projets` FROM `projets-membres` WHERE `id_membres` = '".$_SESSION['id']."')";

  5. #5
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    et que te retourne alors mysql_error() ; ?
    Peux-t-on voir le résultat de echo $sql ; ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT `nom_projets` , `id_projets`
    FROM `projets`
    WHERE `id_projets`
    IN (
     
    SELECT `id_projets`
    FROM `projets-membres`
    WHERE `id_membres` ='1'
    )


    MySQL a répondu : Documentation
    #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT `id_projets` FROM `projets-membres` WHERE `id_membres` =

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    j ai essaye en enlevant les cote autour du 1 --> meme erreur

  8. #8
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    Peux-tu passer les requêtes suivantes sur ton serveur distant ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT VERSION() ;
    SHOW TABLES LIKE 'proj%' ;
    SHOW CREATE TABLE `projets-membres` ;

  9. #9
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    essaye ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "SELECT nom_projets, id_projets FROM projets WHERE id_projets IN(SELECT id_projets FROM projets-membres WHERE id_membres = '".$_SESSION['id']."')";
    J'ai simplement retiré les quote devant tes champs...
    De plus, si ca ne fonctionne toujours pas, essaye de faire un simple select sur ta table avec une condition banale...
    Ensuite, vérifie la validité de tes champs...ne sont-ils pas null ou inexistants ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT nom_projets, id_projets
    FROM projets
    WHERE id_projets
    IN (
     
    SELECT id_projets
    FROM projets - membres
    WHERE id_membres =1
    )
    LIMIT 0 , 30

    MySQL a répondu: Documentation
    #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id_projets
    FROM projets - membres
    WHERE id_membres = 1

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    J ai une table projet ou dedan se trouve le nom l id etc..
    Dans une autre table projet-membre je fait la correspondance entre l'id membre et l id projet.
    Cette requete devrait me donner tous les nom des projets ou se trouve l utilisateur
    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
     
    CREATE TABLE `projets` (
      `id_projets` int(11) NOT NULL auto_increment,
      `nom_projets` text NOT NULL,
      `date_deb_projets` datetime NOT NULL default '0000-00-00 00:00:00',
      `date_fin_projets` datetime NOT NULL default '0000-00-00 00:00:00',
      `pourcentage_acc_projets` tinyint(4) NOT NULL default '0',
      PRIMARY KEY  (`id_projets`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
     
    --------------------------------------------------
     
    --
    -- Structure de la table `projets-membres`
    --
     
    CREATE TABLE `projets-membres` (
      `id_projets` int(11) NOT NULL default '0',
      `id_membres` int(11) NOT NULL default '0',
      `rang_membres` int(11) NOT NULL default '0'
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

  12. #12
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    je pense que c'est une mauvaise utilisation du mot-clé SQL IN.
    Il faudrait que tu jettes un coup d'oeil au manuel pour vérifier la syntaxe de ta requête

  13. #13
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    Regarde de ce côté...http://www.webdevelopersnotes.com/tu...d_between.php3

    Je pense qu'il faut utiliser un tableau d'éléments pour inclure ton mot clé IN

  14. #14
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    Non, tout dépend de la version de MySQL. Avec une 4.1, tu peux faire IN (sous-requête).


  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    voici la version 4.0.24_Debian-10-log

    Pourriez vous me donner un coup de main pour une requête equivalente

  16. #16
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    ça devrait le faire :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = "SELECT DISTINCT P.nom_projets, P.id_projets
    FROM projets P
      INNER JOIN `projets-membres` PM ON P.id_projets = PM.id_projets
    WHERE PM.id_membres = " . $_SESSION['id'] ;

  17. #17
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Par défaut
    Une jointure?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "SELECT A.`nom_projets`, A.`id_projets` FROM `projets` A  INNER JOIN  `projets-membres` B ON A.id_projets=B.id_projets WHERE `B.id_membres` = '".$_SESSION['id']."'";
    Trop rapide Antoun!!

  18. #18
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    Citation Envoyé par fucce Voir le message
    Trop rapide Antoun!!
    fucce, attention au DISTINCT !

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    J'ai trouve, cette requete marche pareil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT `projets`.`nom_projets` , `projets`.`id_projets`
    FROM `projets` , `projets-membres`
    WHERE `projets`.`id_projets` = `projets-membres`.`id_projets`
    AND `projets-membres`.`id_membres` =1

  20. #20
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    ça ne te génère pas des doublons sur les projets qui ont plusieurs projets-membres ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Artichow] Génération graphique qui fonctionne en local mais pas en ligne
    Par Marc22 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 18/02/2011, 13h27
  2. Script qui fonctionne en local, mais pas en ligne
    Par student_php dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/11/2010, 10h22
  3. Appplication fonctionne en local mais pas en ligne
    Par dreamover dans le forum Langage
    Réponses: 1
    Dernier message: 08/07/2009, 21h00
  4. [RegEx] Regex fonctionnant en local mais pas en ligne
    Par MadSoldier dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2008, 17h04
  5. Réponses: 5
    Dernier message: 23/12/2006, 15h55

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