###概要
・現在、PHPでメルカリのようなサイトを作成しています。そこで、お気に入り機能を実装したいと考えています。
・機能に関しては、商品詳細画面に「いいねボタン」を設置してそのボタンを押すとデータベースに、商品IDとユーザIDが挿入される。そしてまたその商品詳細ページを訪れた際には「いいね済み」というメッセージと「いいね削除」というボタンが表示されるという機能にしたいと思っています。また、いいね削除ボタンを押すとデータベースの情報が削除されるというようにしたいです。
・そこでもしAさんがログインしている状態でいいねボタンを押します。そしてAさんで商品詳細ページを訪れた際にはいいね済みというメッセージを表示させます。その後にAさんでログアウトし、Bさんでログインします。先ほどAさんがいいねを押した商品詳細ページをBさんが訪れた際にはいいねが表示されるように、ログインしたユーザによって表示を区別?するようにしたいです。
###データベース
【favoriteテーブル】
fav_num|id|fav_user|
・fav_numにはお気に入りボタンを押した順番がAUTO_INCREMENTで自動生成される
・idには商品IDが挿入
・fav_numにはいいねボタンを押したユーザIDが挿入
###現状
・商品詳細ページには「いいねボタン」が表示され、それを押すとデータが挿入される
###わからないこと
・データは挿入されるのですが、レコードの有無の確認の仕方がよくわからなく、押した後に「いいね済み」が表示されない。
・いいね削除ボタンをしてもデータベースの情報が削除されない。
・違うユーザでログインした場合の「いいねボタン」と「いいね済み」の表示の処理
###現在のコード
syousai.php
細かいところは省略
PHP
1session_start(); 2$ID=$_SESSION["USERID"]; 3$no = $_REQUEST["no"]; 4 5$abc=mysqli_connect('localhost', 'root', '','test') or die(mysqli_error()); 6mysqli_query($abc,'SET NAMES UTF8'); 7$record = mysqli_query($abc , "SELECT * FROM `favorite` WHERE id='.$no.' AND fav_user='.$ID.'; " ); 8$row = mysqli_fetch_assoc($record); 9 10if(isset($row['fav_user'],$row['id'])){ 11 echo 'お気に入り済み'; 12 echo'<div style="float:center;"> 13 <form action="favoritedel.php?no='.$no.'" method="post"> 14 <input type="submit" name="submit_del" value="☆いいね消去" style="color:#000000; background-color:#C0C0C0; 15 font-size:30; width:210px; height:50px"> 16 </form> 17 </div>'; 18}else{ 19echo'<div style="float:center;"> 20 <form action="favorite3.php?no='.$no.'" method="post"> 21 <input type="submit" name="submit_fav" value="☆いいね" style="color:#000000; background-color:#FFFF00; 22 font-size:30; width:210px; height:50px"> 23 </form> 24 </div>'; 25}
主にお気に入り機能についてのプログラムです。
favorite.php
細かいところは省略
PHP
1session_start(); 2$ID=$_SESSION["USERID"]; 3$no = $_REQUEST["no"]; 4 5$sql = "INSERT INTO `favorite`(`id`,`fav_user`) 6VALUES ('$no', '$ID')";
favoritedel.php
細かいところは省略
PHP
1session_start(); 2$no = $_REQUEST["no"]; 3$ID =$_SESSION["USERID"]; 4$sql = "DELETE FROM `favorite` WHERE `fav_user`='.$ID.' AND `id`='.$no.'";
まだPHPを初めて間もなく、わからないなりに自分でやってみましたがお気に入り機能の実装はよくわからないので質問させて頂きました。
分かりづらいかもしれませんが、長文申し訳ありません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/16 10:16