当我的查询返回1时,我的查询返回0结果

时间:2014-11-30 12:11:24

标签: php mysql

整个查询会跳过我的第一个if语句 - “NEVRNENIČ”......这是我的 链接数据库结构:http://ibin.co/1j1bFYAswzXI

PS:$ slug与$ naslov相同,但它在整个功能中得到修改。

    $id = "SELECT id FROM novica
           where slug = '$slug'";

    $result = $conn->query($id);

    if ($result->num_rows > 0) 
    {
        while($row = $result->fetch_assoc()) 
        {
        $idat = $row["id"];
        }
    }
    else //IT SKIPS DIRECTLY TO THE ELSE - SO IT HAS TO BE WITH QUERY $id
    {
        echo "NE VRNE NIČ!";
    }




    $sql = "UPDATE novica 
            SET naslov = '$naslov', podnaslov = '$podnaslov', vsebina = '$vsebina', slug = '$slug', posodobljeno = '$posodobljeno'
            where id = '$idat'";

    if($conn->query($sql) === true)
    {
        echo "POSODOBO SI";
    }
    else
    {
        $conn->error;
    }

    $conn->close();

提前感谢您的程序员。

链接到数据库结构:http://ibin.co/1j1bFYAswzXI

2 个答案:

答案 0 :(得分:0)

您在if范围内设置$idat,修复它,在if语句之外声明变量,然后重试。

$id = "SELECT id FROM novica
       where slug = '$slug'";

$result = $conn->query($id);

if ($result->num_rows > 0) 
{
    while($row = $result->fetch_assoc()) 
    {
    $idat = $row["id"];
    }
}

将...在带有大括号的查询中包装变量。请立即查看结果。

$id = "SELECT id FROM novica
       where slug = '{$slug}'";

$result = $conn->query($id);
$idat = 0;

if ($result->num_rows > 0) 
{
    while($row = $result->fetch_assoc()) 
    {
    $idat = $row["id"];
    }
}

答案 1 :(得分:0)

问题是,我没有得到一个正确的slug值,我没有在我的其他php文件中定义一个好的变量$ slug。谢谢大家的时间。