Poster une réponse  Créer un sujet 
Pages (4): « Première < Précédente 1 2 [3] 4 Suivante > Dernière »
[Résolu] Déplacer un champ de la base de donnee via un formulaire
Auteur Message
biboum
Membre


Messages : 55
Groupe : Membre
Inscription : Aug 2008
Statut : Hors ligne
Réputation : 0
Message : #21
RE: déplacer un champ de la base de donnée via un formulaire

Bon j'ai tout supprimer ce formulaire, et refait, encore une fois. Il est vraiment plus clair.
En revanche je viens de comprendre que vu que c'est un formulaire radiobutton en boucle, avec une insertion d'affichage d'un élémént de la base de données, la valeur n'est pas fixe.

Donc ce problème régler, la suite viendra d'elle même surement.
Enfin je l'espère...mais cela expliquerait pourquoi quand je lui demandais d'inserer via "submit" dans la base de donnée, cela ne m'affichait que "radiobutton". Ce qui me permettrait ensuite avec des "DROP" et autres "INSERT" de continuer les informations à donner au formulaire. non ? Enfin déjà ...restons en là, comment lié le radiobutton à ma donnée non fixe ?

08-07-2008 01:54 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
keke
Modérateur JeuPHP
*****


Messages : 1,035
Groupe : Modérateur JeuWeb
Inscription : Mar 2007
Statut : Hors ligne
Réputation : 15
Message : #22
RE: déplacer un champ de la base de donnée via un formulaire

Je suis largué 34.

Tu pourrais le code source complet ? qu'on puisse avoir une idée un peu moins ... "théorique".

Dans l'idée d'Oxman (qui me semble LA solution la plus adaptée à ton cas) il n'y a insertion de donnée Que lorsque tu souhaites rajouter un nouveau pays.
Dans les autres cas, ce ne sont que des modifications...

Bon courage !

kéké
PS : une table de ce type :
PAYS
nom_pays, id_joueur_possédant

Pourrait peut-être même être mieux, selon ton contexte. un Id_jour_possedant à 0 serait alors par exemple un pays vide.


Kéké
Administrateur du jeu médiéval http://Magdales.com
Papa depuis 15 mois. Modérateur de jeuPHP 34.
08-07-2008 03:20 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
biboum
Membre


Messages : 55
Groupe : Membre
Inscription : Aug 2008
Statut : Hors ligne
Réputation : 0
Message : #23
RE: déplacer un champ de la base de donnée via un formulaire

En fait je crois que je suis largué aussi 2

Et à chaque modif y a un nouveau truc qui apparait 2

Il semblerait que j'ai régler mon probleme de buttonradio. Que cela s'inscrit dans la base de donnée (en théorie vu qu'il manque quelque chose)
Et que le bouton submit marche.

Il me reste encore à faire une redirection vers la page d'accueil après le formulaire. Ainsi que le session_start :s

Mais si ca rebug je reviens essayer ta solution 10

08-07-2008 04:50 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Single Dark
Membre


Messages : 98
Groupe : Membre
Inscription : Jun 2007
Statut : Hors ligne
Réputation : 0
Message : #24
RE: déplacer un champ de la base de donnée via un formulaire

Bonyour,

Pour moi, la meilleur solution reste celle de KéKé.

For exemple :

table_pays a écrit :
|..pays.......|..id_joueur..|
|.France.....|............1...|
|.Allemagne.|............0...|


Donc la France appartient au joueur avec l'id 1.
L'allemagne en revanche n'appartient à personne, d'ou l'id 0 soit tu peut laisser vide.

Ensuite, si j'ai bien comprid, un nouveau joueur arrive, avec l'id 3, il doit choisir son pays. Il ne peut choisir que les pays libres, donc avec l'id 0.

Voici comment je vois la chose :

Code PHP :
session_start();
$_SESSION['id_joueur'] = '3';// Bien sur il faut utiliser sa avec ta struture existante

  //** Premiere méthode **//
//-- Soit tu choisi directement dans la requete de ne pas inclure les pays déjà prid --//
$requete_pays mysql_query('SELECT * FROM table_pays WHERE id_joueur=="0" ');

  
//** Deuxieme méthode **//
//-- Soit tu choisi de les inclures --//
$requete_pays mysql_query('SELECT * FROM table_pays');

//**-- 1er methode --**//
echo '<form method="POST" action="page_de_traitement.php">';
// Ensuite tu lance ton while, pas trop fort quand même //
while    ($sql_pays    =mysql_fetch_assoc($requete_pays))
{
echo 
'<input type="radio" name="pays" value="'.$sql_pays['pays'].'" />';
}
echo 
'<input type="submit" value="Suivant" />';
</
form>
//**-- FIN 1er methode --**//

//**--2eme methode --**//
echo '<form method="POST" action="page_de_traitement.php">';
// Toujours la boucles //
while    ($sql_pays    =mysql_fetch_assoc($requete_pays))
{
// Ca change a se niveau
if ($sql_pays['id_joueur'] != '0' || $sql_pays['id_joueur'] != '')
// En gros si le pays appartient deja a quelqu'un il est impossible de clique sur le radio//
$radio'disabled="disabled"';
}
else
{
$radio='';
}
echo 
'<input type="radio" name="pays" value="'.$sql_pays['pays'].'" '.$radio.'/>';
}
echo 
'<input type="submit" value="Suivant" />
</form>'
;
//**-- FIN 2eme methode --**// 


Voilà pour la page du formulaire
After il faut bien traiter tous çà !?!

Code PHP :
session_stat();

$_POST['pays']
//Après tous çà il va falloir mettre la mise a jour
mysql_query ('UPDATE table_pays SET id_joueur="'.$_SESSION['id_joueur'].'" WHERE pays=$_POST['pays']');

// Ensuite une belle redirection
header(    "Location: ../index.php"); 


Il se peut qu'il y est des erreurs, j'ai pas tester, mais dans les grandes lignes c'est çà...

Maintenant il se peut aussi que je n'ai rien compris au problème, et dans ce cas la, je m'en excuse...


Single Dark


[W.I.P] Star Commander [W.I.P]
_____________________________

08-09-2008 02:06 AM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
biboum
Membre


Messages : 55
Groupe : Membre
Inscription : Aug 2008
Statut : Hors ligne
Réputation : 0
Message : #25
RE: déplacer un champ de la base de donnée via un formulaire

Merci beaucoup single Dark. J'avais pensé comme je l'ai dit dans un précédent message, si ma solution ne marcherait pas d'utiliser un système à la Kéké, voir la tienne bien plus explicitement expliqué 16

Pour le moment j'ai fais quelque chose qui semble correct en reprenant plutôt l'idée d'oxman. Je lie le pays avec le pseudo. Tout comme le payspris aura pour valeur null. Donc un peu le même cas que toi avec la valeur0 de l'id.

Bon je dois avoir un probleme à l'identification car on dirait qu'il ne reconnait pas mon pseudo dans le code. Donc je le met ci dessous. Le formulaire c'est ok, la base de donnée c'est ok, il y a juste un probleme dans l'identification et le suivi de l'identification du pseudo à l'étape avant d'arriver sur cette page qui empeche d'executer l'UPDATE et l'INSERT demandé par le formulaire.

Voilà la page de choix du pays :

Code :
<?php # // on se connecte à notre base  
$base = mysql_connect ('localhost', 'root', '');  
mysql_select_db ('cosmopoeia', $base) ;  
?>
<?php require_once('Connections/membre.php');
?>
<?php
mysql_select_db($database_membre, $membre);
$query_Recordset1 = "SELECT paysdispo from pays where paysdispo NOT IN (select paysjoue from membre)";
$Recordset1 = mysql_query($query_Recordset1, $membre) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
<iframe id="scripts" frameborder="0" width="0" height="0"></iframe>

<p align="center">Veuillez choisir votre pays que vous allez repr&eacute;senter :</p>
<div align="center">
  <table width="250" border="1">
    <tr>
      <td width="137">Pays</td>
      <td width="97">Choix du pays </td>
    </tr>
  </table>
</div>
<form name="formulaire" method="post" target="scripts" action="traitement_inscription.php">
  <div align="center">
    <table width="248" border="1">
      <tr>
        <td width="136">&nbsp;</td>
        <td width="96"><label>
        <input type="radio" name="payscocher" value="<?php echo $row_Recordset1['paysdispo']; ?>">
         <?php echo $row_Recordset1['paysdispo']; ?></label></td>
      </tr>
    </table>  
  </div>
  <label>
  <div align="center">
    <input type="submit" name="Submit" value="Envoyer" />
  </div>
  </label>
</form>
<p>&nbsp;</p>

<?php
mysql_free_result($Recordset1);
?>


Et celle de traitement du formulaire :

Code :
<?php session_start();?>
<?php # // on se connecte à notre base  
$base = mysql_connect ('localhost', 'root', '');  
mysql_select_db ('cosmopoeia', $base) ;  
?>
<?php require_once('Connections/membre.php');
?>

<html>
<!DOCTYPE html PUBLIC"-//w3c//DTD XHTML 4.1 Strict//EN""http://www.w3.org/TR/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-Language" content="fr, fr-be, fr-ca, fr-lu, fr-ch">
<meta name="Distribution" content="global">
<meta name="publisher" content="dad72">
<meta name="Author" content="dad72">
<link rel="stylesheet" media="screen" type="text/css" title="style" href="style/style.css" />
</head>
<body>
<?php mysql_query("UPDATE membres SET paysjoue = '" . $_POST['payscocher'] ."' WHERE pseudo = '". $_SESSION['pseudo'] . "'");
?>
<?php echo $_SESSION['pseudo']; ?>
</body>
</html>


Il faut bien se dire qu'avant d'arriver sur la page du choix du pays, on a dù s'identifier, donc normalement la superglobale SESSION prééxiste.

Je débute alors pardonnez mon éparpillement dans ce dossier...où depuis le début du forum je suis passé à un tout autre probleme. Mais si dans ce code là vous ne trouvez pas d'où viens l'erreur et moi non plus entre temps, je reviendrais tenter d'utiliser ton systeme Single Dark qui est aussi surement le mieux organisé dans la base de donnée.

08-09-2008 02:46 AM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman
Membre


Messages : 680
Groupe : Membre
Inscription : May 2008
Statut : Hors ligne
Réputation : 10
Message : #26
RE: déplacer un champ de la base de donnée via un formulaire

La meilleure solution est celle de keke, j'ai donné une solution très simplifiée car tu avais du mal à suivre, mais utilise celle de keke si possible 2

08-09-2008 10:51 AM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
biboum
Membre


Messages : 55
Groupe : Membre
Inscription : Aug 2008
Statut : Hors ligne
Réputation : 0
Message : #27
RE: déplacer un champ de la base de donnée via un formulaire

A y est, mon projet est entièrement sur papier, je peux me remettre à coder avec une vue plus général34

Je reviens sur le Post de Kéké,

Code PHP :
session_start();
$_SESSION['id_joueur'] = '3'


J'ai du mal avec les sessions et les formulaires...:s mais je ne comprend pas le "3". Comment faire pour que le "3" corresponde à celui du visiteur qui se connecte ? Parce que là c'est nous qui le précodons. Non ?
Ou alors je patauge complet sur les sessions...:s

Parce que pour le moment, mon code (post au dessus) ne reconnait aucune séssion. L'id-joueur et le php_session_start ayant été rajouté, il ne me reconnait quand même aucun utilisateur. Donc il ne m'inscrit rien du tout dans ma base de donnée en face de l'utilisateur qui est censé être connecté.

Prêt à en découdre avec ca 2 Mais...avec votre aide.

Info : le code du post au dessus a été modifié pour correspondre à celui de kéké. La structure étant la même, seul quelques redirection et nom de variable ont été changé, étant plus la base de donnée elle même qui changeait. (A moins que là aussi j'ai rien compris 10)

08-14-2008 05:35 AM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Kassak
Membre


Messages : 795
Groupe : Membre
Inscription : Aug 2006
Statut : Hors ligne
Réputation : 4
Message : #28
RE: déplacer un champ de la base de donnée via un formulaire

C'est un autre problème, tu as surement un formulaire pour se loguer au site?

Donc quand le joueur se logue (pseudo et mot de passe), tu vérifies bien sûr qu'il existe, que son mot de passe corresponde bien et blabla....

Ensuite avant de le rediriger vers la partit membre, tu crées les variables de session dont tu as besoin (va voir là : Variable session).

En gros, tu récupères l'id du joueur qui veut se connecter, et pour créer la variable session ID : $_SESSION['id'] = $id_joueur ;

Et voila 16


Il est pas magnifique ce sol?
08-14-2008 12:42 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
biboum
Membre


Messages : 55
Groupe : Membre
Inscription : Aug 2008
Statut : Hors ligne
Réputation : 0
Message : #29
RE: déplacer un champ de la base de donnée via un formulaire

Merci pour ta réponse. Mais je n'y arrive pas :s
On est bien d'accord :

Code PHP :
<?php require_once('Connections/membre.php'); ?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  
session_start();
}

$loginFormAction $_SERVER['PHP_SELF'];
if (isset(
$_GET['accesscheck'])) {
  
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset(
$_POST['pseudo'])) {
  
$loginUsername=$_POST['pseudo'];
  
$password=$_POST['passe'];
  
$MM_fldUserAuthorization "";
  
$MM_redirectLoginSuccess "choixpays3.php";
  
$MM_redirectLoginFailed "inscription.php";
  
$MM_redirecttoReferrer false;
  
mysql_select_db($database_membre$membre);
  
  
$LoginRS__query=sprintf("SELECT pseudo, motdepasse FROM membre WHERE pseudo='%s' AND motdepasse='%s'",
    
get_magic_quotes_gpc() ? $loginUsername addslashes($loginUsername), get_magic_quotes_gpc() ? $password addslashes($password)); 
   
  
$LoginRS mysql_query($LoginRS__query$membre) or die(mysql_error());
  
$loginFoundUser mysql_num_rows($LoginRS);
  if (
$loginFoundUser) {
     
$loginStrGroup "";
    
    
//declare two session variables and assign them
    
$_SESSION['MM_Username'] = $loginUsername;
    
$_SESSION['MM_UserGroup'] = $loginStrGroup;          

    if (isset(
$_SESSION['PrevUrl']) && false) {
      
$MM_redirectLoginSuccess $_SESSION['PrevUrl'];    
    }
    
header("Location: " $MM_redirectLoginSuccess );
  }
  else {
    
header("Location: "$MM_redirectLoginFailed );
  }


Il y a bien ma superglobale qui est présente ? (plus précisément là : )

Code PHP :
//declare two session variables and assign them
    
$_SESSION['MM_Username'] = $loginUsername;
    
$_SESSION['MM_UserGroup'] = $loginStrGroup



Donc normalement si à la page d'après je fais session_start ();
Et que je lui demande de faire un echo d'une de ces variables, cela me l'affichera non ?

Ce message a été modifié le: 08-14-2008 07:56 PM par biboum.

08-14-2008 07:56 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Kassak
Membre


Messages : 795
Groupe : Membre
Inscription : Aug 2006
Statut : Hors ligne
Réputation : 4
Message : #30
RE: déplacer un champ de la base de donnée via un formulaire

L'anglais c'est ton choix?

Vu que tu as un peu de mal, prend un script déjà fait mais en français, se sera déjà plus clair pour le nom des variables les commentaires etc...16

Citation :
Donc normalement si à la page d'après je fais session_start ();
Et que je lui demande de faire un echo d'une de ces variables, cela me l'affichera non ?


Tu as testé?


Il est pas magnifique ce sol?
08-14-2008 08:14 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse  Créer un sujet 

Voir une version imprimable
Envoyer ce sujet à un ami
S'abonner au sujet | Ajouter le sujet aux favoris