Requête pour affichage nombre de "likes" / Ajax, PHP, MySQL
Bonjour à tous,
J'ai une galerie photo sur laquelle on peut uploader des images qui viennent automatiquement alimenter la galerie en s'affichant directement sur la page.
Sur cette galerie je suis en train de mettre en place un système de likes à la FB : en-dessous de chaque photo uploadée et affichée sur la page on trouve un pouce pour liker la photo en question + un compteur indiquant le nombre total de likes de la photo.
Le pouce est un lien <a> couplé à un bout d'Ajax pour mettre à jour ma BDD.
J'ai un blocage sur la fonction PHP que j'essaye d'écrire pour le compte total de likes par Id de photo: je me rends bien compte qu'il y a un hic sur la variable $Id de ma requête mais je ne sais pas réellement quelle variable indiquer à la place ?
Lorsque je fais un test sur ma page gallery.php (ligne 54) pour afficher le nombre de likes de la photo dont l'Id=1 , voici les messages d'erreur renvoyés :
Citation:
Notice: Undefined variable: bdd in C:\Wamp\www\...\function.php on line 4
Fatal error: Call to a member function query() on a non-object in C:\Wamp\www\...\function.php on line 4
Y a-t-il quelqu'un pour m'aider à passer un bon WE ? ;-)))))
Merci et bon WE à tous 8-)
(Merci par avance pour votre indulgence, je mets tout juste mon nez dans l'Ajax et pour l'instant je rame. Néanmoins j'ai cherché avant de poster et là je suis en train de perdre 10 points de vie à la minute)
Ci-dessous les codes de mes différentes pages :
gallery.php (page d'upload des images)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| <?php
require "connect.php";
include "function.php";
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
<div id="conteneur">
<?php
$dir = 'uploadPics/';
$reponse = $bdd->query('SELECT Id,nomPhoto,titre,description,jaime FROM uploadphotos ORDER BY Id DESC');
while ($donnees = $reponse->fetch()){
echo "<div class=\"cadrePhoto\">";
echo $donnees['Id'];
echo "<br />";
echo $donnees['titre'];
echo "<br />";
echo $donnees['description'];
echo "<br />";
echo "<img src='".$dir.$donnees['nomPhoto']."' />";
echo "<br />";
echo $donnees['nomPhoto'];
echo "<br />";
echo "<a class='".$donnees['Id']."'><img id=\"thumb\" src=\"ThumbFB.png\" /></a> (<span id='id".$donnees['Id']."'>".$donnees['jaime']."</span>)";
echo "</div>";
}
$reponse->closeCursor();
nombre_jaime(1);
?>
<script src="func.js"></script>
</div>
</body>
</html> |
function.php
Code:
1 2 3 4 5 6 7 8 9
| <?php
function nombre_jaime($Id){
$Id = (int)$Id;
$req = $bdd->query('SELECT * FROM uploadphotos WHERE Id="$Id"');
$donnees2 = $req->fetch();
$nombrejaime = $donnees2['jaime'];
echo $nombrejaime;
}
?> |
func.js
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| $(document).ready(function(){
$('a').click(function(){
var Id = $(this).attr('class');
$.post('show_like.php',{Id:Id},function(data){
if(data=="ok"){
add_like(Id);
}
});
});
function add_like(Id){
$.post('add_like.php',{Id:Id},function(data){
$('#id'+Id+'').text(data);
});
}
}); |