前提・実現したいこと
DBから受信したデータの中で、2つの項目にて重複レコードがある場合、
テーブルリストに重複データを表示させ、更にWEB上の右上辺りに「アラートメッセージ」
を表示させたいです。
重複データは問題なくテーブルリストに表示できました。
また、右上にアラートが表示されるように「notify.js」は実装しました。
しかし「notify.js」は実装しただけで、常にWEB上には「アラートメッセージ」
が表示される状態です。
期待動作は、重複データがある場合は、「テーブルリスト」に表示させ、
「アラートメッセージ」が出るようにしたいです。
「PHP」「JavaScript」にお詳しい方、ご教示頂たく存じます。
宜しくお願い致します。
該当のソースコード(HTML)
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script type="text/javascript" src="js/notify.js"></script> <title>テスト</title> </head> <body> <!--アラート--> <script type="text/javascript"charset="utf-8"> $.notify('重複登録アラート', 'error'); </script> <!--重複リストの表示--> <?php include("notifi.php"); ?> </body> </html>
該当のソースコード(notifi.php)
<?php //カテゴリ1とカテゴリ2にて5つ同じ登録がされた場合にリストを作成 $query = "SELECT category1, category2 ,COUNT(category1) FROM m_commutra GROUP BY category , trainid HAVING COUNT(category) > 1 AND COUNT(trainid) > 1"; $result = pg_query($conn, $query); $data = pg_fetch_all($result); print "<table id=\"dblist2\" summary=\"PostgreSQLデータベース\">\n"; //テーブルヘッダとしてフィールド(カラム)名を出力 print "<thead><tr>\n"; $flds = pg_num_fields($result); for($i=0; $i<$flds; $i++){ $field = pg_field_name($result, $i); printf("<th abbr=\"%s\">%s</th>\n", $field, $field); } print "</tr></thead>\n"; //データの出力 foreach($data as $rows){ print "<tr>\n"; foreach($rows as $value){ printf("<td>%s</td>\n", $value); } print "</tr>\n"; } print "</table>\n"; echo <<<EOM <script type="text/javascript"> $(document).ready(function() { $("#dblist2").tablesorter(); } ); </script> EOM; ?>
該当のDB
※この場合「2」「4」の「いちご」「まずかった」が重複データです。
ID,category1,category2,data 1,スイカ,美味しかった,2018/12/01 2,いちご,まずかった,2018/12/01 3,スイカ,まずかった,2018/12/01 4,いちご,まずかった,2018/12/01
補足情報(FW/ツールのバージョンなど)
PostgreSQL:10.4
PHP:5.6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/28 07:26