MAMP
MAMP(Macintosh, Apache, MySQL, PHP)はmacOS上でウェブ開発を支援するソフトです。
PHPでレストラン検索サイトを作るポイント
入力フォームの基本
<h3>レストラン店名検索</h3>
<form action="search_receive.php" method="POST">
<label for="name">店名</label>
<input type="text" id="name" name="name" placeholder="店名を入力">
<input type="submit" value="検索する">
</form>
POSTデータの受け取り例
<?php
if($_SERVER['REQUEST_METHOD'] === 'POST'){
$name = $_POST['name']; //フォーム入力値
}
データベースPDO接続とプレースホルダ
$dsn = 'mysql:dbname=DB名;host=localhost;charset=utf8';
$user = 'root';
$password = 'root';
$data = [];
try {
$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT カラム名, price, name FROM テーブル名 WHERE name like :name";
$stmt = $dbh->prepare($sql);
$stmt->bindValue(':name', '%'.$name.'%', PDO::PARAM_STR);
$stmt->execute();
$count = $stmt->rowCount();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$data[] = $row;
}
} catch (PDOException $e){
echo $e->getMessage();
die();
}
?>
データ出力例
<h1>レストラン一覧 </h1>
<p><?php echo $count; ?>件見つかりました。</p>
<table border=1>
<tr><th>地区</th><th>店名</th><th>価格帯</th></tr>
<?php foreach($data as $row): ?>
<tr>
<td><?php echo $row['address']; ?></td>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['price']; ?></td>
</tr>
<?php endforeach; ?>
</table>