SQL + PHP : Système d'amis

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : SQL + PHP : Système d'amis

Re: SQL + PHP : Système d'amis

par Spols » 16 déc. 2016, 01:17

Oui le but est de récupèrer les amis from et les amis to d'un membre en particulier en une seule requète.
l'explication de la difference from / to est expliquée sur le lien.
donc chaque ligne aura soit ami_from soit ami_to qui sera égal à id (signe =)
mais par exemple si un membre id = 35 a :
un ami_from (id = 44)
un ami_from (id = 15)
un ami_to (id = 78)
un ami_to (id = 100)
donc pour chaque ligne, on va tenter de récupèrer l'id de l'ami qui n'a pas l'id recherché (35)
ligne 1 ami_from = 44 ami_to = 35 & id = 35 donc 44 + 35 - 35 = 44
ligne 3 ami_from = 35 ami_to = 78 & id = 35 donc 35 + 78 - 35 = 78
donc dans tous les cas on retrouve l'id de l'autre ami de 35. pas besoin de savoir distinguer si il est from ou to.

Re: SQL + PHP : Système d'amis

par Aureusms » 15 déc. 2016, 20:04

Est ce que ne serait-ce pas juste une addition et une soustraction ?

SQL + PHP : Système d'amis

par nico44530 » 15 déc. 2016, 18:46

Salut,

J'aimerai utiliser une requête sur le site https://openclassrooms.com/courses/cree ... ois-autres

Code : Tout sélectionner

$query = $db->prepare(' SELECT (ami_from + ami_to - :id) AS ami_id, ami_date, membre_pseudo, online_id FROM forum_amis LEFT JOIN forum_membres ON membre_id = (ami_from + ami_to - :id) LEFT JOIN forum_whosonline ON online_id = membre_id WHERE (ami_from = :id OR ami_to = :id) AND ami_confirm = :conf ORDER BY membre_pseudo'); $query->bindValue(':id',$id,PDO::PARAM_INT); $query->bindValue(':conf','1',PDO::PARAM_STR); $query->execute();
Vu qu'elle fonctionne, j'aimerai la comprendre avant de pouvoir l'utiliser.

Le passage avec "SELECT (ami_from + ami_to - :id) AS ami_id" me paraît un peu dur ^^
La jointure "ON membre_id = (ami_from + ami_to - :id)"
Et le passage de "WHERE (ami_from = :id OR ami_to = :id)"

Pour le reste, j'ai les bases, j'y arrive.

C'est la parenthèse, les signes = + - qui me bloque dans cette requête.
Merci pour votre aide =)