Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示2个随机行,而不是一个_Php_Mysql - Fatal编程技术网

Php 显示2个随机行,而不是一个

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

我的SQL查询:

$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表中的
选项卡
字段中的值。

删除订单,并添加执行后发生的限制2

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'];
}
$q=mysql\u查询(“从广告中选择*,其中“%$key%”等关键字按兰德排序()限制2”);
$res=mysql\u查询($q);
而($r=mysql\u fetch\u数组($res)){
回声“
”$r['keywords']; }

希望对您有所帮助

此查询将返回包含$key的所有行;如果现在只返回一行,这完全是偶然的

您想在查询中添加一个LIMIT子句,cf

顺便说一句,“%”和ORDER BY RAND()都是性能杀手