Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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 如何按ID存储随机SQL查询?_Php_Mysql_Sql_Variables - Fatal编程技术网

Php 如何按ID存储随机SQL查询?

Php 如何按ID存储随机SQL查询?,php,mysql,sql,variables,Php,Mysql,Sql,Variables,在我从我的表中调用一个随机行(包括一个单词、它的定义和一个id列)之后,我想存储该单词和定义,以便在按下另一个按钮时可以编辑它。从我在网上看到的情况来看,常见的解决方案是按id存储。如何按id存储随机SQL查询 下面是一个例子,说明专业人士 切勿在软件中使用SELECT*,而应给出 您需要的列 我会帮你的。如果您的words表有一个id列,请存储该值。由于性能不佳,强烈建议不要使用RAND()和fetching by* 建议的例子: $randWord = mysql_query("SELECT

在我从我的表中调用一个随机行(包括一个单词、它的定义和一个id列)之后,我想存储该单词和定义,以便在按下另一个按钮时可以编辑它。从我在网上看到的情况来看,常见的解决方案是按id存储。如何按id存储随机SQL查询

下面是一个例子,说明专业人士

切勿在软件中使用
SELECT*
,而应给出 您需要的列

我会帮你的。如果您的
words
表有一个
id
列,请存储该值。

由于性能不佳,强烈建议不要使用RAND()和fetching by*

建议的例子:

$randWord = mysql_query("SELECT * FROM words ORDER BY RAND() LIMIT 1");
其中mysql\u result获取记录总数,mysql\u fetch\u数组将结果转换为一个数组。rand(0,$total-1)在可用记录之间生成一个随机数,然后满足查询中的[LIMIT start,LIMIT]语句

您可以建立自己的DB类以减少代码冗余


对于您的问题,您应该创建一个字段作为主键(或唯一标识符)。就像我上面建议的“wid”字段。然后,您可以将其作为按钮的值输出,依此类推。

您应该查看mysqli或PDO以备将来使用。将该行提取到数组中,并通过
$row['primary_key']
存储该行。将ID存储在中,然后您可以使用
检索该行,其中ID=:ID
。而且,
ORDER()BY RAND()
几乎是查询中最糟糕的事情。停止它。我如何通过
$row['primary\u key']
存储它?我确实有一个id列,我只是不确定存储它以供以后访问的代码。我如何存储它以供以后使用?只需
$currentid=$db_field['id']
,然后稍后使用$currentid?是的,如果您的表有一个唯一的(可能是主键自动递增)id列,并且您需要稍后检索任意行,则可以存储该行的id。
$total = mysql_result(mysql_query('SELECT COUNT(*) FROM words'), 0);
$randWord = mysql_fetch_array(mysql_query('SELECT wid, word, definition FROM words LIMIT '.rand(0, $total - 1).', 1'), 0);