Mysql 如何在此类条件下编写SQL查询
我正在建立一个电子商务网站,并坚持在一个地方实现编写SQL查询,因为我想实现一个函数,它将循环到两个地方,然后再次切换!!有点难解释请检查我的代码Mysql 如何在此类条件下编写SQL查询,mysql,html,Mysql,Html,我正在建立一个电子商务网站,并坚持在一个地方实现编写SQL查询,因为我想实现一个函数,它将循环到两个地方,然后再次切换!!有点难解释请检查我的代码 $ 您可以使用限制2偏移量2类似- 在下一次迭代中,增加值2到4,然后在下一次迭代中增加值4到6,依此类推。因此,最终需要使偏移动态值随循环的每次迭代增加2 <?php $recordQuery=mysql_query("select count(*) from products where seller_type='bes
$
您可以使用限制2偏移量2
类似-
在下一次迭代中,增加值2到4,然后在下一次迭代中增加值4到6,依此类推。
因此,最终需要使偏移动态值随循环的每次迭代增加2
<?php
$recordQuery=mysql_query("select count(*) from products where seller_type='best' and status = 1");
$totalRecords=mysql_fetch_assoc($recordQuery);
for ($i=0; $i<totalRecords; $i+=2) {
$ret=mysql_query("select * from products where seller_type='best' and status = 1 LIMIT 2 OFFSET " . $i);
$row1=mysql_fetch_array($ret);
$row2=mysql_fetch_array($ret);
?>
<div class="item">
<div class="products best-product">
<div class="product">
<!--/.use data from $row1 here -->
</div>
<div class="product">
<!--/.use data from $row here -->
</div>
</div>
</div>
<?php
}
?>
Offset
是您需要的。它告诉mysql应该在什么偏移量开始查询
这是动态查找正确偏移量的规则:
(offset * limit ) - limit
示例:您需要从第一行开始的两行
(1 * 2 ) - 2 = 0
因此,偏移量为0,查询如下
"SELECT * FROM products WHERE seller_type='best' and status = 1 LIMIT 2 OFFSET 0"
"SELECT * FROM products WHERE seller_type='best' and status = 1 LIMIT 2 OFFSET 2"
第一次希望从第三行开始获得两行,因此:
(2 * 2 ) - 2 = 2
所以这次的偏移量是2,查询如下
"SELECT * FROM products WHERE seller_type='best' and status = 1 LIMIT 2 OFFSET 0"
"SELECT * FROM products WHERE seller_type='best' and status = 1 LIMIT 2 OFFSET 2"
实现与在sql查询末尾添加偏移量
和限制
一样简单您能编辑代码并告诉我吗??如何实现它??我理解了我应该在类项之前或类产品之前检查示例代码的部分reference@user2018030在项目之前,因为你也在项目中循环,顺便说一句,不要忘记使用mysqli,最好是PDO。如果我使用项目之前,那么项目内部我有2个产品,你不认为两者会得到相同的产品名称和所有的细节吗?问题是在while循环中有重复的产品类。您只需要一个产品类,其余的由while循环完成。删除第二个product类。我理解应该在类项之前或在类产品之前将此查询放在代码开头的示例代码引用部分。我已经提到了你的while循环。所以它只是在你的while循环之上。而For循环将在您现有的while循环之后关闭。如果我使用before项,那么在items中我有两个产品,您不认为这两个产品将获得相同的产品名称和所有详细信息吗