本文介绍了PHP函数中的奇怪过滤器结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下PHP函数来过滤MySQL表:

I am using following PHP function to filter a MySQL table:

  public function buscarModelos($searchWord)
    {
        $returnValue = array();

        $sql = "select * from tb_modelos  where 1";

        if(!empty($searchWord))
        {
            $sql .= " and ( agencia_modelo LIKE ?  )";
              $sql .= " ORDER BY nombre_modelo";

        }

        $statement = $this->conn->prepare($sql);

        if (!$statement)
            throw new Exception($statement->error);

        if(!empty($searchWord))
        {
          $searchWord = '%' ;
          $statement->bind_param("s",  $searchWord );
        }

        $statement->execute();

        $result = $statement->get_result();

         while ($myrow = $result->fetch_assoc()) 
         {
           $returnValue[] = $myrow;
         }

        return $returnValue;
    } 

我需要过滤$ searchWord,在这种情况下为$ searchWord = TOU656.

I need to filter for $searchWord, in this case $searchWord = TOU656.

我的问题是查询没有按照我的要求进行过滤.

My issue is that the query is not filtering as I want.

如您所见,有一行(#34)的TOU658作为键agencia_modelo的值

As you can see, there is a row (#34) that has TOU658 as value for key agencia_modelo

我正在从iOS应用中调用PHP函数,我只想获取以TOU656作为键agencia_model的值的行,但是从过滤器结果中也收到了第34行.

I am calling the PHP function from a iOS app and I only want to get the rows that have TOU656 as value for key agencia_model, but row #34 is also received as part from the filter result.

编辑

string(87)从tb_modelos中选择*,其中1和(agencia_modelo喜欢吗?)ORDER BY nombre_modelo" string(1)%" {"friends":[{"id_modelo":34,"nombre_modelo":"CHRYSLER 200," agencia_modelo:" TOU658},{" id_modelo:2," nombre_modelo:" CHRYSLER 300," agencia_modelo:" TOU656},{" id_modelo:7," nombre_modelo:" CHRYSLER NEON," agencia_modelo:" TOU656},{" id_modelo:16," nombre_modelo:" CHRYSLER PACIFICA," agencia_modelo:" TOU656},{" id_modelo:15," nombre_modelo:" CHRYSLER TOWN& COUNTRY," agencia_modelo:" TOU656},{" id_modelo:6," nombre_modelo:" CHRYSLER VISION," agencia_modelo:" TOU656},{" id_modelo:4," nombre_modelo":"DODGE ATOS","agencia_modelo":"TOU656"},{"id_modelo":5,"nombre_modelo":"DODGE ATTITUDE","agencia_modelo":"TOU656"},{"id_modelo":32,"nombre_modelo" :"DODGE AVENGER","agencia_modelo":"TOU656"},{"id_modelo":13,"nombre_modelo":"DODGE DURANGO","agencia_modelo":"TOU656"},{"id_modelo":14,"nombre_modelo" :"DODGE GRAND CARAVAN","agencia_modelo":"TOU656"},{"id_modelo":8,"nombre_modelo" :"DODGE JOURNEY","agencia_modelo":"TOU656"},{"id_modelo":25,"nombre_modelo":"FIAT 500","agencia_modelo":"TOU656"},{"id_modelo":26,"nombre_modelo" :"FIAT 500 L","agencia_modelo":"TOU656"},{"id_modelo":27,"nombre_modelo":"FIAT 500 X","agencia_modelo":"TOU656"},{"id_modelo":29,"nombre_modelo:" FIAT DUCATO," agencia_modelo:" TOU656},{" id_modelo:21," nombre_modelo:" FIAT MOBI," agencia_modelo:" TOU656},{" id_modelo:23," nombre_modelo:" FIAT PALIO," agencia_modelo:" TOU656},{" id_modelo:24," nombre_modelo:" FIAT PALIO ADVENTURE," agencia_modelo:" TOU656},{" id_modelo:22, "nombre_modelo":"FIAT UNO","agencia_modelo":"TOU656"},{"id_modelo":11,"nombre_modelo":"JEEP CHEROKEE","agencia_modelo":"TOU656"},{"id_modelo":10, "nombre_modelo":"JEEP COMPASS","agencia_modelo":"TOU656"},{"id_modelo":12,"nombre_modelo":"JEEP GRAND CHEROKEE","agencia_modelo":"TOU656"},{"id_modelo":9 ,"nombre_modelo":"JEEP PATRIOT","agencia_modelo":"TOU656"},{"id_modelo":31,"nombre_modelo":"JEEP RENEGADE","agencia_modelo":"TOU65 6},{" id_modelo:30," nombre_modelo:"吉普牧马人," agencia_modelo:" TOU656},{" id_modelo:18," nombre_modelo:" RAM 700," agencia_modelo:" TOU656},{" id_modelo:17," nombre_modelo:" RAM PICKUP," agencia_modelo:" TOU656},{" id_modelo:19," nombre_modelo:" RAM PROMASTER," agencia_modelo:" TOU656},{" id_modelo:20," nombre_modelo:" RAM PROMASTER RAPID," agencia_modelo:" TOU656}]}}

string(87) "select * from tb_modelos where 1 and ( agencia_modelo LIKE ? ) ORDER BY nombre_modelo" string(1) "%" {"friends":[{"id_modelo":34,"nombre_modelo":"CHRYSLER 200","agencia_modelo":"TOU658"},{"id_modelo":2,"nombre_modelo":"CHRYSLER 300","agencia_modelo":"TOU656"},{"id_modelo":7,"nombre_modelo":"CHRYSLER NEON","agencia_modelo":"TOU656"},{"id_modelo":16,"nombre_modelo":"CHRYSLER PACIFICA","agencia_modelo":"TOU656"},{"id_modelo":15,"nombre_modelo":"CHRYSLER TOWN & COUNTRY","agencia_modelo":"TOU656"},{"id_modelo":6,"nombre_modelo":"CHRYSLER VISION","agencia_modelo":"TOU656"},{"id_modelo":4,"nombre_modelo":"DODGE ATOS","agencia_modelo":"TOU656"},{"id_modelo":5,"nombre_modelo":"DODGE ATTITUDE","agencia_modelo":"TOU656"},{"id_modelo":32,"nombre_modelo":"DODGE AVENGER","agencia_modelo":"TOU656"},{"id_modelo":13,"nombre_modelo":"DODGE DURANGO","agencia_modelo":"TOU656"},{"id_modelo":14,"nombre_modelo":"DODGE GRAND CARAVAN","agencia_modelo":"TOU656"},{"id_modelo":8,"nombre_modelo":"DODGE JOURNEY","agencia_modelo":"TOU656"},{"id_modelo":25,"nombre_modelo":"FIAT 500","agencia_modelo":"TOU656"},{"id_modelo":26,"nombre_modelo":"FIAT 500 L","agencia_modelo":"TOU656"},{"id_modelo":27,"nombre_modelo":"FIAT 500 X","agencia_modelo":"TOU656"},{"id_modelo":29,"nombre_modelo":"FIAT DUCATO","agencia_modelo":"TOU656"},{"id_modelo":21,"nombre_modelo":"FIAT MOBI","agencia_modelo":"TOU656"},{"id_modelo":23,"nombre_modelo":"FIAT PALIO","agencia_modelo":"TOU656"},{"id_modelo":24,"nombre_modelo":"FIAT PALIO ADVENTURE","agencia_modelo":"TOU656"},{"id_modelo":22,"nombre_modelo":"FIAT UNO","agencia_modelo":"TOU656"},{"id_modelo":11,"nombre_modelo":"JEEP CHEROKEE","agencia_modelo":"TOU656"},{"id_modelo":10,"nombre_modelo":"JEEP COMPASS","agencia_modelo":"TOU656"},{"id_modelo":12,"nombre_modelo":"JEEP GRAND CHEROKEE","agencia_modelo":"TOU656"},{"id_modelo":9,"nombre_modelo":"JEEP PATRIOT","agencia_modelo":"TOU656"},{"id_modelo":31,"nombre_modelo":"JEEP RENEGADE","agencia_modelo":"TOU656"},{"id_modelo":30,"nombre_modelo":"JEEP WRANGLER","agencia_modelo":"TOU656"},{"id_modelo":18,"nombre_modelo":"RAM 700","agencia_modelo":"TOU656"},{"id_modelo":17,"nombre_modelo":"RAM PICKUP","agencia_modelo":"TOU656"},{"id_modelo":19,"nombre_modelo":"RAM PROMASTER","agencia_modelo":"TOU656"},{"id_modelo":20,"nombre_modelo":"RAM PROMASTER RAPID","agencia_modelo":"TOU656"}]}

推荐答案

如果参数$searchWord不为空,请设置值'%'?

If argument $searchWord is not empty, set value '%'?

如果为agencia_modelo LIKE '%',则查询结果未按列agencia_modelo进行过滤.

If agencia_modelo LIKE '%', query result is not filtering by column agencia_modelo.

if(!empty($searchWord))
{
    $searchWord = '%' ; // <--- Here
    $statement->bind_param("s",  $searchWord );
}

这篇关于PHP函数中的奇怪过滤器结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 17:47