在mysql php if语句中使用负数?

在mysql php if语句中使用负数?,php,mysql,Php,Mysql,我有下面的代码和一个if语句,它的值是负的,一个是一些数据行。但是,当我使用这个语句时,它将-1值读取为1 if ($row ['bedrooms'] == '-1') { echo "<td class='propdescres'>Studio</td></tr>"; } else { echo "<td class='propdescres'>" . $row['bedrooms'] . "</td></tr&

我有下面的代码和一个if语句,它的值是负的,一个是一些数据行。但是,当我使用这个语句时,它将-1值读取为1

if ($row ['bedrooms'] == '-1')
{
    echo "<td class='propdescres'>Studio</td></tr>";
}
else
{
    echo "<td class='propdescres'>" . $row['bedrooms'] . "</td></tr>";
}
并将我的发言改为:

if ($studio == '99')
{
    echo "<td class='propdescres'>Studio</td></tr>";
}
else
{
    echo "<td class='propdescres'>" . $row['bedrooms'] . "</td></tr>";
字段类型是tinyint(3),当我查询数据库中的beddrooms=-1时,它返回vales,但在php的echo结果中,所有的-1值都是1

有人能给我一些关于我做错了什么或者我如何能找回负值的见解吗


谢谢。

这应该可以做到:

if((int)$row['bedrooms'] == -1){
    echo "<td class='propdescres'>Studio</td></tr>";
} else {
    echo "<td class='propdescres'>" . $row['bedrooms'] . "</td></tr>";
}
if((int)$row['beddrooms']=-1){
回声“工作室”;
}否则{
回声“$行[“卧室]”;
}
尽管(int)会将变量强制转换为整数,但您应该首先确认该变量实际返回的是整数。

请尝试使用以下方法:

$someNegVal = '-1';
if (isset($row['bedrooms']) &&  $row['bedrooms'] == -1*abs($someNegVal)) {
//....
}

var_dump($row[‘卧室’])返回?顺便说一下,您将使负数增加得更深,而不是增加到正数。如;9*-9=-81,@DarylGill,但OP期望
-1
。上次我查了一下,但我想知道他是如何得到负卧室的,0是的,但是负的?然后我看到的前进方向是,检查两个数字是否都有负符号,使用strreplace或regex(你喜欢的),转换为整数,然后相乘,如果必须使用负数,我假设您的默认变量转换为string,因为这是最好的approach@CDubYaa当然,如果$row['beddrooms']首先为空,它就不起作用。您无法从一个不存在的数组中神奇地创建值。如果您希望我们能够帮助您,请发布所有相关代码。不要指望我们能解决我们不知道的问题!我已经在上面发布了额外的信息,这是var_转储的结果:string(1)“2”string(1)“1”string(1)“1”string(1)“1”string(1)”1”string(1)“2”string(1)”1”string(1)“1”string(1)”1”string(1)“1”string(1)“1”string(1)string(1)“1”string(1)谢谢,你的评论让我看得更深一点,这是我的结果集的问题。没问题。我很高兴你把它解决了:)
if((int)$row['bedrooms'] == -1){
    echo "<td class='propdescres'>Studio</td></tr>";
} else {
    echo "<td class='propdescres'>" . $row['bedrooms'] . "</td></tr>";
}
$someNegVal = '-1';
if (isset($row['bedrooms']) &&  $row['bedrooms'] == -1*abs($someNegVal)) {
//....
}