Je n'arrive pas à trouver un script de vote +1/ -1
Résolu/Fermé
gwen007
Messages postés
75
Date d'inscription
mardi 24 février 2015
Statut
Membre
Dernière intervention
23 juin 2023
-
15 févr. 2020 à 11:45
gwen007 Messages postés 75 Date d'inscription mardi 24 février 2015 Statut Membre Dernière intervention 23 juin 2023 - 15 févr. 2020 à 15:56
gwen007 Messages postés 75 Date d'inscription mardi 24 février 2015 Statut Membre Dernière intervention 23 juin 2023 - 15 févr. 2020 à 15:56
A voir également:
- Je n'arrive pas à trouver un script de vote +1/ -1
- Script vidéo youtube - Guide
- Trouver adresse mac - Guide
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Trouver un film sans le titre - Télécharger - Divers TV & Vidéo
- Trouver un lieu avec coordonnées gps - Guide
3 réponses
jordane45
Messages postés
38392
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2025
4 731
15 févr. 2020 à 12:53
15 févr. 2020 à 12:53
Bonjour,
Le script que tu as trouvé est pas mal ... à l'exception qu'il utilise ( dans le fichier dbcontroler ) l'ancienne technologie mysql qui est désormais obsolète.
A la place des instructions mysql_* il faut utiliser soit mysqli_* soit pdo.
Mais sur le principe le script reste valable.
- Une table dans une bdd pour stocker les votes
- Un script Javascript ( qui exécuteras des appels AJAX ) sur ta page principale afin de detecter les différents votes
- Un script PHP (dans un fichier différent de celui de ta page principale) qui va recevoir les appels ajax et stocker les votes dans la tables
Bien entendu, il faut un minimum de connaissances en
PHP, SQL, Javascript ( et pour design, html et css )
Quoi qu'il en soit, ici, ce n'est pas un salon de recrutement.... on ne fourni pas de code à la demande ( même contre rémunération ). Par contre on veut bien t'aider à condition que tu sois en mesure de nous expliquer exactement sur quel point précis tu bloques.
En repartant du script que tu nous montres, la première chose à faire serait de corriger toutes les vielles instructions mysql.
Ton fichier de gestion de la bdd deviendrait donc un truc du genre
Avec cette simple mise à jour du script... tout devrait fonctionner normalement.
Je te laisse essayer et revenir vers nous en expliquant ce que tu as testé, où se trouvent les différents fichiers et également si il y a des erreurs dans la console Javascript de ton navigateur.
NB:
je pense que tu cherches mal ... du moins.. lorsque l'on a un minimum de connaissances en DEV.
Si toi tu espères trouver un script totalement prêt à l'emploi sans avoir à mettre les mains dans le cambouis..oui là ça devient rare.. voir introuvable
NB²: ça ne m'a pris que 10 minutes pour faire cette correction. (et rédigér mon message sur le forum )
A ça, il faut rajouter éventuellement du temps pour faire les tests (que je n'ai pas fait) et du temps pour mettre le code exactement là où tu le souhaites sur ton site ( ce que je ne ferai pas non plus )
bref..; une personne qui te demanderai plus de 100 euros pour ça... c'est de l'arnaque.(sans savoir combien il voulait te prendre )
NB3 : La BDD n'est pas une obligation.. il n'avait pas tout à fait tord... mais c'est quand même vachement plus simplet et plus performant que de stocker dans des fichiers.
De là à te demander plus.. c'est exagérer !
Le script que tu as trouvé est pas mal ... à l'exception qu'il utilise ( dans le fichier dbcontroler ) l'ancienne technologie mysql qui est désormais obsolète.
A la place des instructions mysql_* il faut utiliser soit mysqli_* soit pdo.
Mais sur le principe le script reste valable.
- Une table dans une bdd pour stocker les votes
- Un script Javascript ( qui exécuteras des appels AJAX ) sur ta page principale afin de detecter les différents votes
- Un script PHP (dans un fichier différent de celui de ta page principale) qui va recevoir les appels ajax et stocker les votes dans la tables
Bien entendu, il faut un minimum de connaissances en
PHP, SQL, Javascript ( et pour design, html et css )
Quoi qu'il en soit, ici, ce n'est pas un salon de recrutement.... on ne fourni pas de code à la demande ( même contre rémunération ). Par contre on veut bien t'aider à condition que tu sois en mesure de nous expliquer exactement sur quel point précis tu bloques.
En repartant du script que tu nous montres, la première chose à faire serait de corriger toutes les vielles instructions mysql.
Ton fichier de gestion de la bdd deviendrait donc un truc du genre
<?php class DBController { private $host = "localhost"; private $user = "root"; private $password = ""; private $database = "blog_samples"; private $bdd=null; function __construct() { $this->connectDB(); } public function connectDB() { try{ $con = new PDO('mysql:host='.$this->host.';dbname='.$this->database.'; charset=utf8', $this->user, $this->password); // Activation des erreurs PDO $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $this->bdd = $con; } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } } public function queryExec($sql,$datas=NULL){ global $bdd; $result = NULL; //Execution de la requete try{ $requete = $this->bdd->prepare($sql) ; $requete->execute($datas) ; $result = $requete->rowCount(); //on retourne le nombre de lignes impactés par cette requête }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } return $result; } public function runQuery($query) { $result = NULL; //Execution de la requete try{ $requete = $this->bdd->prepare($sql) ; $requete->execute($datas) ; //on retourne un array contenant les résultats $result = $requete->fetchAll(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } return $result; } public function insertQuery($query) { $result = NULL; //Execution de la requete try{ $requete = $this->bdd->prepare($sql) ; $resultatRequete = $requete->execute($datas) ; $result = $returnNewId == true ? $requete->rowCount() : $resultatRequete; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } return $result; } public function numRows($query) { $result = $this->runQuery($query); $rowcount = !empty($result) ? count($result) : 0; return $rowcount; } public function updateQuery($query) { $result = $this->queryExec($query); return $result; } function deleteQuery($query) { $result = $this->queryExec($query); return $result; } //---------------------------------------// //fin de la class //---------------------------------------// } ?>
Avec cette simple mise à jour du script... tout devrait fonctionner normalement.
Je te laisse essayer et revenir vers nous en expliquant ce que tu as testé, où se trouvent les différents fichiers et également si il y a des erreurs dans la console Javascript de ton navigateur.
NB:
ce genre de script est difficile à trouver ou alors je cherche mal.
je pense que tu cherches mal ... du moins.. lorsque l'on a un minimum de connaissances en DEV.
Si toi tu espères trouver un script totalement prêt à l'emploi sans avoir à mettre les mains dans le cambouis..oui là ça devient rare.. voir introuvable
NB²: ça ne m'a pris que 10 minutes pour faire cette correction. (et rédigér mon message sur le forum )
A ça, il faut rajouter éventuellement du temps pour faire les tests (que je n'ai pas fait) et du temps pour mettre le code exactement là où tu le souhaites sur ton site ( ce que je ne ferai pas non plus )
bref..; une personne qui te demanderai plus de 100 euros pour ça... c'est de l'arnaque.(sans savoir combien il voulait te prendre )
NB3 : La BDD n'est pas une obligation.. il n'avait pas tout à fait tord... mais c'est quand même vachement plus simplet et plus performant que de stocker dans des fichiers.
De là à te demander plus.. c'est exagérer !
jordane45
Messages postés
38392
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2025
4 731
15 févr. 2020 à 15:43
15 févr. 2020 à 15:43
Petit oubli de ma part.
Il faut retirer les $datas.
Voici le code corrigé
Il faut retirer les $datas.
Voici le code corrigé
<?php class DBController { private $host = "localhost"; private $user = "root"; private $password = ""; private $database = "blog_samples"; private $bdd=null; function __construct() { $this->connectDB(); } public function connectDB() { try{ $con = new PDO('mysql:host='.$this->host.';dbname='.$this->database.'; charset=utf8', $this->user, $this->password); // Activation des erreurs PDO $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $this->bdd = $con; } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } } public function queryExec($sql){ global $bdd; $result = NULL; //Execution de la requete try{ $requete = $this->bdd->prepare($sql) ; $requete->execute() ; $result = $requete->rowCount(); //on retourne le nombre de lignes impactés par cette requête }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } return $result; } public function runQuery($query) { $result = NULL; //Execution de la requete try{ $requete = $this->bdd->prepare($sql) ; $requete->execute() ; //on retourne un array contenant les résultats $result = $requete->fetchAll(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } return $result; } public function insertQuery($query) { $result = NULL; //Execution de la requete try{ $requete = $this->bdd->prepare($sql) ; $resultatRequete = $requete->execute() ; $result = $returnNewId == true ? $requete->rowCount() : $resultatRequete; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } return $result; } public function numRows($query) { $result = $this->runQuery($query); $rowcount = !empty($result) ? count($result) : 0; return $rowcount; } public function updateQuery($query) { $result = $this->queryExec($query); return $result; } function deleteQuery($query) { $result = $this->queryExec($query); return $result; } //---------------------------------------// //fin de la class //---------------------------------------// } ?>
gwen007
Messages postés
75
Date d'inscription
mardi 24 février 2015
Statut
Membre
Dernière intervention
23 juin 2023
4
15 févr. 2020 à 15:56
15 févr. 2020 à 15:56
Merci infiniment ..
Je viens (infiin) de réussir à installer celui-ci https://coursesweb.net/php-mysql/voting-up-down-script-ajax_s2
Merci pour ton aide Jordan^^
Je viens (infiin) de réussir à installer celui-ci https://coursesweb.net/php-mysql/voting-up-down-script-ajax_s2
Merci pour ton aide Jordan^^
gwen007
Messages postés
75
Date d'inscription
mardi 24 février 2015
Statut
Membre
Dernière intervention
23 juin 2023
4
15 févr. 2020 à 14:26
15 févr. 2020 à 14:26
Merci, c'est super gentil de me donner du temps et ton aide.
J'ai posé ce topic en etant vraiment désespéré. En générale j arrive à mes fins grace à des recherche mais la non, je n'y arrive vraiment pas.
Parfois j arrive à trouver des solutions , alors que je n ai pas appris à le faire et c'est à force de chercher que j'y arrive.
Mais la je suis bloqué.
J'ai donc recommencé à installer ce script car j étais déjà parti sur un autre.
Au départ ce qui clochait, c'était que la page index ne s'affichait pas (Cette page ne fonctionne pas)
J'ai donc utilisé ta correction et maintenant j ai une erreur (Erreur ! SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty Les datas :)
Qui est donc une erreur de base donnée, définition de Microsoft: Les indicateurs de verrou NOLOCK et READUNCOMMITTED ne sont pas autorisés pour les tables cibles des instructions INSERT, UPDATE DELETE ou MERGE.
J'ai trouvé ca aussi : https://community.librenms.org/t/production-error-sqlstate-42000-syntax-error-or-access-violation-1065-query-was-empty-sql-sql/7360
La personne à pu corriger l erreur : J'ai changé l'association de port de périphérique en «ifIndex», fonctionne.
Suis-je sur le bon chemin ?
C'est vraiment à s 'arracher les cheveux
J'ai posé ce topic en etant vraiment désespéré. En générale j arrive à mes fins grace à des recherche mais la non, je n'y arrive vraiment pas.
Parfois j arrive à trouver des solutions , alors que je n ai pas appris à le faire et c'est à force de chercher que j'y arrive.
Mais la je suis bloqué.
J'ai donc recommencé à installer ce script car j étais déjà parti sur un autre.
Au départ ce qui clochait, c'était que la page index ne s'affichait pas (Cette page ne fonctionne pas)
J'ai donc utilisé ta correction et maintenant j ai une erreur (Erreur ! SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty Les datas :)
Qui est donc une erreur de base donnée, définition de Microsoft: Les indicateurs de verrou NOLOCK et READUNCOMMITTED ne sont pas autorisés pour les tables cibles des instructions INSERT, UPDATE DELETE ou MERGE.
J'ai trouvé ca aussi : https://community.librenms.org/t/production-error-sqlstate-42000-syntax-error-or-access-violation-1065-query-was-empty-sql-sql/7360
La personne à pu corriger l erreur : J'ai changé l'association de port de périphérique en «ifIndex», fonctionne.
Suis-je sur le bon chemin ?
C'est vraiment à s 'arracher les cheveux