Systeme de vote , php mysql

max1395 -  
allyson77 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voila je suis en train de réaliser mon site et je voudrais qu'a un endroit du site , il y est la fonction : J'aime , J'aime pas . et que après sa enregister dans ma bdd le total de gens qui aime - le total de gens qui aime pas . donc j'ai réaliser un code en php/mysql et voila ce que sa fais :
//fonction j'aime 
<img src="j'aime.jpg" onclick="<?php  
$select='1'; 
$nom='nom' ; // je n'ai pas mis de nom expres 
mysql_connect("localhost", "root", "") or 
die("Impossible de se connecter : " . mysql_error()); 
mysql_select_db(""); 
$sql ="SELECT vote FROM film WHERE nom= '$nom' "; 
mysql_query($sql) or die("Erreur SQL.<br>$sql<br>".mysql_error()); 
$vote=$data['vote']; 
$vote=$vote+$select ; 
mysql_connect("localhost", "root", "l") or 
die("Impossible de se connecter : " . mysql_error()); 
mysql_select_db(""); 
$sql ="UPDATE film SET vote = '$vote' WHERE nom = '$nom' "; 
mysql_query($sql) or die("Erreur SQL.<br>$sql<br>".mysql_error()); 
?>alert('Vote vote a bien été pris en compte');">  

//fonction  j'aime pas ; pas encore fais mais c'est de la meme facon que l'autre fonction 
<img src="j'aime pas.jpg" onclick="">  

Merci
A voir également:

9 réponses

allyson77 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
Tu ne peux pas exécuter directement du code PHP sur un évènement onclick.
Lorsqu'un utilisateur affiche une page web, elle est téléchargé sur son PC.

Pour envoyer une nouvelle requête au serveur, il faut soit recharger la page (lien sur ton image), soit faire une requête en ajax.

Pour cette dernière solution, la plus esthétique à mon goût. Je te conseil d'utiliser la librairie jquery.

Dans ton cas, il suffit de

1. placer ce code entre tes balises head

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>


2. il faut appeller une fonction javascript
<img src="..." onclick="jaime(3)" />


3. créer cette fonction javascript
   <script type="text/javascript">
function jaime(id_site) {
    $.ajax({
        url: 'jaime.php',
        data: 'id_site='+id_site
    });
}
</script>

4. Créer ton code php (jaime.php),

tu peux récupérer le paramètre id_site avec un $_REQUEST['id_site'] en php...
Soit "3" dans cet exemple
0
max1395
 
Merci de votre réponse aussi complete . Bon j'ai essayer avec le film Avatar (example) :

page avatar.php :
Entre head :
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>

après dans le code
</code>
<img src="j'aime.jpg" onclick="jaime(3)"> 


<script type="text/javascript">
function jaime(id_site) {
    $.ajax({ 
        url: "jaime.php",
        data: "id="+avatar
    });
}
</script>


Dans j'aime.php
<?php 
$select='1';
$nom=$_REQUEST['id_site'];
mysql_connect("localhost", "root", "") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("");
$sql ="SELECT vote FROM film WHERE nom= '$nom' ";
mysql_query($sql) or die("Erreur SQL.<br>$sql<br>".mysql_error());
$vote=$data['vote'];
$vote=$vote+$select ;
mysql_connect("localhost", "root", "") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("");
$sql ="UPDATE film SET vote = '$vote' WHERE nom = '$nom' ";
mysql_query($sql) or die("Erreur SQL.<br>$sql<br>".mysql_error());
?>

Sauf que sa marche pas....Je ne sais pas pourquoi
0
allyson77 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
function jaime(id_site) {
$.ajax({
url: "jaime.php",
data: "id="+avatar
});
}
Ta oublié de changer id_site
Correction :
function jaime(avatar) {
$.ajax({
url: "jaime.php",
data: "id="+avatar
});
}
$nom=$_REQUEST['id'];

Le fichier jaime.php doit être placé dans le même répertoire que la page ou tu te trouve.
Essaye une fois ca
0
max1395
 
Non cela ne fonctionne toujours pas ...

revoila le code
<img src="j'aime.jpg" onclick="jaime(3)"> 


<script type="text/javascript">
function jaime(avatar) { 
$.ajax({ 
url: "jaime.php", 
data: "id="+avatar 
}); 
} 
</script>


Et de la pager jaime.php
<?php 
$select='1';
$nom=$_REQUEST['id']; 
mysql_connect("localhost", "root", "") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("");
$sql ="SELECT vote FROM film WHERE nom= '$nom' ";
mysql_query($sql) or die("Erreur SQL.<br>$sql<br>".mysql_error());
$vote=$data['vote'];
$vote=$vote+$select ;
mysql_connect("localhost", "root", "") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("aming");
$sql ="UPDATE film SET vote = '$vote' WHERE nom = '$nom' ";
mysql_query($sql) or die("Erreur SQL.<br>$sql<br>".mysql_error());
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
allyson77 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
L'erreur dois venir de ton code PHP. Tu ne devrais pas avoir 2 mysql_select_db
Le mysql_select_db("aming"); doit être placé après le mysql_connect
De plus, t'as requete SQL n'est pas mise dans la variable $data, donc impossible de l'incrémenter.
En plus propre ca donnerais quelque chose comme ca :

<?php 

mysql_connect("localhost", "root", "") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("aming");

$nom=$_REQUEST['id']; 
$sql ="UPDATE film SET vote=vote+1 WHERE nom= '$nom' ";
mysql_query($sql) or die("Erreur SQL.<br>$sql<br>".mysql_error());

?>


La connexion ne se fait qu'une seule fois en début de fichier.
Pour tester si ton code php est bon, tu peux aller sur http://localhost/jaime.php?id=3
C'est exactement l'adresse qu'est appelé par l'ajax.
Si le PHP fonctionne bien, le reste devrait aller ensuite.

PS: Localhost si tu travail en local biensur...
0
max1395
 
Bon alors quand je vais directement sur la page , ca marche . Mais quand je clique sur l'image J'aime , rien ne se passe ....
0
allyson77 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
Ton script serais en ligne par hasard?
essaye de rajouter ca pour voir l'éventuelle erreur :

<script type="text/javascript">
function jaime(avatar) {
$.ajax({
url: "jaime.php",
data: "id="+avatar,
error: function(XMLHttpRequest, textStatus, errorThrown) { alert(textStatus+" "+errorThrown); },
success: function(data) { alert(data); }
});
}
</script>

Regarde également dans la console d'erreur si tu utilise firefox (outils->console d'erreurs)
0
max1395
 
Ca a l'air de marcher :) merci beaucoup ! Mais ca marche que avec firefox en faite .... Mais c'est pas grave ca marche c'est le principal !! merci merci beaucoup
0
allyson77 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
A+ :-)
0