2014-02-14 3 views
-2

Я пытаюсь захватить любимые сообщения из 'posts_fav', где идентификатор сообщения имеет идентификатор строки. Тогда я хочу, чтобы если идентификатор пользователя по запросу равнялся идентификатору участников, он покажет «да», иначе он покажет «Нет».Оператор IF не работает

Originial:

foreach ($usersfav as $rowfav) { 
    if ($rowfav["user_id"] == $member["id"]) 
    { 
     echo 'yes'; 
    } 
    else 
    { 
     echo 'no'; 
    } 
} 

Один из моих попыток: Это меняет все функции других. Пропускает проверку, если так как должно быть, как я могу получить $ rowfav [ «»] без необходимости

foreach ($usersfav as $rowfav) { 
    $sqlfav = "SELECT * FROM posts_fav WHERE post_id = '".$row["id"]."'"; 
    $stmfav = $dbh->prepare($sqlfav); 
    $stmfav->execute(); 
    $usersfav = $stmfav->fetchAll(); 

    if ($rowfav["user_id"] == $member["id"]) 
    { 
     echo 'yes'; 
    } 
    else 
    { 
     echo 'no'; 
    } 
} 

Update: Так что я хочу посты, где rowfav [ «user_id»] и член [ «ID»] совпасть сказать «Да» и другие сообщения без каких-либо строк, которые можно найти, чтобы сказать «нет»

Полный код:

$sql = " 
SELECT *, 
(SELECT profilepic FROM users WHERE users.username = users_profiles_comments.author) AS profilepic 
FROM users_profiles_comments WHERE postid = '". $row["username"] ."' ORDER BY `id` DESC"; 


$stm = $dbh->prepare($sql); 
$stm->execute(); 
$users = $stm->fetchAll(); 



foreach ($users as $row) { 
echo ' <div class="row user-row"> 
      <div class="col-xs-3 col-sm-2 col-md-2 col-lg-2"> 
       <img class="img-thumbnail" 
        src="'.$row['profilepic'].'" width="150px;" 
        alt="User Pic"> 
      </div> 
      <div class="col-xs-10 col-sm-10 col-md-10 col-lg-10"> 
       <div class="panel panel-default"> 
       <div class="panel-heading"><b>'. $row["author"] .'</b> - <small>'. $row["date"] .'</small> 
       '; 
       if ($row["author"]) { 
       echo '<p style="float:right;">'; 
$sqlfav = "SELECT * FROM posts_fav WHERE post_id = '".$row["id"]."'"; 
$stmfav = $dbh->prepare($sqlfav); 
$stmfav->execute(); 
$usersfav = $stmfav->fetchAll(); 

foreach ($usersfav as $rowfav) { 
if (strcmp($rowfav["user_id"], $member["id"]) == 0) 
     { 
      echo ' 
       Yes 
       '; 
     } 
     else { 
echo 'No'; 
      } } 
+0

@PopoFibo 500 служебная ошибка. Не работает. – user3219007

+0

@PopoFibo Ждите извините 'if (strcmp ($ rowfav [" user_id "], $ member [" id "]))' это то, к чему я его изменяю? Это, казалось, уклонилось от ошибки. В любом случае, сообщение, которое должно быть ... да, теперь говорит «нет». И все остальные сообщения без строки в таблице ничего не говорят. – user3219007

+0

@PopoFibo Обновил нижнюю часть моего вопроса, с тем, что я хотел бы сделать. – user3219007

ответ

1
if (count($usersfav)!=0) 
{ 
    foreach ($usersfav as $rowfav) 
    { 
     if (strcmp($rowfav["user_id"], $member["id"]) == 0) 
     { 
      echo 'Yes'; 
     } 
    } 
} 
else 
{ 
    echo 'No'; 
} 
+0

Это добавляет 1: 1, работают $ rowfav и $ member ... – user3219007

+0

Он появляется только в одном сообщении. Функция else предназначена для того, чтобы показать, что она говорит на сообщениях, ничего в таблице. – user3219007

+0

Обновлен дно моего вопроса, с тем, что я хотел бы сделать. – user3219007

0

Если I ип derstood это правильно, вы хотите получить любимые сообщения пользователя, и с этим получить информацию о том, что это его сообщение или нет.

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

$sql = "SELECT posts_fav.*, posts.*, IF(posts.user_id = ?, 1, 0) as owns_post FROM posts_fav LEFT JOIN posts ON posts_fav.post_id = posts.id WHERE posts_fav.member_id = ?"; 
$query = $dbh->prepare($sql); 
$query->bind_param("posts_member_id", $member["id"]); 
$query->bind_param("member_id", $member["id"]); 
$query->execute(); 
$rows = $query->fetchAll(); 

foreach($rows as $row) { 
    if($row["owns_post"]) { 
     echo "User owns the post"; 
    } else { 
     echo "User does not own the post"; 
    } 
} 

Не проверено, не гарантировано, что он даже работает. :-)

+0

Да, к сожалению, это не работает. – user3219007

+0

Кроме того, нет. Я хочу, чтобы он был на всех постах независимо от того, является ли его должность. Если идентификатор сообщения и идентификатор членов находятся в таблице posts_fav [user_id, post_id], я хочу, чтобы он показывал «да», а если он не существует, я хочу, чтобы он показывал «нет». – user3219007

+0

Хм, так что вы будете делать запрос для каждого сообщения, чтобы узнать, понравился ли пользователь? – rvalerio

Смежные вопросы