1

我有一个网络表单,允许用户输入他们想为游戏“收集”的项目数量。

当他们单击“提交”按钮时,会调用一个 php 文件来处理项目和数量。该文件查询一个数据库表,该表存储用户为“收集”项目而遵循的链接。

链接表的设置类似于 link_d | timestamp | item_id | link

我想要做的是根据用户请求检查表中可用链接的数量,并查看是否有足够的链接用于请求。如果没有,那么我想将请求的数量更改为可用链接的数量。我想知道最好的方法是什么。

现在我正在考虑类似的事情

for($counter=0;$counter<count($items_name);$counter++)
{
if($items_qty > $qtyavail = "select count(links.link) from links inner join items on links.item_id = items.item_id where items.name = '".$items_name[$counter]."' ;")
    {
    $items_qty = $qtyavail
    }
}

由于可用链接的数量会随着时间而变化,因此当用户单击“提交”按钮时,我需要表中可用的当前数量。

有什么想法/建议吗?

4

2 回答 2

1

LEAST()您可以通过 MySQL函数获取两个值中较小的一个:

"SELECT LEAST( links, " . int($items_name[$counter]) . " ) as selected_quantity FROM ..."

这将返回用户选择的项目数或可用链接数,以较少者为准。

于 2013-06-21T21:05:08.150 回答
0

因此,我最终要解决如何获得满足我想要的标准的可用链接数量并将其与用户请求的数量进行比较的特定问题是执行以下操作...

  1. 创建一个全新的 .php 文件来运行查询以获取数据库中可用链接的数量。

numLinks.php

    <?php 
      require_once('phpConfig.php') ;
      require_once('myerror_handler.php') ;

      $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE) ;

      $numLinks = "select count(tbl_links.link) AS Count...; " ;

      $result = $mysqli->query($linksavail) ;

      if ($result) {     
          while ($row = $result->fetch_array(MYSQLI_ASSOC)) 
          {
                $numAvail = $row['Count'] ;
          }
      }

      return $numAvail ;
    ?>
  1. 然后将该文件包含在处理大部分处理的 PHP 文件中。

进程.php

    <?php
      require_once('phpConfig.php') ;
      require_once('myerror_handler.php') ;

      $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE) ;

      //get all the input data from jquery on clicking submit button
      $items_name=$_POST['inputnames'];
      $items_values=$_POST['valuesitems'];

      //loop for each name
            for($counter=0;$counter<count($items_name);$counter++)
            {
              include('numLinks.php') ;

              $requested = $items_values[$counter] ;

              if ($items_values[$counter] > $numavail) {
                          $items_values[$counter] = $numavail ;
              }

              echo $items_name[$counter].' -- '.$numavail.' Available -- .$requested.' Requested' ;
            }
    ?>
于 2013-06-22T23:05:19.443 回答