2011-10-22 78 views
1

你好,我有一个PHP的PHP表格一切工作正常,我刚刚已经展示了如何从本网站做隐藏的领域。在mysql中获取错误的结果?

我有一个提交按钮,每个结果让用户选择他们想要的。当他们按下提交按钮时,我想要将信息提交并添加到数据库中。但由于某些原因,当用户点击第1项提交时,它会将最后一项添加到数据库中,例如第6项?所以有6个结果和每个提交按钮6个按钮。当用户按下第一个项目的提交时,它提交了一些resson的编号6。

<form method="post" action="buydo.php"> 
       <label><br /> 
       <br /> 
       </label> 
       <p> 


       <?php 
    $sql = "SELECT * FROM sell 
      ORDER BY Pokemon_level ASC"; 
    $res = mysql_query($sql) or die(mysql_error()); 

     while ($v = mysql_fetch_array($res)) { 
      echo ' 
       <div class="auction_box"> 
       <img src="http://myrpg.net/new_rpg/'.$v['Pokemon_pic'].'" width="100" height="100"><br/> 
       &pound;'.$v['price'].'<br/> 
       <label id="pokemonName'.$v['id'].'">'.$v['pokemon_name'].'</label><br/> 


       <label>Level '.$v['Pokemon_level'].'</level><br/> 
       <label>Exp '.$v['exp'].'</level><br/> 
       <label>Time Left:'; 

       echo '</label> 
       <br/> 
       <input type="hidden" name="Name" value="'.$v['pokemon_name'].'"> 
       <input type="hidden" name="level" value="'.$v['Pokemon_level'].'"> 
       <input type="hidden" name="vid" value="'.$v['id'].'"> 
       <input type="hidden" name="price" value="'.$v['price'].'"> 
       <input type="hidden" name="exp" value="'.$v['exp'].'"> 


       <input type="submit" id="'.$v['id'].'" class="buy_submit" value="Buy Now" /> </div>'; 
     } 

?> 



       &nbsp;</p> 
       <p>&nbsp;</p> 
       </form> 

这是选择与每个结果提交按钮。 然后我插入他们选择的信息。

include 'config.php'; 
session_start() ; 

$name = mysql_real_escape_string($_POST['Name']); 
$Pokemon_level = mysql_real_escape_string($_POST['level']); 
$idofpokemonsell = mysql_real_escape_string($_POST['vid']); 
$price = mysql_real_escape_string($_POST['price']); 
$exp = mysql_real_escape_string($_POST['exp']); 


    $sql = "SELECT * FROM `users` WHERE `username` = '" . $_SESSION['username'] . "'"; 
    $result = mysql_query($sql) or die(mysql_error()); 
    $values = mysql_fetch_array($result); 


echo $values['money'] ; 




if ($values['money'] == $price) { 
    echo "Give them the pokemon yay"; 
} 



if ($values['money'] > $price) { 

mysql_query("INSERT INTO `user_pokemon` (`pokemon`, `belongsto`, `exp`, `slot`, `level`) VALUES ('$name','" . $_SESSION['username'] . "','$exp','0','$Pokemon_level')") or die(mysql_error()); 

    echo "Your money is over"; 
} 

就像我说的插入仅如果u按第1项插入项目6无论 - 5它插入6级,EXP,名都项目6

+0

所有的钱都是属于我们...... – wildplasser

回答

3

的既然你以某种形式显示所有,最新的值覆盖了较早的值。尝试通过移动<form></form>标签while循环内

+0

会尝试,现在由于 – user1008843

+0

由于该做的工作将标志着这个具有正确的,当它让我再次:)快乐 – user1008843

+0

感谢帮助。我很高兴它为你工作 –

0

使每个项目自身的形式或尝试跟踪与jQuery的点击按钮的ID,并填写一个隐藏字段与点击的ID

0

这是因为你的HTML是错误。该值会被覆盖

基本上,你必须选择:

  • 呈现形式,为每个项目
  • 有一个下拉或单选按钮做

不同,需要第二个选项重写你的代码更多,但如果你问我,它会更优雅。那么你需要做什么。

  1. 移动提交按钮圈外
  2. 只有生成的ID和标签这样的代码: <option value="'.$v['id'].'"/>YOUR LABEL</option>
  3. 当提交表单时,你要检索对应于您提交的值ID