Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
bonjour après moultes prises de tete et lecture de différents forums j'ai réussit à sortir mon script d'enchère pour site et qui marche (ouahhhh)
il me manque cependant quelques commandes mais dans un premier temps je n'en désire qu'une
dans le code qui suit il faudrait que si l'enchère du joueur est inférieur à l'enchère en cours (celle de ma base sql) elle ne soit pas prise en compte
par la suite j'amerais conditionner tout cela à une date et heure limite mais c'est une autre aventure et j'ai pas encore cherché
[code ] <form action="module.php" method="post"> <p>
Vous placez une enchère d'un montant de<input type="text" name="ench" />sur le Lot N°<input type="text" name="lot" /><BR>
donnez le nom de votre écurie<input type="text" name="eg" />votre mot de passe<input type="text" name="pass" /><input type="submit" value="Envoyer" />
</p></form>
<?php
{
$tbnm= array();
$tbps= array();
$tbnm[0] = "sebco";
$tbps[0] = "didier";
$tbnm[1] = "fabien";
$tbps[1] = "soso";
$szn= sizeof( $tbnm );
$szp= sizeof( $tbps );
if ($szn != $szp )
exit;
for($i=0; $i < $szn; $i++ )
{
if ($eg == $tbnm[$i] && $pass == $tbps[$i])
{
mysql_connect("localhost", "xxx", "xxx"); mysql_select_db("xxx");
$ench = mysql_real_escape_string(htmlspecialchars($_POST['ench']));
$eg = mysql_real_escape_string(htmlspecialchars($_POST['eg']));
mysql_query("UPDATE `xxx`.`xxx` SET `ench` = $ench ,`eg` = '$eg' WHERE `enchère`.`lot` =$lot" );
mysql_close();
}
}
}
?>[/code ]
Hors ligne
Salut
Petite remarque : j'espère que dans ton code dans la boucle for tu ne met pas la ligne de connexion à la database, sinon...
Sinon pour ce que tu demande, c'est simple, suffit de faire un test sur la valeur retournée avec celle qui se trouve dans ta database et que tu doit aussi ressortir pour comparaison.
Genre :
if ($_POST['ench'] > $valeur_enchere_dans_ta_table) {
// UPDATE dans ta table avec le nouveau montant de l'enchère
} else {
// Action si l'enchère est inférieure à celle enregistrée dans ta table
}Vois tu ce que je veux dire ?
Hors ligne
à vrai dire
je suis un peu largué
mon script fonctionne bien c'est à dire qu'il modifie bien les enchères après avoir vérifié l'identité de l'enchérisseur moi ce que je voudrai maintenant c'est ajouter cette condition
mais je sais pas comment m'y prendre n'y ou la mettre
j'ai essayé de l'inserer un peu partout j'ai pas de message de retour mais ca marche pas non plus
si tu pouvais me corriger mon code à ta sauce en m'y inserant tes requete ca m'arrangerais
merci
Hors ligne
C'est pourtant très simple, ce qu'il faut faire :
1. Tu récupère le montant de la dernière enchère dans ta table
2. Tu la compare avec celle retournée par le visiteur :
// => Ici le code pour récupéré le montant de l'enchère pour le lot voulu et tu colle le résultat dans la variable $enchOrig par exemple
if ($enchOrig < $_POST['ench']) {
$ench = mysql_real_escape_string(htmlspecialchars($_POST['ench']));
$eg = mysql_real_escape_string(htmlspecialchars($_POST['eg']));
mysql_query("UPDATE `xxx`.`xxx` SET `ench` = $ench ,`eg` = '$eg' WHERE `enchère`.`lot` =$lot" );
} else {
echo 'affichage d'un message d'erreur';
}Et tout ça est à mettre dans cette condition :
if ($eg == $tbnm[$i] && $pass == $tbps[$i]) {
// ==> ICI
}Hors ligne
j'avais essayé de l'insérer après ma boucle for mais à chaque fois j'y arrivais pas alors comme j'avais une partie decode qui marchait je l'ai mis de coté et j'ai recommencé très simple c'est à dire avec une requete puis avec une variable puis avec un post puis j'ai inséré la condition comme tu me l'avais montré et quand tout etait ficelé j'y ai inséré tout simplement mon bout de cote qui marchait et bingo
il me reste plus qu'a mettre la meme condition pour la mise à prix
et savoir comment on fait un compte à rebour et remette une condition la dessus et je crois que j'aurais bien bossé
ps : le php et moi ca fait deux donc faut pas m'en vouloir, je m'y suis mis dessus comme un coups de fusils ya une semaine
encore merci pour ton aide
voici ce que ca donne
<form action="module2.php" method="post">
<p>
Vous placez une enchère d'un montant de<input type="text" name="ench" />sur le Lot N°<input type="text" name="lot" /><BR>
donnez le nom de votre écurie<input type="text" name="eg" />votre mot de passe<input type="text" name="pass" /><input type="submit" value="Envoyer" />
</p>
</form>
<?php
mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("enchère");
$reponse = mysql_query("SELECT ench FROM enchère WHERE lot= $lot");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<?php $vench= $donnees['ench'];
if ($vench<$ench)
{
$tbnm= array();
$tbps= array();
$tbnm[0] = "sebco";
$tbps[0] = "didier";
$tbnm[1] = "fabien";
$tbps[1] = "soso";
$tbnm[2] = "lulu";
$tbps[2] = "lala";
$szn= sizeof( $tbnm );
$szp= sizeof( $tbps );
if ($szn != $szp )
{
exit;
}
for($i=0; $i < $szn; $i++ )
{
if ($eg == $tbnm[$i] && $pass == $tbps[$i])
{
mysql_connect("localhost", "xxx", "xxx"); mysql_select_db("enchère");
$ench = mysql_real_escape_string(htmlspecialchars($_POST['ench']));
$eg = mysql_real_escape_string(htmlspecialchars($_POST['eg']));
mysql_query("UPDATE `xxx`.`enchère` SET `ench` = $ench ,`eg` = '$eg' WHERE `enchère`.`lot` =$lot" );
mysql_close();
}
}
}
}
mysql_close();Hors ligne