Page 1 sur 1

Verifier si une donnée existe dans la bdd par rapport à l'id.

Posté : 15 janv. 2017, 19:56
par erosp
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 :

Code : Tout sélectionner

<?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 peux enregistrer le même lien autant de fois que je le veux, alors que je devrais ne pouvoir l'enregistrer qu'une seule fois.

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.

Re: Verifier si une donnée existe dans la bdd par rapport à l'id.

Posté : 15 janv. 2017, 20:07
par or 1
$reponse = $bdd->query('SELECT * FROM utilisateur');
$donnees = $reponse->fetch();
ce qui revient à sélectionner le 1er utilisateur et non l'utilisateur connecté.
articles_sauvegarde ne devrait avoir que 2 champs et non 3, donc cette requête est inutile car les infos nécessaires sont déjà dans $lien et $idsession

Re: Verifier si une donnée existe dans la bdd par rapport à l'id.

Posté : 15 janv. 2017, 20:22
par erosp
D'accord, si j'ai bien compris cela me donnerais le code suivant :

Code : Tout sélectionner

<?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) { $insertart = $bdd->prepare("INSERT INTO articles_sauvegarde(nom_utilisateur_a, lien_article, id_u_a) VALUES(?, ?, ?)"); $insertart->execute(array($_SESSION['identifiant'], $_GET['lien'], $_SESSION['id_u'])); $message = "article enregistré"; echo $message; } else { $message = "Vous avez déja enregistré cet article"; echo $message; } ?>
Il semblerait que tout fonctionne, je n'ai pas encore vu de bug.
Merci.