JOINTURES MYSQL - Besoin d'aide

Résolu/Fermé
borish78 Messages postés 4 Date d'inscription dimanche 2 septembre 2012 Statut Membre Dernière intervention 2 septembre 2012 - 2 sept. 2012 à 14:15
borish78 Messages postés 4 Date d'inscription dimanche 2 septembre 2012 Statut Membre Dernière intervention 2 septembre 2012 - 2 sept. 2012 à 16:04
Bonjour à tous,
Alors voilà, sachez avant tout que j'ai trouvé plusieurs sujets qui traités de problèmes similaires mais je n'ai pas réussi à faire ce que je souhaitais avec. Donc je me tourne vers vous ;) Merci

Alors, je suis entrain de créer une petite visionneuse toute simple en PHP et mon soucis se situe au niveau de mes paramètres de sélection (SELECT avec MySQL bien-sûr).

Je vous explique rapidement, j'ai trois tables :

PAGES : ID, PAGENAME, USERID // (2500 entrées)
USERS : ID, USERNAME // (2000 entrées)
VISUAL : ID, ID_USER, ID_PAGE // (500 entrées)

Chaque fois qu'un membre visualise une page, j'insère son "ID" et "l'ID de la page" visualisée dans la table "VISUAL".
Jusqu'ici tout va bien ;) Mais là ou sa se gatte, c'est quand je dois sélectionner la page à afficher.

Je réussi à sélectionner les pages en excluant celles ajoutées par le membre,
mais je n'arrive pas à exclure celles qui ont déjà été visualisée par ce même membre(celles qui sont présentent dans la table "Visual").

Voici ma requête :

$userid = 'id_utilisateur_courant';

$sql = "
SELECT 
page.ID, page.PAGENAME, page.USERID
FROM 
#__pages page
WHERE 
page.USERID NOT IN ($userid)
";




En espérant avoir été clair et en espérant vous avoir apporté toutes les infos nécessaires,
Merci d'avance ;)


1 réponse

gardiendelanuit Messages postés 1769 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 19 novembre 2016 264
2 sept. 2012 à 14:35
$sql = "
SELECT
page.ID, page.PAGENAME, page.USERID
FROM
#__pages page
INNER JOIN
visual V ON page.USERID = V.ID_USER
WHERE
page.USERID NOT IN ($userid) AND page.USERID NOT IN V.ID_USER
";

A vérifier.
0
borish78 Messages postés 4 Date d'inscription dimanche 2 septembre 2012 Statut Membre Dernière intervention 2 septembre 2012
2 sept. 2012 à 14:42
Bonjour,
je teste cela de suite.
Merci pour votre réponse
0
borish78 Messages postés 4 Date d'inscription dimanche 2 septembre 2012 Statut Membre Dernière intervention 2 septembre 2012
2 sept. 2012 à 14:51
Ne marche pas (problème dans la requête) :(

Warning: Invalid argument supplied for foreach() in [...]

Auriez-vous une idée ?
Merci
0
gardiendelanuit Messages postés 1769 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 19 novembre 2016 264
2 sept. 2012 à 16:01
Ça viendrait plutôt de ton script PHP cette erreur non?
0
borish78 Messages postés 4 Date d'inscription dimanche 2 septembre 2012 Statut Membre Dernière intervention 2 septembre 2012
2 sept. 2012 à 16:04
En fait c'est bon je viens de trouver :

SELECT 
	P.ID, P.USERID, 
FROM 
	#__pages P 
WHERE 
        P.USERID NOT IN ($userid)
	AND P.ID NOT IN (SELECT V.PAGEID FROM VISUAL V WHERE V.USERID=$userid)


;) Merci pour ton aide
0