PHP检查表中的计数传递值

时间:2013-06-21 20:50:38

标签: php mysql

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

当他们点击“提交”按钮时,会调用一个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
    }
}

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

有任何想法/建议吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

所以我最后做了什么来解决如何获得符合我想要的标准的可用链接数量的特定问题,并将其与用户请求的数量进行比较,以便执行以下操作... < / p>

  1. 创建一个运行查询的全新.php文件,以获取数据库中可用链接的数量。
  2. 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文件中。
    2. Process.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' ;
                  }
          ?>