1 != 1 php

spitfly

у меня есть цикл
</>
$result_acc = mysqli_query($conn, «SELECT * FROM users WHERE name=» . $_SESSION[‘name’]);
$acc_row = mysqli_fetch_array($result, MYSQLI_ASSOC);
$result = mysqli_query($conn, «SELECT * FROM likes WHERE post_id='{$i}'»);
$result_row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if(isset($result_row[‘post_id’])){
foreach ($result_row as $key => $value) {
if($key == «user_id»){
echo (int) $value == (int) $acc_row[‘user_id’] ? ‘hi’ : ‘goodbuy’;
print_r($value);
if ((int) $value == $acc_row[‘user_id’]){
$likes[‘likes_post’][$i] = true;
break;
}
else {
$likes[‘likes_post’][$i] = false;
}
}
}
} else {
$likes[‘likes_post’][$i] = false;
}
</>
и лайк поставлен пользователем 1 и в этой проверке почему-то 1 не равняется 1

 

artoodetoo

Оформи код в ббкод [php]. Сейчас он нечитабелен.

 

spitfly

как
— Добавлено —

[/php]?
— Добавлено —

PHP:
  1. $result_acc = mysqli_query($conn, «SELECT * FROM users WHERE name=» . $_SESSION[‘name’]);
  2.         $acc_row = mysqli_fetch_array($result, MYSQLI_ASSOC);
  3.         $result = mysqli_query($conn, «SELECT * FROM likes WHERE post_id=’{$i}‘»);
  4.         $result_row = mysqli_fetch_array($result, MYSQLI_ASSOC);
  5.         if(isset($result_row[‘post_id’])){
  6.             foreach ($result_row as $key => $value) {
  7.                 if($key == «user_id»){
  8.                     echo (int) $value == (int) $acc_row[‘user_id’] ? ‘hi’ : ‘goodbuy’;
  9.                     print_r($value);
  10.                       if ((int) $value == $acc_row[‘user_id’]){
  11.                           $likes[‘likes_post’][$i] = true;
  12.                           break;
  13.                       }
  14.                       else {
  15.                           $likes[‘likes_post’][$i] = false;
  16.                       }
  17.                 }
  18.             }
  19.         } else {
  20.             $likes[‘likes_post’][$i] = false;
  21.         }
 

miketomlin

В $_SESSION[‘name’] точно число? А то такое ощущение, что выбираешь по имени, а не по id :D

Я тебе уже писал, как нужно бороться с повторными лайками ;) Групповой юник пост-пользователь. Мускул не добавит дублирующуюся запись. Ты отловишь этот момент и пошлешь пользователя подальше. Или сделаешь дизлайк, т.е. попробуешь удалить эту запись.

 

spitfly

в session name имя и я беру по имени

 

miketomlin

Имя в кавычках нужно писать плюс экранировать, если множество используемых символов не ограничено. А вообще надо по id ;)

 

artoodetoo

Когда-то писал свою систему лайков, буду рад поделиться: https://fluxbb.qb7.ru/forum/viewtopic.php?id=3991
— Добавлено —
Уникальный индекс по паре полей post_id+user_id позволит гарантировать что дублей не будет.
И не обязательно перед добавлением лайка делать запрос select. Тем более что-то искать в цикле :) Можно сразу пытаться добавить лайк и потом проверить была ли операция успешной.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *