Php 忽略MySQL输出中的一个特定行

Php 忽略MySQL输出中的一个特定行,php,mysql,Php,Mysql,我已经编写了一个包含users MySQL表的应用程序。下面的代码从表中查找凉爽度等级在当前用户凉爽度等级20%以内的用户 $query = "SELECT USERNAME FROM USERS WHERE RATING BETWEEN ".$coolnessRating." * 0.8 AND ".$coolnessRating." * 1.2"; $result = mysql_query($query) or die(mysql_error()); while($row = mysql

我已经编写了一个包含users MySQL表的应用程序。下面的代码从表中查找凉爽度等级在当前用户凉爽度等级20%以内的用户

$query = "SELECT USERNAME FROM USERS WHERE RATING BETWEEN ".$coolnessRating." * 0.8 AND ".$coolnessRating." * 1.2";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)) {

    echo $row['USERNAME'];
}
我的问题是:例如,如果我有一个用户,他们的酷度等级是20,他们自己会在结果集中返回,因为很明显,他们自己的等级在他们等级的20%以内,如果这是合理的


有没有办法忽略这一行,但打印出结果集的其余部分?

“如果我有一个用户”意味着你有他们的用户名或id,对吗?使用将条件添加到where子句中

“如果我有用户”意味着你有他们的用户名或id,对吗?使用将条件添加到where子句中

您是否只是想添加不等于您的WHERE标准:

SELECT USERNAME 
FROM USERS 
WHERE RATING <> ".$coolnessRating." 
    AND RATING BETWEEN ".$coolnessRating." * 0.8 AND ".$coolnessRating." * 1.2"
选择用户名
来自用户
其中评级“$coolnessRating”
评级介于“$coolnessRating.”0.8和“$coolnessRating.”1.2之间

您是否只想添加不等于您的WHERE标准:

SELECT USERNAME 
FROM USERS 
WHERE RATING <> ".$coolnessRating." 
    AND RATING BETWEEN ".$coolnessRating." * 0.8 AND ".$coolnessRating." * 1.2"
选择用户名
来自用户
其中评级“$coolnessRating”
评级介于“$coolnessRating.”0.8和“$coolnessRating.”1.2之间
放弃通常的“使用PDO!您的代码易受攻击!”spiel,您将包括另一个“非此用户”条件

$query = "SELECT USERNAME FROM USERS WHERE RATING BETWEEN ".$coolnessRating." * 0.8 AND ".$coolnessRating." * 1.2 AND USERNAME != ".$user."";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)) {

    echo $row['USERNAME'];
}
放弃通常的“使用PDO!您的代码易受攻击!”spiel,您将包含另一个“不是此用户”条件

$query = "SELECT USERNAME FROM USERS WHERE RATING BETWEEN ".$coolnessRating." * 0.8 AND ".$coolnessRating." * 1.2 AND USERNAME != ".$user."";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)) {

    echo $row['USERNAME'];
}

为什么不让您的条件<20%我不知道,因为您没有提到预期通过的值

为什么不让您的条件<20%我不知道,因为您没有提到预期通过的值

只需使用WHERE子句的另一部分将其过滤掉:

SELECT USERNAME
FROM USERS
WHERE RATING BETWEEN $coolnessRating * 0.8 AND $coolnessRating * 1.2
AND USER_ID != $current_user_id

(显然,最后一行取决于列名以及当前用户ID的存储方式)

只需使用WHERE子句的另一部分将其过滤掉:

SELECT USERNAME
FROM USERS
WHERE RATING BETWEEN $coolnessRating * 0.8 AND $coolnessRating * 1.2
AND USER_ID != $current_user_id

(显然,最后一行取决于列名是什么以及如何存储当前用户ID)

首先,您需要从当前用户那里获取信息,例如他们的ID或用户名

那你就可以了

$query = "SELECT USERNAME FROM USERS WHERE RATING BETWEEN ".$coolnessRating." * 0.8 AND ".$coolnessRating." * 1.2 AND id != " . $id;


其中,$username和$id是当前用户的id和username

首先,您需要从当前用户处获取信息,例如他们的id或用户名

那你就可以了

$query = "SELECT USERNAME FROM USERS WHERE RATING BETWEEN ".$coolnessRating." * 0.8 AND ".$coolnessRating." * 1.2 AND id != " . $id;


其中,$username和$id是当前用户的id和username

噢,很明显你很容易受到SQL注入/小Bobby表的攻击,但我认为这是一个学习练习。是的,这是我大学最后一年的项目。不管怎样,我将在稍后经历并逃离PHPvariables@Tiffany如果您需要转义SQL输入,那么您已经做错了。看看和。哦,很明显你很容易受到SQL注入/小Bobby表的影响,但我认为这是一个学习练习。是的,这是我大学最后一年的项目。不管怎样,我将在稍后经历并逃离PHPvariables@Tiffany如果您需要转义SQL输入,那么您已经做错了。看和看。