Bonjour,
à tous, je reviens vers vous car j'ai suivi le tuto de Grafi sur les like et dislike et lorsque j'essaie de le réaliser, rien ne marche...
Voilà mon code (j'en suis au début mais d'après le suivi de la vidéo, l'incrémentation est déjà sensée se faire
like.php
<?php
require 'db.php';
if($_SERVER['REQUEST_METHOD'] != 'POST'){
http_response_code(403);
die();
}
Ici ça marche
require 'class/Vote.php';
$vote = new Vote($pdo);
if($_GET['vote'] == 1){
$vote->like('t_amiibo', $_GET['ref_id'], $_SESSION['auth']->id_user);
}
else {
$vote->dislike('t_amiibo', $_GET['ref_id'], $_SESSION['auth']->id_user);
}
header('Location : amiibo.php?id='.$_GET['ref_id']);
?>
-> ici ça ne marche plus
t_amiibo, c'est ma table de référence (Dans la vidéo, il avait nommer Article)
$_SESSION['auth']->id_user : j'ai mis ça sans conviction lui c'était $_SESSION[user_id], mais ayant suivi un autre de ses tuto, je suis en session sous $_SESSION['auth']
Fichier Vote.php
<?php
class Vote{
private $pdo;
public function __construct(PDO $pdo){
$this->pdo = $pdo;
}
public function like($ref, $ref_id, $id_user){
$req = $this->pdo->prepare("SELECT * FROM $ref WHERE id_".$ref." = ?");
$req-> execute(array($ref_id));
if($req->rowCount() > 0){
$req = $this->pdo->prepare('INSERT INTO t_vote_amiibo SET ref=?, ref_id=?, id_user=?, date_vote_amiibo=?, vote=1');
$req->execute([$ref, $ref_id, $id_user, date('Y-m-d- H:i:s')]);
return true;
}
else
{
throw new Exception("Impossible de voter pour un enregistrement qui n'existe pas");
}
}
public function dislike($ref, $ref_id, $id_user){
}
}
?>
$id_user -> lui avait mis $user_id
$req = $this->pdo->prepare("SELECT * FROM $ref WHERE id".$ref." = ?");
WHERE id".$ref" car je suppose que toutes ses tables les id sont nommées id mais moi je les ai nommées id_amiibo / id_article du coup, il me semblait que c'était bien d'adapter le nom comme ça. C'est peut-être une erreur...
$req = $this->pdo->prepare('INSERT INTO t_vote_amiibo SET ref=?, ref_id=?, id_user=?, date_vote_amiibo=?, vote=1');
id_user, est-il bien récupéré ?
$req->execute([$ref, $ref_id, $id_user, date('Y-m-d- H:i:s')]); -> est ce que c'est le bon ordre ?
Voilà du coup j'en suis là, ça marche pas et je suis bien triste =)
Je vous remercie par avance pour votre aide