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