【发布时间】:2016-01-14 12:10:13
【问题描述】:
我有一个代码可以根据用户输入序列从 MySQL 数据库中读取数据,我希望将所有结果存储到一个多维数组中以供以后使用。但是,代码只会存储最后一个数组,而不是每个数组。我的代码有什么问题吗?
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 | 17_AAG | HUTYG | A_770897 | AICAR | ...
-------------------------------------------------
FR2L1 | 1390 | 6746 | 4316 | 1051 | ...
ALDH1A1 | 288 | 7622 | 12 | 98867 | ...
# other rows is similar to above #
如果我输入GeneID 的列表,例如FR2L1、ALDH1A1、ABAT、AAAS,
输出数组只有最后一个数组的值,在这种情况下是$up_temp[3],其余的从$up_temp[0] 到$up_temp[2] 是空的。数据库有数百万行,但我只需要选择用户输入GeneID。
print_r($up_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_temp[0]) 到 print_r($up_temp[2]) 的输出:空
更新:原来我的$up_gene 变量没有正确输入,只是意识到每个变量后面都有空格,这导致 MySQL 查询对于前几个变量返回空。上面的代码确实按预期工作。
【问题讨论】:
-
mysqli_fetch_array as mysqli_fetch_assoc($result,$result)
标签: php multidimensional-array mysqli