- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做多层网站,所以我有 2 个页面;第一页按类型选择,其他页按品牌选择。
经验
typepage.html
.All
.cars
.bike
.computer
我将所有产品存放在一张 table 上数据库“产品”
ID, PRODUCT_NAME, PRODUCT_TYPE, PRODUCT_BRAND
我正在使用ajax进入数据库并检查它,如果用户在类型页面中单击全部,它将获得所有 PRODUCT_TYPE 项目,但如果他们单击汽车,它将仅查找 PRODUCT_TYPE="cars"。但同时,我还需要使用该 AJAX 来执行无限加载,因此当用户向下滚动时,它将加载更多。
我添加了获取最后一次加载 ID 的功能,以便我可以跟踪它们停止的位置。
sql加载全部
$this->sql = "SELECT * FROM $this->table WHERE ID > :last_id ORDER BY ID ASC LIMIT 0, :limit";
现在我可以将last_id数字设置为0,它将加载7个项目数据,向下滚动时将从7继续。
但是如果用户点击汽车而我仍然想向下滚动怎么办?该数字会有所不同,因为数据库中的汽车项目 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";
这是函数_extract
# 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
);
}
}
我有这个错误 undefined variable :参数
所以我的问题是如何仅加载 PRODUCT_ITEM='cars' 并同时检查 last_id 是否大于 ID。
经验值typepage.html,用户点击car,它加载了数据 PRODUCT_TYPE="car",现在是[1,4,5,9],当它向下滚动时,它再次检查并加载大于9的ID,同时是一个 PRODUCT_TYPE= “卡”。
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";
关于php - 加载Product_TYPE ='cars',同时检查last_id是否比ID大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41541667/
客户sql已插入,其他sql未插入。帮助。谢谢了 我有 customer_tbl、transaction_tbl 和 order_tbl 的 SQL。 customer_no、transaction_
我需要获取具有多列主键的表的最后插入的 ID。 那些表没有 AUTOCOUNT 列。 我正在使用参数化查询(任意顺序) 使用 PHP (5.3) 和 MySQLi 模块 任意 INSERT SQL 查
我是一名优秀的程序员,十分优秀!