1

私はここで完全に困惑しています。解決策や指針を事前にありがとうございます。あなたが提供できる助けに本当に感謝しています。

メモシステムを作ろうとしています。メモの表示は問題ありませんが、未読のメモのみを表示しようとしています。ご覧のとおり、2 つのテーブルがあります。1 つはメモがあり、もう 1 つは既読メモがリストされています。ユーザーがメモを読んだら、ボックスにチェックマークを付け、メモ ID とユーザー ID がテーブル「memo_read」に追加されます。

したがって、基本的には、「memo_read」テーブルから読み取られたメモを取得し、読み取られていない「メモ」テーブルの結果を user_id と会社が正しい場所に表示しようとしています。ご覧のとおり、別のページの関数から 2 つの変数があり、これらは正常に機能しています '$user_id , $company_id',

目的の変数を表示する while ループで未読メモを表示しようとしています。私は何年にもわたってこれに取り組んできましたが、喜びはありません。考えられるすべてのアプローチを試しましたが、私が最も経験豊富な人ではないことがわかると確信しています。完全に間違ったアプローチをとった!

<?php
$user_id = $user_data['user_id'] ;
$company_id = $user_data['company'];

$result1 = mysql_query ("SELECT `user`, `memo_id` FROM`memo_read` WHERE `user`= '$user_id '") or die(mysql_error());
while($row = mysql_fetch_array($result1)){
$memo_id   = $row['memo_id']; 


$result = mysql_query ("SELECT `id`, `link`, `author`, `time`, `title`, `company` FROM `memo` WHERE `worker`= 1 AND `company`= '$company_id' AND `id`!= '$memo_id'") or die(mysql_error());
while($row = mysql_fetch_array($result))    {

    $id           = $row['id']; 
    $link         = $row['link'];
    $author     = $row['author'];
    $time        = $row['time'];
    $title         = $row['title'];
    $company  = $row['company'];

?>

<ul>
    <li><?php  echo $title; ?></li>
    <li><?php echo $author; ?></li>
    <li><?php echo $company;?></li>
    <li><?php echo $time;?></li>
    <a href="<?php  echo $link; ?>"> Read memo</a> 
</ul><br>
<?php
}   }
?>
4

2 に答える 2

2

未読メモを返すクエリを使用してみませんか? 何かのようなもの:

 SELECT `id`, 
        `link`, 
        `author`, 
        `time`, 
        `title`, 
        `company` 
   FROM `memo` 
  WHERE `worker`= 1 
    AND `company`= '$company_id' 
    AND `id` NOT IN (SELECT `memo_id` 
                       FROM `memo_read` 
                      WHERE `user`= '$user_id '
                    )
于 2013-10-22T20:22:49.720 に答える
1

これを試して:

<?php
$user_id = $user_data['user_id'] ;
$company_id = $user_data['company'];

$result1 = mysql_query ("SELECT `user`, `memo_id` FROM`memo_read` WHERE `user`= '$user_id '") or die(mysql_error());
$memo_id_query = '';
while($row = mysql_fetch_array($result1)){
$memo_id_query .= " AND `id`!= '".$row['memo_id']."'";
}


$result = mysql_query ("SELECT `id`, `link`, `author`, `time`, `title`, `company` FROM `memo` WHERE `worker`= 1 AND `company`= '$company_id' ".$memo_id_query) or die(mysql_error());
while($row = mysql_fetch_array($result))    {

    $id           = $row['id']; 
    $link         = $row['link'];
    $author     = $row['author'];
    $time        = $row['time'];
    $title         = $row['title'];
    $company  = $row['company'];

?>

<ul>
    <li><?php  echo $title; ?></li>
    <li><?php echo $author; ?></li>
    <li><?php echo $company;?></li>
    <li><?php echo $time;?></li>
    <a href="<?php  echo $link; ?>"> Read memo</a> 
</ul><br>
<?php
}
?>
于 2013-10-22T20:25:15.510 に答える