[英]Count number of values in query
我正在使用Drupal (7),但是我在PHP中有一个初学者的问题。
我有一个查询:
$array = array('1','2','3');
$nb_value = db_select('truc', 'tructruc')
->fields('truc')
->condition('value', $array)
->execute()
->fetchAll();
我想计算每个值存在多少次(有多少个“ 1”等)。
我尝试了这个,但是不起作用:
foreach ($array as $value) {
if($value == '1') {
$nb_1 = count($nb_value);
}
if($value == '2') {
$nb_2 = count($nb_value);
}
...
print $nb_1
print $nb_2
...
我哪里错了? 而且foreach是解决方案吗?
您可以使用以下代码:
foreach ($array as $value) {
if($value == '1') {
$nb_1++;
}
if($value == '2') {
$nb_2++;
}
}
...
print $nb_1
print nb_2
...
或使用以下代码(优化):
foreach ($array as $value) {
switch($value){
case '1':
$nb_1++;
break;
case '2':
$nb_2++;
break;
...
}
}
...
print $nb_1
print nb_2
...
您还可以使用SQL命令对数据进行计数。 如
<?php
$servername = "localhost";
$username = "dbusername";
$password = "dbpassword";
$dbname = "dbname";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "select truc,count(truc) as cnt from tructruc group by truc";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "Count of (".$row["truc"].") = ".$row["cnt"]."<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.