0

我正在尝试构建一个简单的在线测验。它不需要用户输入。它所做的只是从 mysql 数据库名称列表中随机选择一个条目,查找该名称的图像并显示图像。我遇到的问题是我想创建一个“下一步”按钮来刷新 mysql 查询并发布一个新的图像/问题。这是我目前拥有的,虽然它确实刷新了页面,但它没有得到新的结果。我在这里想念什么?缓存?饼干?任何想法都非常感谢。

<?php
$quiz_select = "SELECT * FROM wp_quiz ORDER BY RAND() LIMIT 1; "; 
$result_select = mysql_query($quiz_select) or die(mysql_error());
while($row = mysql_fetch_array($result_select)) {
    $name = stripslashes($row['comname']);
    $sciname = stripslashes($row['sciname']);
    $code = stripslashes($row['code']);
    $image = stripslashes($row['image']);
    }
$image = preg_replace('/\s+/', '', $image);

echo "<div style='margin-left: auto;margin-right: auto; width: 500px'><img style='max-width:500px;' src='http://$image.jpg.to'></div>";

?>

<form>
<input type="button" onClick="history.go(0)" value="Next">
</form>
4

3 回答 3

0

也许您应该关闭连接并释放结果。

mysql_free_result($this->rs); mysql_close($this->conn);

于 2013-07-09T15:08:04.140 回答
0

我最终不得不在刷新时取消设置 cookie。

<form action='link.com/page.php?next' method='post'>
 <input type='submit' value='Next'> 
 </form>

</div>";
if(isset($_GET['next'])) {
setcookie ("PHPSESSID", "", time() - 3600);

}
于 2013-07-09T16:04:20.907 回答
0

通过从历史重新加载,您可能正在重新加载浏览器缓存版本的页面,这将始终相同。您只需要再次加载页面。

(即,将您的表单按钮更改为标准的 html 按钮,而不是触发 javascript 历史记录)。

<form action="targetpage.php" method="post">
     <input type="submit" value="Next">
 </form>

PS,按 RAND() 排序不是做出选择的好方法:http ://www.webtrenches.com/post.cfm/avoid-rand-in-mysql

于 2013-07-09T14:54:02.367 回答