搜索脚本 - 列,表名和条件作为参数/变量

时间:2015-10-28 16:19:31

标签: php mysqli prepared-statement

如果标题不准确,请对不起。

我要做的是为搜索做一个动态查询。准备好的语句将接收列和表名作为参数,并可选择条件(WHERE,AND)作为php变量:

我正在寻找这样的工作吗?

$optional_cond = ' WHERE city = ' . $city . 'AND zone = ' . $zone;  // int

if ($stmt = $mysqli->prepare("SELECT COUNT(?) as count, ? FROM ?" . $optional_cond) {
    $stmt->bind_param('sss', $column, $column, $table);
    $stmt->execute();

    $row = $stmt->fetch();
}

$total_results = $row['count'] // here i need the count

现在我需要获取数据:

if (!isset($page_number))
    $page_number = (int)$_GET['page'] <= 0 ? 1 : (int)$_GET['page']; // grab the page number

$perpage = 4; // number of elements perpage

if ($page_number > ceil($total_results/$perpage))
    $page_number = ceil($total_results/$perpage);

$start = ($page_number - 1) * $perpage;

// here i need the id's one by one
while ($row = $stmt->fetch()) {
    $id = $row[$column]; // i think bind_param does not accept arrays
    if ($stmt = $mysqli->prepare("SELECT * FROM ? Where id = ? LIMIT ? ?") {
        $stmt->bind_param('siii', $table2, $id, $start, $perpage);
        $stmt->execute();
    }
    while ($row = $stmt->fetch()) {
        // print the data
    }
}

我不确定这是否是最好的方法,我很感激任何建议和改进。

我将使用ajax发送变量$city$zone,我还需要做其他事情吗? (除了检查是否有帖子)。

0 个答案:

没有答案
相关问题