gpt4 book ai didi

php - 使用PHP随机从MySQL表列中拉取数据

转载 作者:行者123 更新时间:2023-12-01 00:51:38 25 4
gpt4 key购买 nike

我正在使用以下内容(假设我已经计划在以后将它们更改为 mysqli 并且知道所使用的查询的不安全性),从 MySQL 表中的一列中的行中提取文本字符串并输出在浏览器中,理想情况下,是从此列中随机选择的字符串:

mysql_connect($host,$username,$password); 
mysql_select_db($database) or die(mysql_error ());

$query="SELECT * FROM `tablename` ORDER BY RAND() LIMIT 0,1;";
$result=mysql_query($query);
$rows = array();
while($row = mysql_fetch_array($rs)) {
$rows[] = $row;
}
mysql_close();
$max = count($rows) - 1;

使用以下回显行在浏览器中实现最后一位:

echo $rows[rand(0, $max)][0] . " " . $rows[rand(0, $max)][1] . " " . $rows[rand(0, $max)][2] . " " . $rows[rand(0, $max)][3] . " " . $rows[rand(0, $max)][4]$
?>

我收到错误“PHP Notice: Undefined offset: 0 in script.php on line 19”引用这个回显行(诚然,这是从其他线程和教程拼凑而成的,所以我没有完全遵循) ,但是,我已经解决了记录和观察到的所有其他错误,所以如果可能的话,我该如何修改它以便输出只是列中的一行(其中的文本)?

最佳答案

比使用 RAND() 更快更好

$conn = mysqli_connect($host,$username,$password, $database);
if($conn->connect_errno > 0) {
die('Unable to connect to database [' . $conn->connect_error . ']');
}

$total_rows = 20; //Generate Random number. You could get $total_rows with a first query counting all rows.
$selected_row = mt_rand(0, $total_rows);
//$selected_row -= 1; //just in case you randomized 1 - $total_rows and still need first row.

//Use the result in your limit.
$query="SELECT * FROM `tablename` LIMIT $selected_row, 1;";
$result=$conn->query($query);

while($row = $result->fetch_assoc()) {
echo $row["columnname"];
}

将其从 mysql 编辑为 mysqli(即时)。如果您的表非常大,您可能不想使用 RAND()相信我!

关于php - 使用PHP随机从MySQL表列中拉取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15192989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com