プログラミング初心者です!
下記の「shop_list.php」と「shop_product.php」の$dsn = ~ から、$stmt->execute(~)の処理を
引数を$sqlと$dataとして、受け取ったSQL文($sql)に、埋め込むデータ($data)を埋め込み、実行。実行結果が入った$stmtをreturnする処理の共通関数を作成したいです。
なお、作成する共通関数のメソッドは「executeSql」です。
PHP
1//shop_list.php 2 3<?php 4session_start(); 5require_once('../common/common.php'); 6session_regenerate_id(true); 7if(isset($_SESSION['member_login'])==false) 8{ 9 print 'ようこそゲスト様 '; 10 print '<a href="member_login.html">会員ログイン</a><br />'; 11 print '<br />'; 12} 13else 14{ 15 print 'ようこそ'; 16 print $_SESSION['member_name']; 17 print ' 様 '; 18 print '<a href="member_logout.php">ログアウト</a><br />'; 19 print '<br />'; 20} 21?> 22 23<!DOCTYPE html> 24<html> 25<head> 26<meta charset="UTF-8"> 27<title>ろくまる農園</title> 28</head> 29<body> 30 31<?php 32 33try 34{ 35$dsn='mysql:dbname=shop;host=localhost;charset=utf8'; 36$user='root'; 37$password=''; 38$dbh=new PDO($dsn,$user,$password); 39$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 40 41$sql='SELECT code,name,price FROM mst_product WHERE 1'; 42$stmt=$dbh->prepare($sql); 43$stmt->execute(); 44 45$dbh=null; 46 47print '商品一覧<br /><br />'; 48 49while(true) 50{ 51 $rec=$stmt->fetch(PDO::FETCH_ASSOC); 52 if($rec==false) 53 { 54 break; 55 } 56 print '<a href="shop_product.php?procode='.$rec['code'].'">'; 57 print $rec['name'].'---'; 58 print $rec['price'].'円'; 59 print '</a>'; 60 print '<br />'; 61} 62 63print '<br />'; 64print '<a href="shop_cartlook.php">カートを見る</a><br />'; 65 66} 67catch (Exception $e) 68{ 69 displayError(); 70} 71 72?> 73 74</body> 75</html>
PHP
1//shop_product.php 2 3<?php 4session_start(); 5require_once('../common/common.php'); 6session_regenerate_id(true); 7if(isset($_SESSION['member_login'])==false) 8{ 9 print 'ようこそゲスト様 '; 10 print '<a href="member_login.html">会員ログイン</a><br />'; 11 print '<br />'; 12} 13else 14{ 15 print 'ようこそ'; 16 print $_SESSION['member_name']; 17 print '様 '; 18 print '<a href="member_logout.php">ログアウト</a><br />'; 19 print '<br />'; 20} 21?> 22 23<!DOCTYPE html> 24<html> 25<head> 26<meta charset="UTF-8"> 27<title>ろくまる農園</title> 28</head> 29<body> 30 31<?php 32 33try 34{ 35$pro_code=$_GET['procode']; 36 37$dsn='mysql:dbname=shop;host=localhost;charset=utf8'; 38$user='root'; 39$password=''; 40$dbh=new PDO($dsn,$user,$password); 41$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 42 43$sql='SELECT name,price,gazou FROM mst_product WHERE code=?'; 44$stmt=$dbh->prepare($sql); 45$data[]=$pro_code; 46$stmt->execute($data); 47 48$rec=$stmt->fetch(PDO::FETCH_ASSOC); 49$pro_name=$rec['name']; 50$pro_price=$rec['price']; 51$pro_gazou_name=$rec['gazou']; 52 53$dbh=null; 54 55if($pro_gazou_name=='') 56{ 57 $disp_gazou=''; 58} 59else 60{ 61 $disp_gazou='<img src="../product/gazou/'.$pro_gazou_name.'">'; 62} 63print '<a href="shop_cartin.php?procode='.$pro_code.'">カートに入れる</a><br /><br />'; 64 65} 66catch(Exception $e) 67{ 68 displayError(); 69} 70 71?> 72 73商品情報参照<br /> 74<br /> 75商品コード<br /> 76<?php print $pro_code; ?> 77<br /> 78商品名<br /> 79<?php print $pro_name; ?> 80<br /> 81価格<br /> 82<?php print $pro_price; ?>円 83<br /> 84<?php print $disp_gazou; ?> 85<br /> 86<br /> 87<form> 88<input type="button" onclick="history.back()" value="戻る"> 89</form> 90 91</body> 92</html>
実行結果は、以下の画像のように野菜のメニューやその詳細画面が表示されます。
個人的に調べてbindValueを使いそうなことはわかったのですが、そこから先がどのようにしたらreturnで実行結果の入った$stmt返せるのかがわからず詰まっています。
なので、是非ヒントをご教授頂ければ大変助かります。
情報不足な箇所があるかもしれませんが、何卒宜しくお願い申し上げます。
あなたの回答
tips
プレビュー