Probléme de checkbox

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probléme de checkbox

par arcä » 18 nov. 2007, 02:36

Pas de panique monsieur le gentil modo j'ai bien vue le bouton pour cloturé le post :D :D

par arcä » 18 nov. 2007, 02:35

Alors en se qui concerne l inscription au raid c'est vraiment difficile a expliqué .

Des personne que je ne connais pas on créer un site ICI spécialement concu pour les raid du jeu, sur se site je ne peut rien modiffier car il ne m'apartient pas .

sinon pour se qui et du site de notre guilde (team,groupe...) nous avons un forum phpbb avec un portail .

Créer un mod oui pourquoi pas sa me semble une trés bonne idée :D mais vu que je n'est aucune gestion sur le site des inscription cela ne m'avancera pas plus :).

Par contre il et vrai que je pourais créer un minisite d'inscription couplé de mon systéme de gestion de dkp , Pour cela je doit continuer a aprendre a codé des pages et des pages ... :D mais rien et impossible :)

Un big merci pour ton aide car mon probléme qui et a la base les checkbox et résolu .

par h0_noMan » 18 nov. 2007, 02:15

Donc tu devras après chaque raid définir qui s'est inscrit et qui a été présent.

Je pense que dans tes checkbox tu peu mettre nimporte quel value.
Mais je te conseille pour etre propre de mettre les value 1 et 10.

Apres dans ton code PHP.
1. Tu recuperes l'ancien DKP (devrait tu avoir la possibilite de le modifier par cette interface ?)
2. Si il est inscript alors DKP=DKP+1
3. Si il est present alors DKP=DKP+10

Donc le code que j'ai t'ai donné avant devrait fonctionner.

A part :

- Comment ton membre s'inscrit il ? (forum,messagerie prive,email)
- Vous devez avoir un Nuked-Clan ou autre chose du genre je suppose.

Si oui, je pense que tu devrais te lancer dans la création d'un mod (a moins qu'il en existe deja un) pour gere les DKP (les membres s'inscrivent et le +1 est automatiquement ajouté et apres tu as une page d'administration ou tu valides les presences et ajoute les +10)

par arcä » 18 nov. 2007, 02:08

Yessss merci ton code fonctione trés bien :)

Parcontre j'ai une autre question:

Et il possible de faire la méme chose avec un menu déroulent car en fait mon projet final resemblera a sa:

Image

par arcä » 18 nov. 2007, 01:59

merci pour ta réponse tu as tout compris a se que je voulais faire :)

Pour se qui et du mot dkp c'est le nom employé par les joueur de mmorpg pour te simplifier la chose on va appelé sa des points :) .

Donc vue que tu as compris :D se sera plus simple .

Explication:

alors a la base les joueur on 0 dkp, tout les soir nous allons tuer des gros monstre dans le jeu on nomme sa un raid.
Les joueur s'inscrive pour le raid sur un site , toute les personne inscrite gagne 1 dkp si la personne qui et inscrite et presente pour le raid on lui rajoute 10 dkp.

Les dkp serve a définir qui et prioritére pour remporté l'objet que le monstre nous donne une fois mort.

Et donc je voudrais créer se systéme en php/sql pour facilité la gestion des dkp .

Je teste les modif et je te tien au courant .

si tu a d'autre question je t'écoute par avance un gros merci pour ton aide :D :D

par h0_noMan » 18 nov. 2007, 01:34

Si je comprends bien.

Tu as dans ta ligue des joueurs qui ont tous un DKP.
Si ils sont inscript alors cela leurs ajoutent 1 au DKP.
Si ils sont présent alors cela leurs ajoutent 10 au DKP.

Explique moi plus en details comment cela fonctionne (le DKP).
Car tu devras faire des modifications sur ton code voire peut etre changé la structure de ta table.

En tout cas, tu as deja des erreurs.

<?php
// La tu ajoute a inscrit une valeur egal à ton DKP+1
// et a present une valeur egal à DKP+10
// Ce qui triplera ton DKP car tu ajoutes DKP , $_GET['inscrit'] et $_GET['presence']
// dans ton script PHP
?>
<input type="checkbox" name="inscrit" value="<?php echo($result->dkp+1) ;?>">
<input type="checkbox" name="present" value="<?php echo($result->dkp+10) ;?>">
Après si ces valeurs sont fixe (1 et 10) alors tu peux les mettre directement en dur dans ton php
  //récupération des valeurs des champs:
  $nom = $_POST["nom"] ;
  $dkp = $_POST["dkp"] ; 
  $dkp += (isset($_POST["inscrit"])) ? 1 : 0; 
  $dkp += (isset($_POST["present"])) ? 10 : 0; 

par arcä » 18 nov. 2007, 00:23

ok merci

alors la page 2 (checkbox):
  <?php
  //connection au serveur:
  $cnx = mysql_connect( "localhost", "root", "" ) ;
  
  //sélection de la base de données:
  $db = mysql_select_db( "bob" ) ;
  
  //récupération de la variable d'URL,
  //qui va nous permettre de savoir quel enregistrement modifier
  $id  = $_GET["id"] ;
  
  //requête SQL:
  $sql = "SELECT * FROM paladin WHERE id = $id";
	    
  //exécution de la requête:
  $requete = mysql_query( $sql, $cnx ) ;
  
  //affichage des données:
  if( $result = mysql_fetch_object( $requete ) )
  {
  ?>
<form name="insertion" action="modif3.php" method="POST">
  <input type="hidden" name="id" value="<?php echo($id) ;?>">
  <table border="2" align="center" cellspacing="2" cellpadding="2">
    <tr align="center">
      <td bgcolor="#FFFFFF">nom</td>
      <td><input type="text" name="nom" value="<?php echo($result->nom) ;?>"></td>
    </tr>
    <tr align="center">
      <td bgcolor="#FFFFFF">dkp</td>
      <td><input type="text" name="dkp" value="<?php echo($result->dkp) ;?>"></td>
    </tr>
    <tr align="center">
      <td bgcolor="#FFFFFF">inscription</td>
      <td bgcolor="#FFFFFF"><div align="left">
        <input type="checkbox" name="inscrit" value="<?php echo($result->dkp+1) ;?>">
      +1 si inscrit</div></td>
    </tr>
    <tr align="center">
      <td bgcolor="#FFFFFF">presence</td>
      <td bgcolor="#FFFFFF"><div align="left">
        <input type="checkbox" name="present" value="<?php echo($result->dkp+10) ;?>">
      +10 si present</div></td>
    </tr>
    <tr align="center">
      <td colspan="2" bgcolor="#FFFFFF"><p>
        <input type="submit" value="modifier">
          </p>        </td>
    </tr>
  </table>
</form>
  <?php
  }//fin if 
  ?>
et la page 3:
<?php
  //connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "bob" ) ;
 
  //récupération des valeurs des champs:
  $nom = $_POST["nom"] ;
  $dkp = $_POST["dkp"] ; 
  $dkp += (isset($_POST["inscrit"])) ? intval($_POST["inscrit"]) : 0; 
  $dkp += (isset($_POST["present"])) ? intval($_POST["present"]) : 0; 


  //récupération de l'identifiant de la personne:
  $id         = $_POST["id"] ;
  
  //création de la requête SQL:
 $sql ="UPDATE paladin SET nom='$nom', dkp='$dkp' WHERE id='$id'";
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
  
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }
?>

par h0_noMan » 18 nov. 2007, 00:13

Redonnes ton nouveau code.

Les checkbox ainsi que le code PHP.

par arcä » 18 nov. 2007, 00:04

Oups je me suis pas logué désolé :D

par Invité » 18 nov. 2007, 00:03

Donc voila j ai suivit tout se que vous m'avais dit mais toujour le méme probléme.
Quand je selectione 1 case et que je valide sa me compte bien les dkp prévu mais en plus de compté les dkp, sa les mutiplis.

si je selectione les 2 case la parcontre tout les dkp de cette personne tombe a zero

Je ne comprend plus rien snif .

par arcä » 16 nov. 2007, 01:14

Pour répondre a tong dans ma base j'ai 3 champ un champ 'id' un champ 'nom' et un champ 'dkp'

Question petétre béte pour vous :
il faut juste que tu calcule la valeur à donner à dkp.
j'ai pas trop saisie :shock:

se serais donc +1dkp et +10dkp ?? si oui ou les placer svp?

par h0_noMan » 16 nov. 2007, 00:58

Je rajouterais un intval dans le tas.
$dkp = $_POST["dkp"] ;
$dkp += (isset($_POST["inscrit"])) ? intval($_POST["inscrit"]) : 0;
$dkp += (isset($_POST["present"])) ? intval($_POST["present"]) : 0; 
Et dans une requete, les champs de type numerique ne doivent pas entre encapsuler entre 2 quote.

par arcä » 16 nov. 2007, 00:58

merci! merci! merci! sa marche :D

j'ai quand méme un dernier probléme lol

explication :

la checkbox inscrit et present sont parano ^^ normalement si je selectione les deux sa doit juste rajouté 11 dkp alors que la sa se multipli .
sinon je suis sur et se grace a vous que je suis pas loin du but :)

par Tong » 16 nov. 2007, 00:46

La c'est au niveau de ta base de donnée que tu as un problème. Tu essaye d'accéder à un champ qui n'existe pas.

J'imagine que ta base n'a qu'un seul champ dkp, et pas de champ inscrit et présent. La requête de ta page3 était donc bonne, il faut juste que tu calcule la valeur à donner à dkp.

Code : Tout sélectionner

$dkp = $_POST["dkp"] ; $dkp += (isset($_POST["inscrit"])) ? $_POST["inscrit"] : 0; $dkp += (isset($_POST["present"])) ? $_POST["present"] : 0;
Puis tu reprend ta 1ere requete, qui était bonne

Code : Tout sélectionner

$sql ="UPDATE paladin SET nom='$nom', dkp='$dkp' WHERE id='$id'";

par arcä » 16 nov. 2007, 00:37

Donc voila j ai modifier la ligne comme tu a marqué ,j'ai le message d éreur suivant:
Champ 'inscrit' inconnu dans field list