【问题标题】:Simple mysql Query to check if row exist简单的mysql查询来检查行是否存在
【发布时间】:2013-12-20 07:30:50
【问题描述】:

我想告诉用户他是否喜欢某张图片.. 为此,我正在创建 php 代码

$userid=$_COOKIE['userid'];
$sql = "SELECT * FROM likes WHERE `user_id`='{$userid}'"; 
$query = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($query);
if($row){
echo "unlike";
}
else{
echo "like";
}

我不能对“标签”、“分享”、“cmets”、“收藏夹”等所有内容都执行此操作...很多 没有比这更简单的了么……? 比如$row_check=mysqli_check_exist($table,$column_name,$userid);

【问题讨论】:

标签: php mysql sql


【解决方案1】:

使用mysql fetch row方法

$num_row = mysqli_num_rows($query);

if($num_row>0)
{
//add your code
} 
else
{
//add your code
}

【讨论】:

    【解决方案2】:

    确实有很多方法可以做到这一点,但如果您不想使用更多信息,那么无论用户是否喜欢它,选择 * 都是一个坏主意。原因是您要求数据库返回该表中每一列的值。

    假设它是一个小型数据库,它可能不是问题,但是随着您的数据库变得更大,您会对其施加更多负载,那么您应该尝试并且只选择您需要并打算使用的列。好的,在这种情况下,用户 ID 可能已编入索引并且它只有一行,但如果您养成在这里这样做的习惯,您也可以在其他地方这样做。

    试试这个。

    $userid=$_COOKIE['userid'];
    $sql = "SELECT count(user_id) as total FROM likes WHERE `user_id`='{$userid}'"; 
    $query = mysqli_query($conn, $sql);
    $row = mysqli_fetch_assoc($query);
    
    if( $row ['total'] > 0){
        echo "unlike";
    }
    else{
        echo "like";
    }
    

    这样我们就得到了总数。简洁大方

    【讨论】:

    • 感谢@Dalm To,这非常有帮助.. 特别是。使用单列代替 *
    【解决方案3】:

    如果存在 > 0 则使用 mysqli_num_rows($query)

    【讨论】:

    • 在我提交之前我没有看到
    【解决方案4】:

    您只需要使用来计算可用记录

    mysqli_num_rows($query);
    

    这将返回可用记录的数量(计数)

    如此简单地检查一下:

    $userid=$_COOKIE['userid'];
    $sql = "SELECT * FROM likes WHERE `user_id`='{$userid}'"; 
    $query = mysqli_query($conn, $sql);
    $count = mysqli_num_rows($query); 
    
    
    if($count>0){
    echo "unlike";
    }
    else{
    echo "like";
    }
    

    【讨论】:

    • $present_like=mysqli_num_rows(mysqli_query($conn,"SELECT * FROM likes WHERE user_id={$userid}"));明白了。。谢谢
    猜你喜欢
    • 2016-12-05
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    相关资源
    最近更新 更多