Bonjour,

Voila je rencontre un petit problème avec mon code.

  $id = intval($_GET['id_utilisateur']);
  $req = $dbh->prepare('SELECT * FROM statut WHERE id_statut = ?');
  $req->execute(array($id));
  $post = $req->fetch();
 <div class="vote_btns">
      <button class="vote_btn vote_like"><i class="material-icons">thumb_up</i> <?php echo $post['like_count']; ?></button>
      <button class="vote_btn vote_dislike"><i class="material-icons">thumb_down</i> <?php echo $post['dislike_count'];  ?></button>
 </div>

J'essaye de faire en sorte que le nombre de j'aime/j'aime pas s'affiche, mais rien ne s'affiche, j'ai fais un wardump sur les 2 variables like_count/dislike_count ça m'affiche null :/ ( http://puu.sh/oB8nI/699926b523.png )

Voiçi ma bdd statut (dans la vidéo il le fait sur des articles) : http://puu.sh/oB8lq/583a4c4e02.png

Cordialement

9 réponses


Carouge10
Réponse acceptée

Bonjour,
ça ne serait pas plutot id_utilisateur dans le requête ?

Carouge10
Réponse acceptée

Ce sont des choses qui arrivent quand on est a fond dans son code. Il est parfois difficile de prendre de recul et de se dire qu'est ce que veux, comment je fais et est-ce que le résulte est ce que je veux.
Bon courage et plus qu'à mettre le sujet en résolu.

Carouge10
Réponse acceptée

Attention au " et ' dans les requêtes.
La première permet d'insérer directement des variables $toto alors que la deuxième, non....

Aranok
Auteur

Rolalala ! C'était bien ça ... Je te remercie 1000 fois mais j'avoue que là j'étais vraiment idiot ! :D

Aranok
Auteur

J'ai à nouveau un problème sur ce système mais je l'ai marqué comme résolu et faire un topic pour chaque problème va spammer le forum du coup je le poste ici :s

Le problème est le suivant : http://puu.sh/oBeUE/d077eb717b.png

Mon code : vote.php

<?php
class Vote{

    private $dbh; // en privée car on va pas en avoir besoin à l'extèrieur
    public function __construct(PDO $dbh)
    {
        $this->pdo = $dbh;
    }
    public function like($statut,$statut_id,$id_utilisateur)
    {
        $req = $this->pdo->prepare('SELECT * FROM $statut WHERE id_utilisateur = ?');
        $req->execute(array($statut_id));
        if($req->rowCount() > 0)
        {
        }
        else
        {
            throw new Exception('Impossible de voter pour un enregistrement qui n\'existe pas');
        }
    }
    public function dislike($statut,$statut_id,$id_utilisateur)
    {
    }

like.php

<?php
session_start();
$bdd = 'mysql:host=localhost;dbname=sitesocialnetwork';
$user = 'root';
$password2 = '';
try{
  $dbh = new PDO($bdd, $user,$password2, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
} 
catch (PDOException $e) {
    echo 'Echec de la connexion : ' . $e->getMessage();
    exit;
}
if($_SERVER['REQUEST_METHOD'] != 'POST') // bien vérifier qu'on utilise la méthode POST (inspecter élément, network, cliquer sur j'aime rafraichir la page vient le lien et regarder status --> 403 forbidden)
{
    http_response_code(403);
    die();
}
$_GET['id_statut'] = 2000;
require 'class/Vote.php';
$vote = new Vote($dbh);
if($_GET['vote'] == 1)
{
    $vote->like('statut', $_GET['statut_id'], $_SESSION['id_utilisateur']);
}
else
{
    $vote->dislike('statut', $_GET['statut_id'], $_SESSION['id_utilisateur']);
}
echo "salut la planete";
?>

votes de ma bdd : http://puu.sh/oBf45/be5bec7b7a.png
statut de ma bdd : http://puu.sh/oBf8g/281b014310.png

J'ai suivi comme il le faut le tuto pourtant :/

Cordialement

Il manque le "statud_id" dans le $_GET.

Aranok
Auteur

J'ai toujours cette erreur : http://puu.sh/oBhkC/78564409ea.png

"La table 'sitesocialnetwork.$statut' n'existe pas" alors que la table statut existe belle et bien dans ma bdd

Aranok
Auteur

Encore une erreure toute bête ! Je te reremercie ! Si jamais j'ai d'autre problème (ce que j'espère pas biensûr), je les mettrai ici

Je te le déconseil car cela ne correspondrait pas au sujet de départ.
Commencez déjà par rechercher par vous même. Et sinon ouvrez un nouveau sujet.