Php 加载产品类型=';汽车';同时检查最后一个id大于该id
我做多层次的网站,所以我有2页;第一页按类型选择,另一页按品牌选择 Exp typepage.htmlPhp 加载产品类型=';汽车';同时检查最后一个id大于该id,php,mysql,pdo,Php,Mysql,Pdo,我做多层次的网站,所以我有2页;第一页按类型选择,另一页按品牌选择 Exp typepage.html .All .cars .bike .computer $this->sql = "SELECT * FROM $this->table WHERE ID > :last_id ORDER BY ID ASC LIMIT 0, :limit"; 我把所有的产品都放在一张桌子上 数据库 “产品” 我使用ajax进入数据库并检查它,如果用户在type页面中单击all,它将获得所
.All
.cars
.bike
.computer
$this->sql = "SELECT * FROM $this->table WHERE ID > :last_id ORDER BY ID ASC LIMIT 0, :limit";
我把所有的产品都放在一张桌子上
数据库
“产品”
我使用ajax进入数据库并检查它,如果用户在type页面中单击all,它将获得所有PRODUCT_type项目,但如果他们单击cars,它将只查找PRODUCT_type=“cars”。但同时,我还需要使用AJAX进行无限加载,所以当用户向下滚动时,它将加载更多
我添加以获取最后一个加载id,以便跟踪它们的停止位置
sql加载所有内容
.All
.cars
.bike
.computer
$this->sql = "SELECT * FROM $this->table WHERE ID > :last_id ORDER BY ID ASC LIMIT 0, :limit";
因此,现在我可以设置最后一个_id号,如0,它将加载7项数据,当向下滚动时,它将从7继续
但若用户点击汽车,我仍然想向下滚动怎么办?由于数据库中的cars项目ID可能为[1,5,6,7,8],因此编号会有所不同
sql加载类型
$this->sql = "SELECT * FROM $this->table WHERE ID > :last_id AND WHERE PRODUCT_TYPE='cars' ORDER BY ID ASC LIMIT 0, :limit";
这是函数提取
# Get an associative array of results for the sql.
public function _extract($sql, $param_1, $param_2) {
try {
$stmt = $this->connection->prepare($sql);
$stmt->bindParam(':last_id', $param_1, PDO::PARAM_INT);
$stmt->bindParam(':limit', $param_2, PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
// Echo the error or Re-throw it to catch it higher up where you have more
// information on where it occurred in your program.
// e.g echo 'Error: ' . $e->getMessage();
throw new Exception(
__METHOD__ . 'Exception Raised for sql: ' . var_export($sql, true) .
' Params: ' . var_export($params, true) .
' Error_Info: ' . var_export($this->errorInfo(), true),
0,
$e
);
}
}
我有一个错误未定义的变量:params
ID, PRODUCT_NAME, PRODUCT_TYPE, PRODUCT_BRAND
因此,我的问题是如何只加载产品&u ITEM='cars',同时检查最后的&u id是否大于id
经验
typepage.html,用户点击car,它加载的数据PRODUCT_TYPE=“car”,现在向下滚动时为[1,4,5,9],再次检查并加载ID大于9的同时为PRODUCT_TYPE=“card”
如何编写SQL?错误消息不是由SQL语句生成的。当系统试图抛出自定义异常时,将抛出该异常。原因很简单(并在错误消息中明确说明)。您尝试使用未在任何地方定义的变量$params
throw new Exception(
__METHOD__ . 'Exception Raised for sql: ' . var_export($sql, true) .
' Params: ' . var_export($param_1, true) . ' ' . var_export($param_2, true) .
' Error_Info: ' . var_export($this->errorInfo(), true),
0,
$e);
现在回到您的SQL语句。语法不正确。where关键字只允许使用一次。将其更改为:
$this->sql = "SELECT * FROM $this->table WHERE ID > :last_id AND PRODUCT_TYPE='cars' ORDER BY ID ASC LIMIT 0, :limit";