2013-03-27 258 views
2

我真的不知道如何解释我想要的,但我会尝试。我知道我的代码是可怕的,一团糟,我真的很糟糕:/任何帮助,将不胜感激。使用一种形式的多个ID

我正在为我的游戏开店,并且有一个数据库,其中列出了店内宠物小精灵的口袋妖怪/价格/类型/ ID。现在我几乎可以工作了,它显示了店里所有的口袋妖怪,并且它们下面都有一个购买按钮,但由于某种原因,无论您尝试购买什么口袋妖怪,它只会购买列表顶部的那个。我希望我解释得很好,这里是我的代码。

if ($_POST['A'] == '1') { 
    $token= mysql_real_escape_string($_POST['token']); 
    $tokenn = strip_tags($token); 

    $sql234 = "SELECT * FROM ticketshop"; 
    $result2 = mysql_query("SELECT * FROM ticketshop"); 
    while($row2 = mysql_fetch_array($result2)) { 
     $sql23 = "SELECT * FROM users WHERE username='".$_SESSION['username']."')"; 
     $result = mysql_query("SELECT * FROM users WHERE username='".$_SESSION['username']."'"); 
     while($row = mysql_fetch_array($result)){ 
      echo "You have ".$row['ticket']." Tickets" ; 
      echo "<p></p>" ; 
      if (isset($_POST['slot1'])) { 
       if ($row['ticket'] >= $row2['price']) { 
        echo "You have bought ".$row2['pokemon']."" ; 
        mysql_query("UPDATE users SET ticket=ticket-".$row2['price']." WHERE username='".$_SESSION['username']."'") 
         or die(mysql_error()); 

        mysql_query("INSERT INTO user_pokemon 
      (pokemon, belongsto, exp, time_stamp, slot, level, type) VALUES ('".$row2['pokemon']."','".$_SESSION['username']."', 100,'".time()."','0', '5', '".$row2['type']."')") 
         or die(mysql_error()); 
       } else { 
        echo "You can't afford ".$row2['pokemon'].""; 
       } 
      } 
     } 
    } 
} 
?> 

<?php 
    $result = mysql_query("SELECT * FROM ticketshop"); 
    while($row = mysql_fetch_array($result)) 
    { 
     $sql2 = "SELECT * FROM pokemon WHERE name='".$row['pokemon']."'"; 
     $result2 = mysql_query($sql2) or die(mysql_error()); 
     $battle_get2 = mysql_fetch_array($result2); 

     echo '<img src="pokemon/'.$row['type'] .''.$battle_get2['pic'].'" border=0> 
     </a>' ; 

     $idd= mysql_real_escape_string($row2['id']); 
     $iddd = strip_tags($idd); 
?> 

</span> 
<form name="slot1" action="" method="post"> 
    <div align="center"> 
    <p> 
     <span> 
     <select name="A" id="" > 
      <option value="1">Buy</option> 
     </select> 
     <input type="hidden" name="token" id="token" value="<?php echo $iddd ; ?>" /> 
     <br /> 
     <input type="submit" class="submit" value="Accept" name="slot1"> 
     </span></p> 
    </div> 
</form> 
<span> 

<?php 
     echo $row ['pokemon']; 

?> 

</span> 
<p></p> 
<span> 

<?php 
     echo "type:"; 
     echo $row ['type']; 
?> 

</span> 
<p></p> 
<span> 

<?php 
     echo "price:"; 
     echo $row['price']; 
     echo "<br />"; 
    } 
?> 
+3

你应该用正确的缩进开始。 – 2013-03-27 01:17:04

+0

你也应该使用PDO,如果你可以帮忙的话,'mysql_ *'函数被官方弃用。学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 – 2013-03-27 01:24:54

+0

你的代码完全在坏结构..?会介意解释你的代码如何从选择提交到submittin? – 2013-03-27 01:32:09

回答

0
Below you are doing wrong: 

$sql234 = "SELECT * FROM ticketshop"; 
$result2 = mysql_query("SELECT * FROM ticketshop"); 

here you are not adding any conditions for fetching the particular record, please see corrections below: 

$sql234 = "SELECT * FROM ticketshop where <<FIELD NAME>> = '".$token."'"; 
$result2 = mysql_query($sql234);