Bonjour,
Je suis en train de créer un site de news. J'aimerais qu'une fois l'utilisateur connecté, il ait la possibilité de sauvegarder un article.
Je suis bloqué sur la vérification de l'article qu'il souhaite enregistrer, si cet article a déjà été enregistré ou non.
Pour la vérification seulement de l'article j'ai réussi, mais il faudrait que cette vérification soit faite par rapport à l'id de l'utilisateur.
Je vous mets le code :
<?php
include('connexionBdd.php');
session_start();
$lien = $_GET['lien'];
$idsession = $_SESSION['id_u'];
$query = $bdd->prepare('SELECT * FROM articles_sauvegarde WHERE lien_article = ? AND id_u_a = '.$idsession.'');
$query->execute(array($lien));
$lienexist = $query->rowCount();
$query->CloseCursor();
if($lienexist == 0) {
$reponse = $bdd->query('SELECT * FROM utilisateur');
$donnees = $reponse->fetch();
$insertart = $bdd->prepare("INSERT INTO articles_sauvegarde(nom_utilisateur_a, lien_article, id_u_a) VALUES(?, ?, ?)");
$insertart->execute(array($donnees['nom_utilisateur'], $_GET['lien'], $donnees['id_u']));
$message = "article enregistré";
echo $message;
} else {
$message = "Vous avez déja enregistré cet article";
echo $message;
}
?>
Je voudrais savoir déjà si je procède de la bonne façon car je ne sais pas commet m'y prendre pour cette vérification.
Je vous remercie de votre aide, bonne journée a tous.
Bonjour, j'ai pas bien saisi la façon dont tu veux valider l'article mais, ta requête pour récupérer l'utilisateur dans le if($lienexist) n'est pas bonne car tu récupère tous les utilisateurs et non pas celui qui est connecté.
Pour la validation, quelles sont les contraintes pour qu'un article ne soit pas sauvegardé?
Salut Paul,
Si j'ai bien compris ce que tu veux faire, tu veux vérifié si l'article existe et si l'utilisateur la déjà enregistré, rien de plus facile.
Tout d'abord tu à besoin de 3 tables dans ta bdd:
Voici la logique que je ferais pour ma part:
//Vérifié que l'article existe
//affiché l'article etc...
//Quand on clique sur le bouton d'enregistrement de l'article
//On vérifié que l'utilisateur soit connecté
//si c'est le cas on vérifie (grace à la table 'join' en faisant deux inner join) que l'utilisateur n'a pas déjà enregistré cet article
$req = $bdd->query("
SELECT j.id
FROM join_user_article j
INNER JOIN article a ON a.id = GET['id_article']
INNER JOIN user u ON u.id = session_id
");
//aucune id n'est trouvé donc l'utilisateur n'a pas enregistré cet article
if(!$req->fetchColumn){
//tu insert le user_id et l'article_id dans le join pour dire qu'il est enregistré
}
//sinon si une collone à été trouvé alors l'article est déjà enregistré
else{
//article déjà enrigistré
}
//si l'utilisateur n'est pas connecté
//Demander a l'utilisateur de se connecter
Voilà voilà, c'est comme ça que je vois la logique de ce que tu veux faire