Простой запрос mysql, чтобы проверить, существует ли строка

Я хочу показать пользователю, понравилось ли ему изображение или нет .. для этого я создаю 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"; } 

Я не могу сделать это для всего, как «теги», «акции», «комментарии», «избранное» … много. Нет ничего проще, чем это …? Например, $row_check=mysqli_check_exist($table,$column_name,$userid);

Есть много способов сделать это на самом деле, но если вы собираетесь использовать какую-либо дополнительную информацию, тогда мы или нет, пользователю понравилось, что делать select * – это плохая идея. Причина в том, что вы просите базу данных вернуть значение каждого столбца в этой таблице.

Предполагая, что его небольшая база данных, вероятно, не проблема, но по мере увеличения вашей базы данных вы загружаете больше нагрузки, тогда вам нужно попробовать и выбрать только нужные столбцы и использовать их. Хорошо, в этом случае идентификатор пользователя, вероятно, проиндексирован и имеет только одну строку, но если вы привыкнете делать это здесь, вы можете сделать это еще и там, где.

попробуйте это вместо этого.

 $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"; } 

Таким образом, мы просто получаем общее количество. простой и элегантный

использовать метод строки mysql fetch

 $num_row = mysqli_num_rows($query); if($num_row>0) { //add your code } else { //add your code } 

Используйте mysqli_num_rows ($ query), если> 0

Вам просто нужно подсчитать доступные записи, используя

 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"; }