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 :

Aide jonction entre 2 tables [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Aide jonction entre 2 tables
    Bonjour à tous :-)
    Etant étudiant en info, je me suis lancé un défi, coder un site de rencontre très simple !
    Mais je suis bloqué sur une jonction, je n'arrive pas à faire ce que je veux avec ma requête.

    Table 1 (nom : users) ==> http://i.imgur.com/HXQcK7f.png
    Table 2 (nom : relationship) ==> http://i.imgur.com/kVNyLTQ.png

    Mon problème :
    Je voudrais que quand je "(dis)like" un profile (clic sur bouton (dis)like), non seulement une ligne s'ajoute a ma Table2 mais que en plus au rafraichissement de ma page, la personne likée ou dislikée n'apparaissent plus.
    Or, je n'ai que la premiere etape, il me manque plus qu'à faire disparaitre la personne au chargement de la page.

    Voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = $bdd->prepare('SELECT users.id, users.username, users.email, users.avatar, relationship.owner_id, relationship.target_id FROM users INNER JOIN relationship ON users.id = relationship.owner_id WHERE users.id = ? GROUP BY users.id LIMIT '. $offset .', '. $max_result);
    			$req->execute(array($_SESSION['user_id']));
    ($offset et $max_result sont la pour mon systeme de page, $_SESSION['user_id'] est l'id de l'utilisateur logged)

    Je sais pas si j'ai oublié quelque chose, dites le moi.

    Merci d'avance ! Bonne journée à tous :-)

  2. #2
    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
    C'est l'inverse que tu veux : tous les utilisateurs qui ne sont pas dans la table relation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT users.id, users.username, users.email, users.avatar WHERE users.id NOT IN (SELECT target_id FROM relationship WHERE owner_id = users.id) LIMIT '. $offset .', '. $max_result
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    J'ai l'impression que la requête n'est pas fonctionnelle :/
    Dites moi si je me trompe?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	$req = $bdd->prepare('SELECT users.id, users.username, users.email, users.avatar WHERE users.id NOT IN (SELECT target_id FROM relationship WHERE owner_id = ?) LIMIT '. $offset .', '. $max_result);
    	$req->execute(array($_SESSION['user_id']));
    Cette requête (la votre) n'affiche absolument rien sur le site, et MySQL dit qu'il y a une erreur mais je n'arrive pas à la trouver..

    Merci d'avance !

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 6
    Points
    6
    Par défaut RESOLU
    Resolu, il manquait un WHERE

    Requete finale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = $bdd->prepare('SELECT users.id, users.username, users.email, users.avatar FROM users WHERE users.id NOT IN (SELECT target_id FROM relationship WHERE owner_id = ?) LIMIT '. $offset .', '. $max_result);
    	$req->execute(array($_SESSION['user_id']));

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

Discussions similaires

  1. Jonction entre 2 tables et afficher toutes les colonnes
    Par Kermichou dans le forum Bases de données
    Réponses: 0
    Dernier message: 21/03/2012, 16h56
  2. Jonction entre 2 tables
    Par jesaye dans le forum Langage SQL
    Réponses: 5
    Dernier message: 21/11/2011, 21h36
  3. Besoin d'aide sur les relations entre mes tables
    Par Jenojen dans le forum Bases de données
    Réponses: 102
    Dernier message: 06/09/2008, 12h27
  4. [Conception] Aide pour les liaison entre 2 table
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 02/09/2006, 13h03
  5. [MySQL] aide pour MyAdmin-relation entre les tables
    Par bucarest dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/04/2006, 13h35

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