我在第1页上有一个充满复选框的HTML表,其name属性设置如下:
input type ="checkbox"name ="A_1"input type ="checkbox"name ="B_2"
在接下来的页面中,我在PHP中循环遍历我的$ _POST数组,并使用explode来生成如下数组:
数组([A_1] => on [A_2] => on [B_2] => on [B_5] => on [C_5] => on [submit] => Submit)
分成两个数组:
row_Array = Array([0] => 1 [1] => 2 [2] => 2 [3] => 5 [4] => 5)
column_Array = Array([0] => A [1] => A [2] => B [3] => B [4] => C)
这是我的SQL查询:
for($i=0; $i < count($column_array); $i++) { $sql = "SELECT {$column_array[$i]} FROM table WHERE num IN ({$row_array[$i]})"; $result = mysqli_query($connection, $sql); while ($data = mysqli_fetch_assoc($result)) { $result_array[] = $data[$column_array[$i]]; } }
这是我的SQL表的一个例子:
A B C 1 cat cot cet 2 rat rot ret 3 hat hot het 4 lat lot let 5 bat bot bet
我的循环中的各个SQL查询如下所示并返回正确的值:
SELECT A FROM table WHERE num IN (1) returns cat SELECT A FROM table WHERE num IN (2) returns rat SELECT B FROM table WHERE num IN (2) returns rot SELECT B FROM table WHERE num IN (5) returns bot SELECT C FROM table WHERE num IN (5) returns bet
我是sql和php的新手.这有效,但这似乎是一种可怕的方式.任何建议或帮助将不胜感激.
我相信这是一个更好的做法,运行单个查询并循环返回的数据而不是循环然后运行多个查询.
但是,根据您的数据结构和应用程序布局,UI等,这可能是不可能的.