PHP,SQL - 获取表id =用户id的fetch,并计算其中row = user id的其他表

时间:2015-01-07 00:03:43

标签: php mysql sql

感谢您的帮助,首先我将展示代码:

$dotaz = "Select * from customers JOIN contracts where customers.user_id ='".$_SESSION['user_id']."' and contracts.customer_contract = ".$_SESSION['user_id']." order by COUNT(contracts.customer_contract) DESC limit $limit, $pocetZaznamu ";

我需要获取按contracts(contracts table)

计数的用户列表(客户表)

我试着通过在那里搜索解决这个问题,但我不能......如果你请帮助我并解释它是如何工作的,谢谢! :) $pocetZanamu是记录数。

我需要从表客户那里获取用户(姓名,姓名等),按合约表中的合约数量排序,其中是contract_id,customer_contract(用户ID)..

1 个答案:

答案 0 :(得分:0)

这应该是你要计算的列名称。

$id = $_SESSION['user_id'] ;
$dotaz = "Select COUNT(`customer_contract`) AS CNT, `customer_contract` FROM `contracts`   WHERE `user_id`=$id GROUP BY `customer_contract` ORDER BY `CNT` DESC";

根据您的操作,您可能希望将结果存储在数组中,然后单独处理数组中的每个元素。

while ($row =  mysqli_fetch_array($results, MYSQL_NUM)){
  $contracts[$row[1]] = $row[0];
}

foreach ($contracts AS $customer_contract => $count){
  Process each user id code here
}

不确定你在想什么。以上计算customer_contract为具有多个记录的表计算,这些记录在customer_contract列中包含相同的值。

如果您只想要具有相同user_id的记录总数,那么您可以使用:

$dotaz = "Select 1 FROM `contracts`   WHERE `user_id`=$id";
$results = $mysqli->query($dotaz);
$count = mysql_num_rows($results);