Bonjour,

Voila je rencontre un petit problème avec mon code.

Je suis en train de créer un système de concour sur mon site mais je n'arrive pas a faire en sorte que un utilisateur ne puisse s'inscrire que une seul fois avec l'ID de son compte...
En gros l'utilisateur s'inscrit bien une première fois mais si il retourne sur se meme concours, il peut se réinscrire
Y aurait il un moyen de faire en sorte que : si l'ID de l'utilisateur qui veut s'inscrire est deja renseigné dans la table participants_lol alors il ne peut pas s'inscrire ?

<?php
require '../admin/database.php';
$query = "SELECT COUNT(*) FROM participants_lol WHERE id_concour = '".(int)$id."'"; 
$rs_query = mysql_query($query); 

list($count) = mysql_fetch_row($rs_query); 
echo "Le concour contient ".$count." participant(s)";
$user_id = $_SESSION['auth']->id;

    if(isset($_POST['pseudo']))
    {
        $sql = mysql_query("SELECT * FROM participants_lol WHERE id_concour = '".(int)$id."'");
        if($_POST['user_id'] !== session_id()){

        $pseudo = $_POST['pseudo'];

            $query = "SELECT COUNT(*) FROM participants_lol WHERE id_concour = '".(int)$id."'"; 
            $rs_query = mysql_query($query); 
            list($count) = mysql_fetch_row($rs_query); 
            $nbmaxi = $row->nbmaxi;

            if ($nbmaxi >= $count){

                    $sql = mysql_query("INSERT INTO participants_lol (id_user, id_concour, pseudo, date_entered) VALUES ('".$user_id."','".(int)$id."','".$pseudo."', NOW())");
                    echo 'Inscription confirmé';

            }else{
                    echo 'concour fermer';
                    die();
                }

        }else{
            echo 'deja inscrit';
        }

    }else{
    echo 'probleme d\'inscriptin';
    }
                ?>

Merci d'avance pour votre aide,
Bonne journée

6 réponses


Bonjour,
Parcourer la liste des inscrits et si l'id de l'utilisateur si trouve alors, il ne peut pas s'inscrire.

Kygnion
Auteur

C'est se que j'ai essayé de faire avec cet ligne :
$sql = mysql_query("SELECT * FROM participants_lol WHERE id_concour = '".(int)$id."'");

ensuite comparer avec l'id de l'utilisateur et le tour est joué

Kygnion
Auteur

Peut tu me donner la solution s'il te plais ?

1/ Récupérer la liste des participants
2/ Comparer celle-ci avec l'id de l'utilisateur
3/ Effectuer le traitement suivant le ou les résultats.

Voilà la solution

Bonsoir.

Peut tu me donner la solution s'il te plais ?

L'aide sur le forum ne consiste pas à donner un code tout près, mais à dire où la personne à pu faire une erreur et/ou le guider.
Si nous te donnons la réponse toute prête en te donnant le code final, ce ne sera pas comme ça que tu apprendras et tu feras par la suite plusieurs demandes d'aide pour le même problème, ce qui ne t'aidera pas.