Php 显示2个随机行,而不是一个
我的SQL查询:Php 显示2个随机行,而不是一个,php,mysql,Php,Mysql,我的SQL查询: $q = mysql_query("SELECT * FROM `ads` WHERE keywords LIKE '%$key%' ORDER BY RAND()"); 结果:关键词123 此查询在一个随机行中搜索并生成结果,但我想显示两个随机行。 怎么做 有解决办法吗 怎么做 我用这个抓取它 $row=mysql\u fetch\u数组($q);如果($行) 该查询(按原样)将返回多行(假设多行类似于%$key%)。如果只看到一条记录,则可能不是在结果集中循环,而是在PH
$q = mysql_query("SELECT * FROM `ads` WHERE keywords LIKE '%$key%' ORDER BY RAND()");
结果:关键词123
此查询在一个随机行中搜索并生成结果,但我想显示两个随机行。
怎么做
有解决办法吗
怎么做
我用这个抓取它
$row=mysql\u fetch\u数组($q);如果($行)
该查询(按原样)将返回多行(假设多行类似于%$key%)。如果只看到一条记录,则可能不是在结果集中循环,而是在PHP代码中从堆栈中提取顶部响应
要将响应限制为2条记录,您需要将limit2
附加到查询的末尾。否则,您将获得与LIKE
运算符匹配的每一行
//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循环将在每个返回的行中运行一次。每次运行时,内部的$row
数组将表示正在访问的当前记录。上面的示例将回显存储在db表中的选项卡
字段中的值。删除订单,并添加执行后发生的限制2SQL的一部分
现在你一定在做类似的事情
$res = mysql_query($q);
$r = mysql_fetch_array($res);
echo $r['keywords'];
你需要做什么
$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'];
}
$q=mysql\u查询(“从广告中选择*,其中“%$key%”等关键字按兰德排序()限制2”);
$res=mysql\u查询($q);
而($r=mysql\u fetch\u数组($res)){
回声“
”$r['keywords'];
}
希望对您有所帮助此查询将返回包含$key的所有行;如果现在只返回一行,这完全是偶然的
您想在查询中添加一个LIMIT子句,cf
顺便说一句,“%”和ORDER BY RAND()都是性能杀手