IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requête pour affichage nombre de "likes" / Ajax, PHP, MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Femme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Points : 53
    Points
    53
    Par défaut 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 :
    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

    (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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
    		});
    	}
    });

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    il faut commencer par lire... et comprendre le message d'erreur.
    Ca permet, au moins, de chercher au bon endroit !
    Notice: Undefined variable: bdd in C:\Wamp\www\...\function.php on line 7
    Fatal error: Call to a member function query() on a non-object in C:\Wamp\www\...\function.php on line 7
    => $bdd n'est pas défini dans la fonction nombre_jaime(), à la ligne 7.

    Il suffit d'ajouter global $bdd :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function nombre_jaime($Id)
    {
    	global $bdd
    	$Id = (int)$Id;
     
    	$req = $bdd..................

Discussions similaires

  1. [AC-2007] filtrer requête pour affichage
    Par nagadscar dans le forum Access
    Réponses: 2
    Dernier message: 06/10/2010, 14h48
  2. [MySQL] Modification de requête pour affichage différent
    Par Equinoxe5 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/04/2009, 14h47
  3. requête pour affichage
    Par nabil192 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/09/2008, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo