Php 帮助编写查询
我有一个csv文件,看起来像 手机,短信Php 帮助编写查询,php,mysql,Php,Mysql,我有一个csv文件,看起来像 手机,短信 手机,短信 手机、短信 我有一个数据库表,它 id,移动电话 id,移动电话 手机号码 我正在使用fgetcsv将csv读入数组 我想要得到的是一个数组 手机、短信、id 手机、短信、id 手机,短信,身份证 我能问的一个问题是 数组中的每一行都从表中选择id,其中mobile= 但考虑到有2000行可能会变得混乱 更好的方法是什么?将CSV文件加载到数据库中,然后在两个表上进行连接。如果您希望在PHP中而不是在数据库中进行连接,正如@Ignacio所建
手机,短信
手机、短信 我有一个数据库表,它 id,移动电话
id,移动电话
手机号码 我正在使用
fgetcsv
将csv读入数组
我想要得到的是一个数组
手机、短信、id手机、短信、id
手机,短信,身份证 我能问的一个问题是 数组中的每一行都从表中选择id,其中mobile=代码> 但考虑到有2000行可能会变得混乱
更好的方法是什么?将CSV文件加载到数据库中,然后在两个表上进行连接。如果您希望在PHP中而不是在数据库中进行连接,正如@Ignacio所建议的,有一种可能性:
/* ... $array = fgetcsv ... */
$mobiles = array_unique(array_map(create_function('$a', 'return $a["mobile"];'), $array));
$mobiles = array_map('mysql_real_escape_string', $mobiles);
$query = "SELECT `id`, `mobile` FROM `table`
WHERE `mobile` IN ('" . join("', '", $mobiles) . "')";
/* ... $mobiles = mysql_query ... */
foreach ($array as &$row) {
foreach ($mobiles as $mobile) {
if ($row['mobile'] == $mobile['mobile']) {
$row['id'] = $mobile['id'];
continue 2;
}
}
}