この質問を簡単に説明するのは少し難しいので、説明が長くなります。ユーザーは、コメントが有用かどうか (単純に「はい」または「いいえ」) で投票できます。これを行うと、投票はデータベース -> テーブル 'user_vote' に送信されます。
テーブルuser_voteには、user_id と container の 2 つの列があります。すべてのユーザーは、このテーブルに 1 行しかありません。彼が新しい投票を行うと、フィールド コンテナが更新されます。たとえば、ユーザーがID 205のコメントに投票し、彼はyesに投票し、 ID 300のコメントに彼はnoに投票したとします。テーブルuser_voteは次のようになります。
user_id->111;
コンテナ->205-はい、300-いいえ
ユーザーが特定のコメントに投票したかどうかを確認する必要があるこのコードまで、これは正常に機能しています。ここのコードは部分的に機能しています - 問題は次のとおりです:
ユーザーは 3 回投票し、コメントのIDが$split[0]と一致する場合、 $textを 1 回書き込み、2 セットのボタンを生成し、コメントのIDが一致しない場合、3 セットのボタンを生成します。 ( elseifの後の部分は正常に動作しています)。
何が間違っているのか、正しい方法でコードを書くにはどうすればよいですか?
<div class="zuta_strana_komentar_korisno" data-id="<?php echo $cmm['id_comment'] ?>">
<?php if(isset($glas) && !empty($glas)) :
$br = explode(',', $glas->container);
foreach($br as $br) :
$split = explode('-', $br);
if($split[0] == $cmm['id_comment']) : ?>
<?php
if($split[1] == 'yes') :
$text = 'koristan.';
else :
$text = 'nekoristan.';
endif;
?>
<p>Ovaj komentar vam je bio <?php echo $text ?></p>
<?php else :?>
<p>Da li vam je ovaj komentar bio od pomoći?</p>
<button role="yes">Da</button><button role="no">Ne</button>
<?php
endif;
endforeach;
elseif($this->session->userdata('is_logged_in') == TRUE && empty($glas)) : ?>
<p>Da li vam je ovaj komentar bio od pomoći?</p>
<button role="yes">Da</button><button role="no">Ne</button>
<?php endif ?>
</div>