Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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 在数组中保存列_Php_Sql - Fatal编程技术网

Php 在数组中保存列

Php 在数组中保存列,php,sql,Php,Sql,我正在尝试使用 SELECT QNO FROM TABLE ORDER BY RAND() LIMIT 10 它返回数据库的一列 如果我想将所有条目保存在一个数组中,那么我必须使用哪个php函数来保存列。请看一些示例,了解如何运行查询并获取结果集。 在变量中获得结果后,请执行以下操作: $myarray = array(); while($row = mysqli_fetch_row($result)) $myarray[] = $row[0]; 查看一些示例,了解如何运行查询并获

我正在尝试使用

SELECT QNO FROM TABLE  ORDER BY RAND() LIMIT 10
它返回数据库的一列


如果我想将所有条目保存在一个数组中,那么我必须使用哪个php函数来保存列。

请看一些示例,了解如何运行查询并获取结果集。

在变量中获得结果后,请执行以下操作:

$myarray = array();
while($row = mysqli_fetch_row($result))
   $myarray[] = $row[0];

查看一些示例,了解如何运行查询并获取结果集。

在变量中获得结果后,请执行以下操作:

$myarray = array();
while($row = mysqli_fetch_row($result))
   $myarray[] = $row[0];

类似的东西

$result = mysql_query("SELECT QNO FROM TABLE ORDER BY RAND() LIMIT 10");
$rows = array();
while ($row = mysql_fetch_row($result)) {
    $rows[] = $row[0];
}

更新为不使用第一篇文章和评论中指出的$i变量。

与此类似的内容

$result = mysql_query("SELECT QNO FROM TABLE ORDER BY RAND() LIMIT 10");
$rows = array();
while ($row = mysql_fetch_row($result)) {
    $rows[] = $row[0];
}
更新为不使用第一篇文章和评论中指出的$i变量。

对于PDO:

$qryStmt = $dbc->query('SELECT QNO FROM TABLE ORDER BY RAND() LIMIT 10');
$a = $qryStmt->fetchAll( PDO::FETCH_COLUMN );
对于PDO:

$qryStmt = $dbc->query('SELECT QNO FROM TABLE ORDER BY RAND() LIMIT 10');
$a = $qryStmt->fetchAll( PDO::FETCH_COLUMN );

顺便说一句:如果您只想随机获得一行,这会更快,尤其是对于大型表:

从表限制12345,1中选择*

其中12345只是根据行的count()计算的随机数

,这更适合rails,但也可以看看评论


但要小心:在限制12345,2中,第二行不是随机的,而是随机行之后的下一行。请注意:当我记得正确的时候(例如SQLServer),rand()可以由mysql以外的数据库进行优化,从而使所有行都具有相同的随机数,这使得结果不是随机的。当您的代码不依赖数据库时,这一点很重要。

顺便说一句:如果您只想随机获取一行,则速度要快得多,尤其是对于大型表:

从表限制12345,1中选择*

其中12345只是根据行的count()计算的随机数

,这更适合rails,但也可以看看评论


但要小心:在限制12345,2中,第二行不是随机的,而是随机行之后的下一行。请注意:当我记得正确的时候(例如SQLServer),rand()可以由mysql以外的数据库进行优化,从而使所有行都具有相同的随机数,这使得结果不是随机的。这一点很重要,因为您的代码应该与数据库无关。

最后一点:不要将“随机”与“难以预测”混为一谈,这是不同的。因此,SQLServer上的order by example“select top 10…order by rand()”在运行两次时会产生两个不同的结果集,但是:如果您查看这10条记录,它们在数据库中彼此靠近,这意味着它们不是随机的。

最后一条:不要将“随机”与“难以预测”混淆,这两条结果不同。因此,SQLServer上的order by example“select top 10…order by rand()”在运行两次时会产生两个不同的结果集,但是:如果您查看这10条记录,它们在数据库中彼此靠近,这意味着它们不是随机的。

这里实际上不需要计数器($i)。如果您只分配给$rows[],它将在数组末尾自动创建一个新的“插槽”。您实际上不需要这里的计数器($i)。如果您只分配给$rows[],它将在数组末尾自动创建一个新的“槽”。我认为您需要PDO::FETCH_列而不是PDO::FETCH_ASSOCI我认为您需要PDO::FETCH_列而不是PDO::FETCH_ASSOC