attribuer plusieurs variable a un select

Répondre
nathalia
le 04/02/2007 à 16:28
nathalia
salut tout le monde, je m interesse au php depuis plusieurs mois, j arrive a faire quelques trucs sympa, et je me suis lancée dans un projet personnel un peu fou, faire un rpg au tour par tour en php (j'ai tout mon temp) mais la je bute sur le debut :/

voila je vous explique j ai crée une table "characters qui comprend les champs (dans l ordre)
"id""nom""description""lvl""race""force""dext""constit""exp""or""arme""armure""casque""bottes"
bon vous aurez compris c'est la partie propre au joueur.

j ai fait un formulaire d'inscription ou le joueur choisi son nom, met sa description, et choisi sa race.
evidament il y a 15 pts distribué suivant la race en force,dext,constit;
par exemple au depart un joueur qui choisit "humain" auras moins de force que celui qui prend "orc"
grosso modo humain=F=5 D=5 C=5 et orc=F=8 D=2 C=5
mais le probleme je ne sais pas comment adapter mon script pour attribuer les pts en fonction du choix du joueur
j avais pensé a un <select> mais je ne sais pas comment dire a mon fichier "verif" atribut ca et ca si il a pris humain ou orc ou autres

je ne sais pas si vous m'avez compris mais je vous remerci d'avance^^
nathalia
le 04/02/2007 à 18:06
nathalia
bon bah c'est bon je me suis débrouillée comme une grande^^; mais par contre j'ai l'impression que c'est un peu moche, alors si quelqu'un veut m'aider a optimiser ce script ca serait sympa^^

-----------------------------------------------------
<html>
<head>
</head>
<body bgcolor="#FFFFFF" text="#B0AFAE" link="#959494" vlink="#C5C4C3" alink="#AEACAA" hlink="#D4D2D1">
<?
require ("../admin/connection.php");


$nom= $_POST['nom'];
$description= $_POST['description'];
$races= $_POST['races'];

if($_POST['races'] == 'Humains')
{
$sql = "INSERT INTO characters VALUES('','$nom','$description','0','Humain','5','5','5','0','0','0','0','0','0')";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>' . mysql_error());
}

elseif($_POST['races'] == 'Ogres')
{
$sql = "INSERT INTO characters VALUES('','$nom','$description','0','Ogre','7','2','6','0','0','0','0','0','0')";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>' . mysql_error());
}

elseif($_POST['races'] == 'Nains')
{
$sql = "INSERT INTO characters VALUES('','$nom','$description','0','Nain','5','3','7','0','0','0','0','0','0')";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>' . mysql_error());
}

elseif($_POST['races'] == 'Elfes')
{
$sql = "INSERT INTO characters VALUES('','$nom','$description','0','Elfe','2','8','5','0','0','0','0','0','0')";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>' . mysql_error());
}

elseif($_POST['races'] == 'Orcs')
{
$sql = "INSERT INTO characters VALUES('','$nom','$description','0','Orc','8','2','5','0','0','0','0','0','0')";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>' . mysql_error());
}

elseif($_POST['races'] == 'Gobelins')
{
$sql = "INSERT INTO characters VALUES('','$nom','$description','0','Gobelin','5','2','8','0','0','0','0','0','0')";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>' . mysql_error());
}


echo "<br><center><font color=\"#B0AFAE\">Votre personnage a été crée avec succés.</font></center><br><br>";

mysql_close();
?>
</body>
</html>
jocker
le 10/02/2007 à 22:35
jocker
je te conseille de faire un tableau associatif pour chaque catégorie

$race = $_POST['races'];

$humain = array{F=>5;D=5;C=5}

apres tu as plus qu'a faire une seule req SQL

$sql = "INSERT INTO characters VALUES('','$nom','$description','0',$race,${$race}[F],'2','5','0','0','0','0','0','0')";

etc...

enfin sur le principe c'est ça. L'utilisation du ${$race} ca revient a avoir la valeur $humain dans le cas ou $_POST[race] = humain

Bon là j'ai pas testé il faudrait peut être rectifier qq trucs mais je te donne le principe.

Autre chose, pense à sécuriser tes requets et la reception de tes variables

$race = html_entities($_POST['races']);

et apres un mysql_real_escape_string sur les variables dans ta requete SQL

Voilà j'espère que ca t'aidera.

++
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours