Menu

Classement [Résolu]

Messages postés
37
Date d'inscription
samedi 19 décembre 2015
Dernière intervention
2 décembre 2018
-
Bonjour,

J'ai un petit souci, j'aimerais faire un podium et donc les personnes sont classé normalement et ça se passe bien.
La ou j'ai un problème c'est pour les lots automatique par exemple le 1er gagne un truc le 2nd un autre truc et le 3eme un autre truc.

Voici mon code :

<?php
$attribuer_lot = $bdd->query("SELECT * FROM concours_peche WHERE numero_concours ='".$select_concours_ouvert['ID']."' ORDER BY points DESC LIMIT 1 OFFSET 0")->fetch();
$id_1er = $attribuer_lot['id'];
$attribuer_lot2 = $bdd->query("SELECT * FROM concours_peche WHERE numero_concours ='".$select_concours_ouvert['ID']."' ORDER BY points DESC LIMIT 1 OFFSET 1")->fetch();
$id_2nd = $attribuer_lot2['id'];
$attribuer_lot3 = $bdd->query("SELECT * FROM concours_peche WHERE numero_concours ='".$select_concours_ouvert['ID']."' ORDER BY points DESC LIMIT 1 OFFSET 2")->fetch();
$id_3tr = $attribuer_lot3['id'];

if ($id_1er = $don['id_membre']) {
 echo 'vous êtes premier';
}
elseif ($id_2nd = $don['id_membre']) {
 echo 'vous êtes deuxième';
}
elseif($id_3tr = $don['id_membre']){
 echo 'vous êtes troisième';
}
else
{
 
echo 'Vous n\'êtes pas sur le podium';
}
?>


Le souci c'est que l'echo "vous êtes premier" s'affiche pour les 3 premiers Hors, moi je voudrais que la phrase change en fonction de la place que le membre tien sur le podium.

Pouvez-vous m'aider please.
Afficher la suite 

Votre réponse

2 réponses

Messages postés
23569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 décembre 2018
0
Merci
Bonjour,

Déjà.. une comparaison dans un IF se fait avec == ou ===
un seul "=" sert à assigner une valeur.. pas à comparer.

Ensuite... faire 3 requêtes est inutile...
Ne peux tu pas faire un seule requête récupérant les 3 premiers... puis faire une boucle sur chaque pour les traiter ?

David987
Messages postés
37
Date d'inscription
samedi 19 décembre 2015
Dernière intervention
2 décembre 2018
-
c'est déjà fait la boucle sauf que ça fonctionne oui, mais moi j'aimerais que le lot se fasse automatiquement à 21H chaque soir et pour ça je doit savoir distinctement le 1er, le 2eme et le 3eme
David987
Messages postés
37
Date d'inscription
samedi 19 décembre 2015
Dernière intervention
2 décembre 2018
-
st bon, j'ai trouvé la solution et cela fonctionne.
Commenter la réponse de jordane45
Messages postés
23569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 décembre 2018
0
Merci

c'est déjà fait la boucle

Ben pas dans le code que tu nous montres...

ça fonctionne oui, mais moi j'aimerais que le lot se fasse automatiquement à 21H chaque soir

Et en quoi ça gêne ??


et pour ça je doit savoir distinctement le 1er, le 2eme et le 3eme

Même question que pour la précédente....:<< Et en quoi ça gêne ? >>

A ton avis... que donne cette requête ?
SELECT * 
FROM concours_peche 
WHERE numero_concours ='".$select_concours_ouvert['ID']."' 
ORDER BY points DESC LIMIT 3 

Puis un code php du genre :
$id_membre = !empty($don['id_membre']) ? $don['id_membre'] : NULL;
if($id_membre){
  $stmt = $bdd->query($sql);
  $i=0;
  $class = array('premier','second','troisième');
  $attribuer_lot = array();
  while ($row = $stmt->fetch()) {
     $attribuer_lot[$row['id']] = "Vous êtes " . $class[$i];
     $i++;
  }

  if(!empty($attribuer_lot[$id_membre])){
    echo $attribuer_lot[$id_membre]:
  }else{
    echo 'Vous n\'êtes pas sur le podium';
  }

}else{
  echo "Utilisateur inconnu !";
}

Commenter la réponse de jordane45