mysql - 获取数据库中相似行的数量并在表单中单独显示它们

标签 mysql arrays forms

我在数据库中有一个用户表,用户在其中将表单输入到数据库中。这包括多个单选按钮。我想要它,以便在相应的表单条目旁边显示类似的单选按钮的数量。

有 8 个 radio 选项,我有一个可行的解决方案,尽管这并不理想:

    mysql_select_db($database_name, $db) or die(mysql_error());

$query1 = "SELECT streamnumber, COUNT(id) FROM users WHERE streamnumber = 'Stream1' GROUP BY streamnumber ORDER BY streamnumber "; 
$result1 = mysql_query($query1) or die(mysql_error());

$query2 = "SELECT streamnumber, COUNT(id) FROM users WHERE streamnumber = 'Stream2' GROUP BY streamnumber ORDER BY streamnumber "; 
$result2 = mysql_query($query2) or die(mysql_error());

$query3 = "SELECT streamnumber, COUNT(id) FROM users WHERE streamnumber = 'Stream3' GROUP BY streamnumber ORDER BY streamnumber "; 
$result3 = mysql_query($query3) or die(mysql_error());

$query4 = "SELECT streamnumber, COUNT(id) FROM users WHERE streamnumber = 'Stream4' GROUP BY streamnumber ORDER BY streamnumber "; 
$result4 = mysql_query($query4) or die(mysql_error());

$query5 = "SELECT streamnumber, COUNT(id) FROM users WHERE streamnumber = 'Stream5' GROUP BY streamnumber ORDER BY streamnumber "; 
$result5 = mysql_query($query5) or die(mysql_error());

$query6 = "SELECT streamnumber, COUNT(id) FROM users WHERE streamnumber = 'Stream6' GROUP BY streamnumber ORDER BY streamnumber "; 
$result6 = mysql_query($query6) or die(mysql_error());

我对每个单选按钮进行了单独的查询,然后使用以下逻辑显示信息:

    <?php 
    while($row = mysql_fetch_array($result1)){

                    echo "There are ". $row['COUNT(id)'] ." ". $row['streamnumber'] ." items.";
                    echo "<br />";


        } ?>
<input style="width:5px;" type="radio" name="streamnumber" value="Stream1" id="StreamDates_0">  
<label>Stream 1 - Module 1 + 2 - 21st - 23rd March, Module 3 - 19th - 20th April, Module 4 - 15th - 16th May 4</label>

这样我就可以在查询指定流编号时使用每个计数和名称。我想知道是否有更简单的方法可以做到这一点?我认为这与更复杂的数组有关,但我不能完全确定它。

最佳答案

不能只运行 1 个查询吗?

$query = "SELECT streamnumber, COUNT(id) AS cnt FROM users 
 WHERE streamnumber IN ('Stream1', 'Stream2', 'Stream3',
 'Stream4', 'Stream5', 'Stream6') 
 GROUP BY streamnumber ORDER BY streamnumber "; 
$result = mysql_query($query) or die(mysql_error());
$my_array=array();
while($row = mysql_fetch_array($result1))
{
  $my_array[$row["streamnumber"]] = $row["cnt"];
}
// now $my_array["Stream1"] contains count of 'Stream1' 

关于mysql - 获取数据库中相似行的数量并在表单中单独显示它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9202622/

相关文章:

C# 保存所有控件的窗体状态

JavaScript,document.getElementById 不是从表单中获取的吗?

php - 我无法在线上传此代码中的任何文件,但在本地可以使用

mysql - 将多个表中的多个数据放入一个 bean 中

c++ - 打包或不打包仅包含数组的结构

java - 打印数组 : memory address or its content?

PHP foreach 循环输出到一个新数组

javascript - 在 PHP 和 JavaScript 中保存动态添加的行

php - 行占总数的百分比,基于查询的结果集

mysql - 数据库查询时处理 Node 的非阻塞特性