从mysql_num_rows中选择查询

时间:2012-07-04 02:57:13

标签: php mysql

我想创建多个搜索,其中声明$ where_search是来自帖子表单的多个条件。 但当我使用此代码“.where_search”时,stil错误。在mysql_num_rows用于分页的条件

$tampil2 = mysql_query("SELECT * FROM bb where ".$where_search."  and kd_kelompok='2' and kd_komoditi='11' and nm_sebutan IS NOT NULL " );

这是完整的代码。

$where_search = "kd_pok='2' and kd_komoditi='11' ";

if (isset($_POST['lakpus']))
{

    if (empty($_POST['lakpus']))
    {

    }
    else
    {

        if (empty($where_search))
        {
             $where_search .= "lakpus = '$lakpus' ";
        }
        else
        {

             $where_search .= "AND lakpus = '$lakpus' ";

        }
    }
} 

if (isset($_POST['kd_por']))
{
    $kd_por = $_POST['kd_por'] ;

    if (empty($_POST['kd_por']))
    {

    }
    else
    {

        if (empty($where_search))
        {
            $where_search .= "kd_por = '$kd_por' ";

        } 
        else
        {

            $where_search .= "AND tab1.kd_por = '$kd_por' ";

        }
    }
} 

$max=15;
$tampil2 = mysql_query("SELECT * FROM bb where ".$where_search."  and kd_kelompok='2' and kd_komoditi='11' and nm_sebutan IS NOT NULL " );
$jml = mysql_num_rows($tampil2);
$jmlhal  = ceil($jml/$max);

1 个答案:

答案 0 :(得分:2)

也许你的错误就在这里:

$where_search .= "AND tab1.kd_por = '$kd_por' ";

因为您没有声明“tab1”。尝试更改为:

$where_search .= "AND kd_por = '$kd_por' ";

编辑1

您没有从$lakpus恢复var $_POST并使用它。以下是您必须更新的代码的一部分。

...

else
{

    $lakpus = $_POST['lakpus'];

    if (empty($where_search))
    {
        $where_search .= "lakpus = '$lakpus' ";
    }

    ...

编辑2

正如我在评论中所说,尝试在mysql_query()之后调用mysql_num_rows(),如下所示。

$qry = "SELECT * FROM bb where ".$where_search; 

$res = mysql_query($qry); 

$num = mysql_num_rows($res);

$row = mysql_fetch_array($res);