我必须从我的数据库中提取字段“level”在 mylevel-5 和 mylevel+5 之间的每一行。但是我是 php 和 sql 的新手,我不知道如何编写查询...你能帮我吗?
<?php
session_start();
if(isset($_SESSION['username']))
{
$nickname = $_SESSION['nick'];
}else{
header('location:index.php');
}
include('connection.php');
$sql = mysql_query("SELECT * FROM $tbl_name WHERE nickname = '$nickname'");
$rissql = mysql_fetch_array($sql);
$mylevel = $rissql['Level'];
$sql2 = mysql_query("SELECT * FROM $tbl_name WHERE Level >= $mylevel-5 && Level <= $mylevel+5 order by rand() limit 1");
$rissql2 = mysql_fetch_array($sql2);
$count=mysql_num_rows($rissql2);
if($count > 0)
{
header('location:fightok.php');
}
else
{
header('location:fightno.php');
}
?>
最佳答案
在编写查询之前尝试设置您的限制:
$lower = $myLevel - 5;
$upper = $myLevel + 5;
然后使用这些值重新编写您的查询,并将 && 替换为 AND 用于 MySQL:
SELECT * FROM $tbl_name WHERE Level >= $lower AND Level <= $upper ORDER BY rand() LIMIT 1
或使用 BETWEEN
SELECT * FROM $tbl_name WHERE Level BETWEEN $lower AND $upper ORDER BY rand() LIMIT 1
谢谢,
安德鲁
关于mysql - 我必须从数据库中获取每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27195821/