我有一个来自我大学的项目。我需要创建一个从数据库生成随机数据的站点。但它还需要生成一个链接。这样人们就可以复制该链接(因为网站生成不同的数据,人们可以通过复制URL看到他们想要的数据)。
我正在考虑使用RAND()。但是在加入stackoverlow之后,我发现RAND()不是一个好方法。
我可以使用RAND()获取随机数据,但它不会生成任何URL。这也是另一个问题。我之前发布过这个问题。我想我不应该使用RAND()函数。
这是我现在使用的代码:
<!--PHP code for fetching data from database-->
<?php
$con = mysql_connect("localhost","root","");
if (!$con){
die('Could not connect: ' . mysql_error());
}
mysql_select_db("xlsx_db", $con);
$result = mysql_query("SELECT * FROM sheet1 ORDER BY RAND() LIMIT 1");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_array($result);
echo "<b>Quote: </b>";
echo $row['quote']."<br>";
echo $row['by']."<br>";
?>
任何人都可以建议我怎么做?任何形式的帮助都将非常感激。
答案 0 :(得分:1)
不确定这是否真的是你需要的,但是:
<?php
$rand = true;
if (isset($_GET['id'])) {
if (is_int($_GET['id'])) {
$id = (int) $_GET['id'];
$q = 'SELECT * FROM table WHERE id = ?';
$stmt = mysqli_prepare($dbc, $q);
mysqli_stmt_bind_param($stmt, 'i', $id);
mysqli_stmt_execute($stmt);
if (mysqli_stmt_num_rows($stmt) == 1) {
$rand = false;
// display
}
}
}
if ($rand) {
$q = 'SELECT * FROM table ORDER BY RAND() LIMIT 1';
// run query
$res = mysqli_fetch_array($r);
$url = 'www.example.com/index.php?id=' . $res['id'];
}
?>
准备好的语句不是 严格 ,因为我们已经确保$_GET['id']
值是一个整数,但为了完整性; d
如果您从多个表中选择数据,则可以使用另一个表存储数据组合,然后使用组合ID作为id
参数生成URL。
答案 1 :(得分:0)
如果您想获得永久链接,则需要创建另一个页面。它将获取一个ID(或识别您随机选择的数据记录的东西)并显示特定数据。您可以在随机页面链接到此页面。
答案 2 :(得分:0)
在数据库中查找随机行。 获取行的ID。 使用id连接URL。 该URL应指向一个页面,该页面将提取具有表中提供的id的行。
答案 3 :(得分:-1)
前几天我发现了这一点并认为它非常全面: