Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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 如何限制从Mysql数据库获取的Sql结果?_Php_Mysql_Limit - Fatal编程技术网

Php 如何限制从Mysql数据库获取的Sql结果?

Php 如何限制从Mysql数据库获取的Sql结果?,php,mysql,limit,Php,Mysql,Limit,我需要3行数据从同一个表使用相同的查询在同一页上,但3个不同的地方。我在一个页面上使用以下查询3次,以获得3行数据并在每个位置显示。这使我的页面加载非常慢。是否有任何方法可以使用单个查询获取9行数据,并通过在同一页面的3个不同位置拆分3行数据来使用它 我的问题是: $result = mysql_query("select * from table order by rand() limit 3 "); while ($row = mysql_fetch_array($result)){

我需要3行数据从同一个表使用相同的查询在同一页上,但3个不同的地方。我在一个页面上使用以下查询3次,以获得3行数据并在每个位置显示。这使我的页面加载非常慢。是否有任何方法可以使用单个查询获取9行数据,并通过在同一页面的3个不同位置拆分3行数据来使用它

我的问题是:

$result = mysql_query("select * from table order by rand() limit 3 ");
while ($row = mysql_fetch_array($result)){
    $a1=$row['a1']; 
    $a2=$row['a2'];
    $a3=$row['a3']; 
    $a4=$row['a4'];
    $a5=$row['a5'];
    echo "<div class=\"col-sm-4\"><div class=\"product-image-wrapper\"><div class=\"single-products\"><div class=\"productinfo text-center\"><a3 src=\"$a3\" alt=\"$a1\"><h2>$a4</h2><h5>$a1</h5><a a2=\"$a2\" target=_blank class=\"btn btn-default add-to-cart\"><i class=\"fa fa-shopping-cart\"></i>$a5</a></div></div></div></div>\n";
} 
$result=mysql\u查询(“按rand()限制3从表顺序中选择*);
while($row=mysql\u fetch\u数组($result)){
$a1=$row['a1'];
$a2=$row['a2'];
$a3=$row['a3'];
$a4=$row['a4'];
$a5=$row['a5'];
回显“$a4$a1$a5\n”;
} 

当然可以,只需将结果放入一个数组中,然后按索引(0-8)使用该数组。确保有足够的元素

$result = mysql_query("select * from table order by rand() limit 9 ");
$nineRows = [];
while ($row = mysql_fetch_array($result)){
  $nineRows[] = $row; 
} 

//first usage
$item = $nineRows[0];
echo "<div class=\"col-sm-4\"><div class=\"product-image-wrapper\"><div class=\"single-products\"><div class=\"productinfo text-center\"><a3 src=\"$item['a3']\" alt=\"$item['a1']\"><h2>$item['a4']</h2><h5>$item['a1']</h5><a a2=\"$item['a2']\" target=_blank class=\"btn btn-default add-to-cart\"><i class=\"fa fa-shopping-cart\"></i>$item['a5']</a></div></div></div></div>\n";

//second usage
$item = $nineRows[1];
echo "<div class=\"col-sm-4\"><div class=\"product-image-wrapper\"><div class=\"single-products\"><div class=\"productinfo text-center\"><a3 src=\"$nineRows[1]['a3']\" alt=\"$nineRows[1]['a1']\"><h2>$item['a4']</h2><h5>$item['a1']</h5><a a2=\"$nineRows[1]['a2']\" target=_blank class=\"btn btn-default add-to-cart\"><i class=\"fa fa-shopping-cart\"></i>$item['a5']</a></div></div></div></div>\n";
$result=mysql\u查询(“按rand()限制9从表顺序中选择*);
$nineRows=[];
while($row=mysql\u fetch\u数组($result)){
$nineRows[]=$row;
} 
//首次使用
$item=$nineRows[0];
回显“$item['a4']$item['a1']$item['a5']\n”;
//第二次使用
$item=$nineRows[1];
回显“$item['a4']$item['a1']$item['a5']\n”;

如果可以,您应该这样做。它们不再得到维护,而是在使用。学习替代,并考虑使用PDO,SRY先生,我是新的PHP和MySQL…我不明白你想对我说什么先生。。。请帮我看一下。这有点傻,因为重复的文本,但我把它留给你学习-echo应该被一个以$item为参数的函数所取代。否则,它应该像您的示例一样工作,只允许您在任何时候访问任何“数据”项。