Enlever ici pour mettre la

Eléphant du PHP | 78 Messages

30 juil. 2007, 12:02

Bonjour,

Voila mon problème :
Je dois gérer un stock de vestes. Pour cela je voudrais avoir une table avec toutes les vestes disponibles et pouvoir les attribuer aux joueurs via un formulaire.

En gros ca doit se passer comme ca :
1) J'ai 10 vestes D1, D2, D3, G1, G2, G3... dans une table "dispo".
2) Je vais dans un formulaire ou j'entre le nom de la personne et qui contient un menu déroulant qui récupére toute les vestes dispo sur cette table et les classe alphabétiquement.
3) J'attribue donc une veste et j'enregistre.
4) La veste attribuée disparait du stock de la table "dispo" et apparait dans la fiche de la personne dans la table "membre".
5) A la personne suivante, mon menu déroulant affiche tout le stock sauf celle ci vu qu'elle n'est plus dispo.

Pour donner une idée c'est peut etre fait un peu comme une location de serveurs de jeux. Il y a un pool, on choisit dans une liste deroulante puis la personne suivante ne peut plus l'avoir vu qu'il a deja été commandé.

Est ce que vous connaissez un script, un tuto, ou mieux que vous m'expliquiez avec des exemples comment je pourrais faire ca en esperant qu'il ne faille que php car je ne connais pas javascript ou autre.

Merci beaucoups pour votre aide.
Morkem

d0m
Mammouth du PHP | 1141 Messages

30 juil. 2007, 13:48

quand tu parles de table, tu parles de table de base de données ou simplement un tableau php?

Eléphant du PHP | 78 Messages

30 juil. 2007, 13:56

Non non les tables de phpmyadmin...

Enfin je sais pas si c'est possible comme ca... J'aimerais un systeme qui puisse faire ca mais je ne connais pas exactement le moyen.

En fait c'est pour gerer un inventaire. Comme ca a la fin de la repartition des vestes on sait combien il en reste et lesquelles. Deplus lors de la répartition ca permet d'avoir un menu deroulant qui ne contiennent que les vestes restantes, donc ca permet de ne pas taper le numéro de série dans une zone de texte et aussi de ne pas garder une grosse longueur de menu au fur et a mesure.
Morkem

d0m
Mammouth du PHP | 1141 Messages

30 juil. 2007, 14:23

Non non les tables de phpmyadmin...
C'est donc une base de données mysql.
Dans ce cas le plus propre et sûr c'est de créer 2 tables :
- 1 pour les vestes disponibles
- 1 pour les vestes déjà prises.

Il suffit alors de selectionner les vestes disponibles qui n'ont pas déjà été prises en
faisant une requete du style :

Code : Tout sélectionner

SELECT * FROM vestes_disponibles WHERE identifiant NOT IN (SELECT identifiant FROM vestes_prises);
De cette manière quand tu attribues une veste tu n'as besoin de la rajouter que dans la table des vestes prises et pas l'enlever dans la table des vestes disponibles qui elle contient toutes les vestes (prises ou non).

Eléphant du PHP | 78 Messages

30 juil. 2007, 14:26

D'accord je pensais que l'on supprimait d'un endroit pour l'ajouter a un autre endroit.

Et comment afficher le résultat dans un menu deroulant ??
Morkem

d0m
Mammouth du PHP | 1141 Messages

30 juil. 2007, 14:35

Et comment afficher le résultat dans un menu deroulant ??
Tu fais un menu déroulant html et les balises <OPTIONS .... > dans une boucle php sur le résultat de la requête.

Eléphant du PHP | 78 Messages

31 juil. 2007, 17:19

Me revoila avec une superbe nouvelle question :D

J'ai bien réussi a faire tout ca MAIS maintenant je voudrais savoir si il était possible de "proteger" une valeur pour qu'elle soit inscrite pour le joueur mais pas dans la table déjàprise.

Par exemple :
1) le joueur n'a pas de veste, on selectionne dans la liste la veste D12 pour lui attribuer et elle se met dans la table membre et dans la table déjà prise pour qu'elle ne soit plus attribué.
2) si le joueur a une veste perso. Dans ce cas dans le menu deroulant on selectionne le terme Perso... mais avec ce systeme on ne peut l'employer qu'une fois. Je voudrais proteger ce terme la pour l'employer plusieurs fois soit qu'il soit bien envoyé dans la table membre mais pas dans la table déjà prise.

Voici mon code register.php :
<select name="veste" id="veste" />
<?php
$retour = mysql_query('SELECT d_veste FROM matos_dispo WHERE d_veste NOT IN (SELECT d_veste FROM matos_nondispo)');
while ($donnees = mysql_fetch_assoc($retour))
{
 echo '<option value="'.$donnees['d_veste'].'">'.$donnees['d_veste'].'</option>';
}
?>
</select>
Voila le registerok.php :
<?php
echo'<fieldset>Cette inscription est terminée !!<br />';
echo'<p><a href ="./register.php">Retour</a></p>';

$veste = ($_POST['veste']);

mysql_query("INSERT INTO membre VALUES('', '".$veste."') ") or die(mysql_error());

mysql_query("INSERT INTO matos_nondispo VALUES('', '".$veste."') ") or die(mysql_error());

mysql_close();
?>
Pour les tables sql c'est simple :
_ membre avec id et veste
_ matos_dispo avec d_id et d_veste
_ matos_nondispo avec d_id et d_veste

J'ai essayé avec ca :
if ($veste != Perso OR $veste != Non OR $veste != " ")
{
mysql_query("INSERT INTO matos_nondispo VALUES('', '".$veste."') ") or die(mysql_error());
}
Mais ca ne veut pas fonctionner pourquoi?
Morkem

Invité
Invité n'ayant pas de compte PHPfrance

31 juil. 2007, 19:16

Je pense avoir décelé le problème mais je ne pige vraiment pas...

Je voudrais savoir pourquoi ce code ne fonctionne pas...
if ($veste != "Perso" OR $veste != "Non")
{
mysql_query("INSERT INTO matos_nondispo VALUES('', '".$veste."') ") or die(mysql_error());
}
Alors que celui ci fonctionne...
if ($veste != "Perso")
{
mysql_query("INSERT INTO matos_nondispo VALUES('', '".$veste."') ") or die(mysql_error());
}
J'ai également essayé celui ci
if (($veste != "Perso") || ($veste != "Non"))
Et voici le code complet des fois que ca viendrait d'ailleurs :s
Parceque si je n'en met qu'un ca fonctionne parfaitement ca ne s'enregistre pas. C'est uniquement quand je veux faire un : "si c'est different de ca ou de ca alors" que ca ne fonctionne plus et ca s'enregistre...
<?php
echo'<fieldset>Cette inscription est terminée !!<br />';
echo'<p><a href ="./essai.php">Retour</a></p>';

$veste = ($_POST['veste']);

mysql_query("INSERT INTO membre VALUES('', '".$veste."') ") or die(mysql_error());

if (($veste != Perso)||($veste != Non))
{
mysql_query("INSERT INTO matos_nondispo VALUES('', '".$veste."') ") or die(mysql_error());
}

mysql_close();
?>

Eléphant du PHP | 78 Messages

31 juil. 2007, 20:37

J'ai trouvé
if ($veste != 'Perso')
{
        if ($veste != 'Non')
        {
mysql_query("INSERT INTO matos_nondispo VALUES('', '".$veste."') ") or die(mysql_error());
        }
}
Ca a l'air de fonctionner
Morkem

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

31 juil. 2007, 20:49

hmm... je n'ai absolument pas lu le sujet mais dans ce cas les deux conditions doivent être vérifiées donc :
if ($veste != 'Perso' && $veste != 'Non')
{
   mysql_query(...);
}

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute