###前提:
【課題】ECサイト構築中
商品一覧画面にて、チェックボックスで商品を分けたい
メンズ/レディース/キッズ
##現状:
単体での各チェックボックスを押下した際の挙動は問題なし
複数のチェックボックス押下でうまくいかない。
①↓メンズとレディースを同時に選択した時に、一番最後のGETパラメーターのみ反映されます(ja=ledies)
(例)
http://~~product_all_test2.php?ja=&ja=men&ja=ledies
②↓結果
表示されるのは、レディースの商品情報のみ
###やりたいこと:
②で、表示されるのが、メンズとレディースの商品情報であること。
※複数のパラメーターを正常に処理したい。
if文での条件分岐の記載方法をお教えください。
php
1 2 if ($_GET["ja"] == 'ledies'){ 3 4try{ 5 $dbh = new PDO($dsn, $user, $password); 6 echo "接続成功"; 7 8 $sql = 'SELECT * FROM product'; 9 $statement = $dbh -> query($sql); 10 11 $sql = 'SELECT * FROM product WHERE genre = 2'; //条件 genre=2(ledies) 12 $statement = $dbh -> query($sql); 13 14 //レコード件数取得 15 $row_count = $statement->rowCount(); 16 17 while($row = $statement->fetch()){ 18 $rows[] = $row; 19 } 20 21 22 //データベース接続切断 23 $dbh = null; 24 25}catch (PDOException $e){ 26 print('Error:'.$e->getMessage()); 27 die(); 28} 29 30} elseif ($_GET["ja"] == 'men'){ 31try{ 32 $dbh = new PDO($dsn, $user, $password); 33 echo "接続成功"; 34 35 $sql = 'SELECT * FROM product'; 36 $statement = $dbh -> query($sql); 37 38 $sql = 'SELECT * FROM product WHERE genre = 1'; ////条件 genre=1(men) 39 $statement = $dbh -> query($sql); 40 41 //レコード件数取得 42 $row_count = $statement->rowCount(); 43 44 while($row = $statement->fetch()){ 45 $rows[] = $row; 46 } 47 48 49 //データベース接続切断 50 $dbh = null; 51 52}catch (PDOException $e){ 53 print('Error:'.$e->getMessage()); 54 die(); 55} 56 57} elseif ($_GET["ja"] == 'kids') { 58try{ 59 $dbh = new PDO($dsn, $user, $password); 60 echo "接続成功"; 61 62 $sql = 'SELECT * FROM product'; 63 $statement = $dbh -> query($sql); 64 65 $sql = 'SELECT * FROM product WHERE genre = 3'; ////条件 genre=3(kids) 66 $statement = $dbh -> query($sql); 67 68 //レコード件数取得 69 $row_count = $statement->rowCount(); 70 71 while($row = $statement->fetch()){ 72 $rows[] = $row; 73 } 74 75 //データベース接続切断 76 $dbh = null; 77 78}catch (PDOException $e){ 79 print('Error:'.$e->getMessage()); 80 die(); 81} 82} elseif ($_GET["ja"] == 'all') { 83try{ 84 $dbh = new PDO($dsn, $user, $password); 85 echo "接続成功"; 86 87 $sql = 'SELECT * FROM product'; 88 $statement = $dbh -> query($sql); 89 90 $sql = 'SELECT * FROM product'; //すべてのチェックボックス押下 91 $statement = $dbh -> query($sql); 92 93 //レコード件数取得 94 $row_count = $statement->rowCount(); 95 96 while($row = $statement->fetch()){ 97 $rows[] = $row; 98 } 99 100 101 102 //データベース接続切断 103 $dbh = null; 104 105}catch (PDOException $e){ 106 print('Error:'.$e->getMessage()); 107 die(); 108} 109 110}
###試したこと
if ($_GET["ja"] == 'men' and 'ledies') { ----------略 $sql = 'SELECT * FROM product WHERE genre=1 or genre=2';
チェックボックス:
①メンズとレディース
②メンズのみ
③レディースのみ
①の結果:
レディースの商品画像のみが表示された。
②の結果:
メンズとレディースの商品画像が表示された。
③の結果:
レディースの商品画像のみが表示された。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/10 07:49
2019/09/10 07:51
2019/09/10 07:52
2019/09/11 10:29
2019/09/11 21:27
2019/09/12 02:13
2019/09/12 02:51
2019/09/12 07:14 編集
2019/09/12 07:44
2019/09/13 04:30