我的SQL查询:
$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’;}
发布于 2011-07-01 21:39:21
该查询(按原样)将返回多个行(假设多个行类似于%$key%)。如果您只看到一条记录,则有可能您不是在遍历结果集,而是在PHP代码中将顶部响应从堆栈中取出。
要将响应限制为2条记录,您可以将LIMIT 2附加到查询的末尾。否则,您将得到与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-loop将在每个返回的行中运行一次。每次运行时,内部的$row数组将表示正在访问的当前记录。上面的示例将响应数据库表中存储在tab字段中的值。
发布于 2011-07-01 21:39:58
删除订单,并添加限制2
发布于 2011-07-01 21:41:05
这发生在SQL执行之后。
现在你一定是在做这样的事
$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'];
}希望这有帮助
https://stackoverflow.com/questions/6553459
复制相似问题