我得到了下表:
+---------+--------+---------+--------------+
| ID | Data 1 |Customer | Alternative |
+---------+--------+---------+--------------+
| 1 |1abc | 1 |1 |
+---------+--------+---------+--------------+
| 2 |2abc | 1 |1 |
+---------+--------+---------+--------------+
| 3 |ae12 | 1 |2 |
+---------+--------+---------+--------------+
| 4 |ad31 | 1 |2 |
+---------+--------+---------+--------------+
| ... |... | ... |... |
+---------+--------+---------+--------------+
我需要以下信息:
这里有2个替代品。因此,我将使用备选方案1和备选方案2填充我的选择框。 然后,当用户选择一个Alternative时,我需要在JSON数组中基于该替代编写所有记录。
例如:
用户选择备选方案1
[1;1abc;1;1],[2;2abc;1;1]
或者用户选择备选方案2
[3;ae12;1;2],[4;ad31;1;2]
我试过
$result = mysql_query("SELECT DISTINCT Alternative from $table)
但是这只返回1和2而不是整个记录。
答案 0 :(得分:1)
单个查询无法执行此操作。使用两个查询。一个用于获取不同的备选方案,另一个用于获取每个备选方案的选项。
$result = mysql_query("SELECT DISTINCT Alternative FROM $table");
while ( $row = mysql_fetch_array( $result ) ) {
$alt = $row['Alternative'];
$res2 = mysql_query("SELECT * FROM $table WHERE Alternative = '$alt'");
while( $row2 = mysql_fetch_array( $res2 ) ) {
//put your HTML here
}
}
答案 1 :(得分:1)
这可以通过相当简单的方式完成。
$query = "SELECT DISTINCT(alternative), id, data_1, customer
FROM table"
$result_set = mysql_query($query,$connection);
$count = mysql_num_rows($result_set);
如果您只查找特定id,customer或data_1的替代项,也可以向查询添加WHERE子句。
答案 2 :(得分:1)
根据我对所需输出的理解;您可以使用以下查询:
SELECT GROUP_CONCAT( "[", ID, ";", Data, ";", "Customer", ";", Alternative, "]" )
FROM test
GROUP BY alternative
答案 3 :(得分:0)
您想要计算替代方案,因此请使用count(distinct)
:
SELECT COUNT(DISTINCT Alternative) as NumAlternatives
FROM $table;