Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

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.
 

#1 31-10-2007 15:28:31

didier08
Membre
Date d'inscription: 31-10-2007
Messages: 17

mon script pour enchère

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

 

#2 31-10-2007 17:16:22

Shiva
Moderateur
Lieu: BONNEUIL SUR MARNE
Date d'inscription: 15-11-2005
Messages: 299
Site web

Re: mon script pour enchère

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 :

Code:

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

 

#3 01-11-2007 13:38:12

didier08
Membre
Date d'inscription: 31-10-2007
Messages: 17

Re: mon script pour enchère

à 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

 

#4 01-11-2007 16:54:55

Shiva
Moderateur
Lieu: BONNEUIL SUR MARNE
Date d'inscription: 15-11-2005
Messages: 299
Site web

Re: mon script pour enchère

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 :

Code:

// => 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 :

Code:

if ($eg == $tbnm[$i] && $pass == $tbps[$i]) {
    // ==> ICI
}

Hors ligne

 

#5 02-11-2007 01:18:57

didier08
Membre
Date d'inscription: 31-10-2007
Messages: 17

Re: mon script pour enchère

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



Code:

<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

 

#6 02-11-2007 04:57:36

Shiva
Moderateur
Lieu: BONNEUIL SUR MARNE
Date d'inscription: 15-11-2005
Messages: 299
Site web

Re: mon script pour enchère

Content que ça fonctionne :-)
Par contre, évite de définir deux fois la connexion à la database, surtout dans la boucle.

Hors ligne