php mysql搜索单元格中有多个数组的行

时间:2018-01-19 14:52:54

标签: php mysql arrays

好的,所以请留在这里......

我的网站有一个大约80,000行的表;我试图用一个MySQL查询搜索此表。问题是我搜索的行中的每个字段都有/可能有一个数组(例如:年份= 2017,2016,2015等),其中一些可能根本没有任何内容。我已经尝试过循环来构建我的" WHERE"条款,因为我拉结果,但那也不起作用。

任何想法?任何和所有的帮助将不胜感激。

代码:

INSERT INTO表 - 这是13个不同的行之一

if(!empty($_POST['pd_year']) && is_array($_POST['pd_year'])) {

    $pd_year = implode(",", $_POST['pd_year']);

        $insert_year = mysqli_query($con, "UPDATE prod_desigs_search_test SET pds_year = '$pd_year' WHERE s_id = '$search'"); 

} elseif(empty($_POST['pd_year'])) {

    $insert_year = mysqli_query($con, "UPDATE prod_desigs_search_test SET pds_year = ' ' WHERE s_id = '$search'"); 

}

选择设计并检查它是否是数组:

$get_search = mysqli_query($con, "SELECT * FROM prod_desigs_search_test WHERE s_id = '$s_id'"); 
while($new_search = mysqli_fetch_array($get_search)) {

$pd_year_ex = $new_search['pds_year'];

if(!empty($pd_year_ex) && is_array($pd_year_ex)) {
    $pd_year = explode(",", $pd_year_ex, 0);
    $year = $pd_year[0];
} elseif(!empty($pd_year_ex) && !is_array($pd_year_ex)) {
    $year = $pd_year_ex;
} 

$search = mysqli_query($con, "SELECT * FROM prod_designs WHERE pd_year = '$year'");
while($row_search = mysqli_fetch_array($search)) {

修改

我试图建立" WHERE"在查询中依赖于is_array检查,如下所示:

$where = "WHERE ";

if(!empty($pd_year_ex) && is_array($pd_year_ex)) {
    $pd_y = $pd_year[0];
    foreach ($pd_y as $year) {
        $where .= "pd_year LIKE '%".$year."%'";
    }
} elseif(!empty($pd_year_ex) && !is_array($pd_year_ex)) {
    $where .= "pd_year LIKE '%".$pd_year_ex."%'";
} elseif(empty($pd_year_ex)) {
    $where .= "";
}

这似乎也不起作用。我只是想了解如何进行这样的搜索:

$search = mysqli_query($con, "SELECT * FROM designs WHERE pd_year LIKE '%2017,2016,2015%'")(etc) 

我知道它不会与上述相关,但我如何在桌子上搜索这样的东西?

0 个答案:

没有答案