首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示2行随机行而不是1行

显示2行随机行而不是1行
EN

Stack Overflow用户
提问于 2011-07-01 21:36:55
回答 4查看 213关注 0票数 2

我的SQL查询:

代码语言:javascript
复制
$q = mysql_query("SELECT * FROM `ads` WHERE keywords LIKE '%$key%' ORDER BY RAND()");

结果: KEYWORD123

此查询搜索并生成一个随机行,但我想显示两个随机行。怎么做?

有解决办法吗?

怎么做??

我用这个抓住它

$row = mysql_fetch_array($q);if ($row <= 0){ echo 'Not‘;}$q{ echo $row’‘tab’;}

EN

回答 4

Stack Overflow用户

发布于 2011-07-01 21:39:21

该查询(按原样)将返回多个行(假设多个行类似于%$key%)。如果您只看到一条记录,则有可能您不是在遍历结果集,而是在PHP代码中将顶部响应从堆栈中取出。

要将响应限制为2条记录,您可以将LIMIT 2附加到查询的末尾。否则,您将得到与LIKE运算符匹配的每一行。

代码语言:javascript
复制
//Build Our Query
$sql = sprintf("SELECT tab 
                FROM ads 
                WHERE keyword LIKE '%s' 
                ORDER BY RAND() 
                LIMIT 2", ('%'.$key.'%'));
// Load results of query up into a variable
$results = mysql_query($sql);
// Cycle through each returned record
while ( $row = mysql_fetch_array($result) ) {
  // do something with $row
  echo $row['tab'];
}

while-loop将在每个返回的行中运行一次。每次运行时,内部的$row数组将表示正在访问的当前记录。上面的示例将响应数据库表中存储在tab字段中的值。

票数 3
EN

Stack Overflow用户

发布于 2011-07-01 21:39:58

删除订单,并添加限制2

票数 1
EN

Stack Overflow用户

发布于 2011-07-01 21:41:05

这发生在SQL执行之后。

现在你一定是在做这样的事

代码语言:javascript
复制
$res = mysql_query($q);
$r = mysql_fetch_array($res);
echo $r['keywords'];

你需要做的是

代码语言:javascript
复制
$q = mysql_query("SELECT * FROM ads WHERE keywords LIKE '%$key%' ORDER BY RAND() LIMIT 2");
$res = mysql_query($q);
while($r = mysql_fetch_array($res)){
echo "<br>" . $r['keywords'];
}

希望这有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6553459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档