我有两个大表,如下:
第一张表:
第二张表:
基本上我正试图在用户层面找到管理这个(有时是巨大的)属性和单元列表的最佳方法。这包括:
有什么想法吗? 1号是我遇到的最大问题......
答案 0 :(得分:1)
要让用户一次上传多个属性,您可以使用csv
个文件。
您必须为所有用户必须遵循的csv文件定义结构。
然后,您可以让用户通过file
输入字段上传文件,然后使用fgetcsv()
解析它们,并使用此信息更新您的数据库。一个小例子:
// handle_upload.php
if (isset($_FILES['propfile']) && $_FILES['propfile']['error'] == 0) {
// try to open the csv file
$fp = fopen($_FILES['propfile']['tmp_name'], "r");
if ($fp) {
// you must decide if you need the headers in the csv file
// in this example there are no header so we just loop through
// the data
while ($record = fgetcsv($fp)) {
// $record[0] to $record[5] should
// contain the data you need to insert into your table
}
fclose($fp);
}
}
// do something similar for the next file containing data
// for the tbl_units table
答案 1 :(得分:1)
对于删除,您可以通过以这种方式使用“IN”关键字来执行批量删除,例如tbl_properties表:
DELETE FROM tbl_properties WHERE id IN (1,2,3...)
in关键字与您将此语句描述为:
相同DELETE FROM tbl_properties WHERE id = 1 OR id = 2 OR id = 3
并且你想要多少id你想要的好处就是你只抛出一次delete语句来删除所有这些行而不是循环它们并继续调用delete语句,这将是很多工作服务器的进程,不幸的是,对于更新而言,这是不可能的,因为如果你要用他们拥有的每一行的相同信息来更新所有列,你只能在每个语句的条件中抛出一个。
对于解析excel,有一些库可以帮助您管理它,并在解析过程中将每个列转换为数组,以便您轻松管理它。