嘿那里有StackOverflow社区 正如标题所说,我的数据库中有一个表,其中包含2列ID和名称。 有一个带有按钮的html表单,通过单击我想要它来选择一个名称的按钮。 通过再次单击,它会选择一个名称而不重复,直到使用所有名称。
这是我到目前为止所做的事情:
<?php
include ("config.php");
$result = '';
if (isset($_POST['rand'])) {
$name_query = mysqli_query($conn,"SELECT * FROM names ORDER BY RAND() LIMIT 1");
$name_f = mysqli_fetch_assoc($name_query);
$result = $name_f['name'];
}
?>
<form action="" method="post" accept-charset="utf-8">
<input type="submit" name="rand">
</form>
<div><?php echo $result;?></div>
提前感谢。
答案 0 :(得分:0)
我认为正确的方法是创建一个文本文件,并在数据库中获取后者时保存其中的名称。然后,为了后续提取,检查文件内容中是否存在该名称。
$result = '';
function getName(){
$file_path = "file.txt";
$where = "";
if(file_exists($file_path)){
$lines = file($file_path);
if(count($lines) > 0){
$where = " WHERE `name` NOT IN(".implode(',', $lines).") ";
}
}
$name_query = mysqli_query($conn,"SELECT * FROM `names` $where ORDER BY RAND() LIMIT 1");
if(mysqli_num_rows($name_query) > 0){
$name_f = mysqli_fetch_assoc($name_query);
$result = $name_f['name'];
file_put_contents($file_path, $result.PHP_EOL , FILE_APPEND | LOCK_EX);
return $result;
}else{
file_put_contents($file_path, "");
return getName();
}
}
if(isset($_POST['rand'])) {
$result = getName();
}
<form action="" method="post" accept-charset="utf-8">
<input type="submit" name="rand">
</form>
<div><?php echo $result;?></div>