PHPで以下の要件を行っています。
ログインしたユーザが「管理者」でない場合は、自身の投稿した「行ってみたい国」のみを編集したり削除したりすることが可能。
投稿者の「田中おさむ」さんは、管理者ではありません。田中おさむさんは、自分が投稿した4つの情報を編集したり削除したりすることができるので編集ボタンと削除ボタンを表示させています。
しかし、田中おさむさんは管理者ではないので、「銀シャリ」さんの情報の欄にも編集ボタンと削除ボタンを表示させたくありません。(閲覧だけ可能)
このように、田中おさむ(管理者ではない)以外の情報欄に編集ボタンと削除ボタンを表示させないようにするにはどうしたらよいでしょうか?
具体的にはここの部分のコードになります。
DBからデータを持ってくるのがこちらのコード
・login_users.php
/ // 行ってみたい国のテーブル情報の取得 // try { //例外処理を投げる(スロー)ようにする $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // usersテーブルと countryテーブルの結合 $sql = "SELECT users.name, nation, reason, country.creation_time FROM country JOIN users ON country.userId = users.userId"; $statement = $dbh->query($sql); // 結果の取得 $country = array(); foreach ($statement as $row) { $country[] = $row; $_SESSION['nation'] = $row['nation']; $_SESSION['reason'] = $row['reason']; } } catch(PDOException $e) { print('Error:'.$e->getMessage()); }
・login_users.html
DBから持ってきた情報をTwigで表示させるのがこちらのコードですが、
自身の投稿した情報のみの行に、どのように編集と削除ボタンを表示させるのかがわかりません。
以下のコードだと画像のように全ての行にボタンが表示されてしまいます。
一体どのようにすればよいのでしょうか?
<!-- テーブル(表) --> <div class="table-responsive" style="margin-top:60px;"> <table id="table1" class="table table-hover"> <!-- ここは基本記述 --> <thead> <tr> <th>投稿者</th> <th>行きたい国</th> <th>理由</th> <th>投稿時間</th> <th></th> <th></th> </tr> </thead> <!-- PHPだとこのように実装 <?php foreach ($country as $row) { ?> --> {% for row in country %} <tbody> <tr> <td> {{ row.name }} </td> <td> {{ row.nation }} </td> <td> {{ row.reason }} </td> <td> {{ row.creation_time }} </td> <form action="update.php" method="post" name="update"> <td> <button type="submit" class="btn btn-xs btn-primary">編集</button> <input type="hidden" name="id" value="{{ row.id }}"> <input type="hidden" name="rank" value="{{ row.rank }}"> <input type="hidden" name="nation" value="{{ row.nation }}"> <input type="hidden" name="food" value="{{ row.food }}"> <input type="hidden" name="reason" value="{{ row.reason }}"> </form> </td> <form action="delete_confirm.php" method="post" name="update"> <td> <button type="submit" class="btn btn-xs btn-danger">削除</button> </td> <input type="hidden" name="id" value="{{ row.id }}"> <input type="hidden" name="rank" value="{{ row.rank }}"> <input type="hidden" name="nation" value="{{ row.nation }}"> <input type="hidden" name="food" value="{{ row.food }}"> <input type="hidden" name="reason" value="{{ row.reason }}"> </form> </tr> </tbody> {% endfor %}
回答1件
あなたの回答
tips
プレビュー