Requête SQL dans une page PHP

Petit nouveau ! | 3 Messages

22 juin 2009, 16:58

Bonjour,
Je souhaiterais insérer un lien qui envoi une requête SQL à ma DB dans une page PHP.
Mon site permet en quelque sorte d'acheter des objets en échanges de points, obtenus si le membre clique sur un lien toutes les deux heures. Il faut d'abord donner son nom de compte et son mot de passe pour accéder au site. Je souhaiterais que ce lien apparaisse toutes les deux heures donc, pour chaque IP (afin d'éviter le multi-compte), et qu'il incrémente +1 sur la colonne "votes" du compte du membre.
Je pensais faire un truc du genre :
$query = "UPDATE accounts SET votes = votes + 1 WHERE id = '".$_SERVER["PHP_SELF"]."'";
(je crois je me suis un peu trompé à la fin de la requête désolé)

Merci de vos futures réponses

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

22 juin 2009, 17:03

Tu n'es pas mal parti, mais la variable que tu utilises comme paramètre n'est pas la bonne.
$query = "UPDATE accounts SET votes = votes + 1 WHERE id = '".$_SERVER["PHP_SELF"]."'"; 
$_SERVER["PHP_SELF"] est le nom de la page qui contient le formulaire sur lequel tu es.
$query = "UPDATE accounts SET votes = votes + 1 WHERE id = ".$_POST["id"]; 
conviendra mieux si le champ de saisie dans ton formulaire s'appelle id.

NB : id étant vraisemblablement un entier (donc un numérique), pas besoin d'apostrophes. ;)

Petit nouveau ! | 3 Messages

22 juin 2009, 17:06

Merci beaucoup albat j'essaye d'intégrer ton code dans ma page dans la soirée et je te tiens au courant par la suite.
En effet l'id du compte est un nombre numérique^^

Bonne soirée.

PS : Par contre, quelqu'un aurait-il une idée pour bloquer l'affichage du lien pour les membres dont l'IP a déjà voté 1 fois il y a moins de 2 heures ?
Merci.

ViPHP
ViPHP | 2291 Messages

22 juin 2009, 18:30

Par contre, quelqu'un aurait-il une idée pour bloquer l'affichage du lien pour les membres dont l'IP a déjà voté 1 fois il y a moins de 2 heures ?
Merci.
Salut,
Comme ceci peut-être :?: :wink:
<?php
date_default_timezone_set("Europe/Paris"); //-->Fuseau Horraire.--//

$heure_clique = "17:36:00"; //-->Heure du drenier clique.--//
$heure_actuelle  = date("H:i:s"); //-->Heure actuel.--//

//-->Heure a partir de laquelle un nouveau clique est permis ici 2 heure (2 hours).--/
$new_clique  = date("H:i:s", strtotime( $heure_clique . " +2 hours"));

//-->Si l'heure actuel est égal ou plus grande que l'heure du dernier clique ont affiche le lien sinon rien.--//
$lien = ( $heure_actuelle >= $new_clique) ? 'Affiche lien' : 'Pas de lien';


?>
On remarquera mon effort à détailler mon code hein :wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 3 Messages

23 juin 2009, 11:59

Merci beaucoup dunbar !
J'intègre ça dans ma page ma je n'y arrive pas vraiment^^ Si je ne trouve toujours pas demain , je vous post le début de ma page.
Merci de vos réponses.

Citation:
On remarquera mon effort à détailler mon code hein
Merci !^^


EDIT DU MARDI 23 JUIN :

Bon, je n'arrive pas à faire fonctionner la page alors je vous post ça :

</table>
</table>
<br>
<a href="vote.php" class="lienmenu">Voter pour le serveur</a><br />
<a href="buy_logs.php" class="lienmenu">Historique vos achats</a><br />
<a href="trade.php" class="lienmenu">Faire un don de points</a><br />
<a href="logout.php" class="lienmenu">Se déconnecter</a><?php

Comment faire pour que le lien Voter pour le serveur ne soit visible que toutes les deux heures pour chaque IP ? Je n'arrive pas à implanter le code de dunbar dedans, car je n'ai envie que ce ne soit que ce lien qui disparaise si on a deja cliqué dessus il y a moins de deux heures, et pas les trois autres.

Merci de votre aide.