Php 将mysqli查询结果读入多维数组
我有一个基于用户输入序列从MySQL数据库读取数据的代码,我希望所有结果都存储到多维数组中,以便在后面的部分中使用。但是,代码将只存储最后一个数组,而不是每个数组。我的代码有什么问题吗Php 将mysqli查询结果读入多维数组,php,multidimensional-array,mysqli,Php,Multidimensional Array,Mysqli,我有一个基于用户输入序列从MySQL数据库读取数据的代码,我希望所有结果都存储到多维数组中,以便在后面的部分中使用。但是,代码将只存储最后一个数组,而不是每个数组。我的代码有什么问题吗 for($i = 0 ; $i < sizeof($up_gene) ; $i ++){ $geneName = $up_gene[$i]; $mysql = "SELECT * FROM clmap WHERE GeneID = '$geneName'"; $result = my
for($i = 0 ; $i < sizeof($up_gene) ; $i ++){
$geneName = $up_gene[$i];
$mysql = "SELECT * FROM clmap WHERE GeneID = '$geneName'";
$result = mysqli_query($con, $mysql);
$row = mysqli_fetch_array($result , MYSQLI_NUM);
$up_temp[$i] = $row;
}
如果我输入GeneID
列表,例如FR2L1
,ALDH1A1
,ABAT
,AAAS
,
输出数组将仅具有最后一个数组的值,在本例中,该数组为$up\u temp[3]
,从$up\u temp[0]
到$up\u temp[2]
的其余数组为空。数据库中有数百万行,但我只需要选择用户的输入GeneID
打印的输出($up\u temp[3])
数组([0]=>F2RL1[1]=>1390[2]=>6764[3]=>4316[4]=>1051
[5] => 11654 [6] => 1871 [7] => 8863 [8] => 1245 [9] => 6438 [10] =>
12693 [11] => 7525 [12] => 10372 [13] => 10625 [14] => 7114 [15] =>
12180 [16] => 2760 [17] => 375 [18] => 12525 [19] => 2828 [20] => 6938
[21] => 5926 [22] => 8906 [23] => 9372 [24] => 6341 [25] => 1427 [26]
=> 3858 [27] => 1194 [28] => 3510 [29] => 2462 [30] => 3301 [31] => 1909 [32] => 3816 [33] => 8901 [34] => 5361 [35] => 2711 [36] => 5294
[37] => 6138 [38] => 10272 [39] => 9893 [40] => 1205 [41] => 10868
[42] => 3016 [43] => 1601 [44] => 315 [45] => 2577 [46] => 6226 [47]
=> 274 [48] => 1573 [49] => 2681 [50] => 1447 [51] => 5375 [52] => 1381 [53] => 6405 [54] => 11033 [55] => 7915 [56] => 8293 [57] => 3446
[58] => 231 [59] => 9772 [60] => 4684 [61] => 432 [62] => 1815 [63] =>
10904 [64] => 41 [65] => 4647 [66] => 3238 [67] => 5488 [68] => 2340
[69] => 4925 [70] => 2513 [71] => 911 [72] => 3736 [73] => 6593 [74]
=> 1441 [75] => 3098 [76] => 2976 [77] => 4665 [78] => 8056 [79] => 10717 [80] => 53 [81] => 4159 [82] => 9920 [83] => 5673 [84] => 12146
[85] => 2072 [86] => 4753 [87] => 9678 [88] => 6811 [89] => 7519 [90]
=> 10708 [91] => 1215 [92] => 6837 [93] => 6817 [94] => 6085 [95] => 7160 [96] => 9059 [97] => 7729 [98] => 5330 [99] => 179 [100] => 1020
[101] => 8672 [102] => 9971 [103] => 7189 [104] => 2307 [105] => 2849
[106] => 4897 [107] => 1229 [108] => 11588 [109] => 1923 [110] =>
12715 [111] => 2099 [112] => 12035 [113] => 4062 [114] => 1416 [115]
=> 547 [116] => 1915 [117] => 7689 [118] => 6641 [119] => 11312 [120] => 7079 [121] => 8564 [122] => 2156 [123] => 539 [124] => 4850 [125] => 10205 [126] => 1756 [127] => 1266 [128] => 3468 [129] => 7341 [130] => 8809 [131] => 11949 [132] => 10126 [133] => 3436 [134] => 8066 [135] => 3116 [136] => 4155 [137] => 1637 [138] => 1717 [139] => 2045
[140]=>7511)
print\r($up\u temp[0])
到print\r($up\u temp[2])
的输出:空
更新:原来我的
$up\u gene
变量没有正确输入,只是意识到每个变量后面都有空格,这导致MySQL查询返回前几个变量为空。上面的代码确实可以正常工作。请尝试这样做:
$up_temp = array();
$sql = "select * from clmap where GeneID in(".implode(",",$up_gene).");";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result , MYSQLI_NUM)){
$up_temp[] = $row;
}
内爆数组
$up\u gene
,使所有ID都是逗号分隔的字符串。然后在中使用mysql获取所有具有您的ID之一的行。至少运行while
循环并将$row数组存储到多维数组$up\u temp尝试如下操作:
$up_temp = array();
$sql = "select * from clmap where GeneID in(".implode(",",$up_gene).");";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result , MYSQLI_NUM)){
$up_temp[] = $row;
}
内爆数组$up\u gene
,使所有ID都是逗号分隔的字符串。然后在
中使用mysql获取所有具有您的ID之一的行。至少运行while
循环并将$row数组存储到多维数组$up\u tempmysqli\u fetch\u数组作为mysqli\u fetch\u assoc($result,$result)mysqli\u fetch\u数组作为mysqli\u fetch\u assoc($result,$result)原来是我的$up\u gene
变量问题。你的代码帮助我改进代码,所以我接受你的答案。谢谢。原来是我的$up\u基因
变量问题。你的代码帮助我改进代码,所以我接受你的答案。谢谢