質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

178閲覧

PHP 該当する詳細を表示

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/08/19 08:45

編集2022/01/12 10:55

リンク先のページ(2.php)でどの名前をユーザーが選んだかを判別して、該当する詳細を表示する方法がわかりません。
<a href='2.php?name=$name'>をどう変更すれば、ユーザーが選んだ該当の詳細ページが表示されるでしょうか。
idはautoincrementです

ご回答よろしくお願いいたします。

1.php

php

1 2<?php 3 4$database = new PDO('mysql:host=localhost;dbname=juicedatabase;charset=UTF8;', 'root', ''); 5 6$error_message = ""; 7 8if(isset($_POST["name"]) && isset($_POST["price"])){ 9 if($_POST["name"] != "" && $_POST["price"] != "" && preg_match('/^[0-9]+$/D', $_POST["price"])){ 10 11 $price = $_POST['price']; 12 $name = $_POST['name']; 13 $sql="INSERT INTO juices(name,price)VALUES(:name, :price)"; 14 $statement = $database->prepare($sql); 15 $statement->bindParam(':name',$_POST['name']); 16 $statement->bindParam(':price',$_POST['price']); 17 $statement->execute(); 18 $statement =null; 19 20 }else{ 21 $error_message = 'font color="blue">半角数字で入力</font>'; 22 } 23} 24 25$sql = 'SELECT * FROM juices'; 26$statement = $database->query($sql); 27$records = $statement->fetchAll(); 28$statement = null; 29?> 30 31<!DOCTYPE html> 32<html> 33<head> 34 <meta charset="UTF-8"> 35</head> 36<body> 37 <form action='2.php' method="post"> 38 <p>name</p><input type="text" required="required" name="name" value="<?php echo $name; ?>"> 39 <p>price</p><?php echo $error_message; ?><input type="text" required="required" name="price"> 40 <input type="submit" value="送信"> 41 </form> 42 43 44<table> 45 46<?php 47 foreach ($records as $record) { 48 $name = $record['name']; 49 $id = $record['id']; 50?> 51 52 53<tr> 54<td><a href='2.php?name=$name'><?php print $name; ?></a></td> 55<td><?php print $id; ?></td> 56</tr> 57 58<?php 59 } 60?> 61</table> 62 63</body> 64</html>

2.php

php

1 2<?php 3$database = new PDO('mysql:host=localhost;dbname=juicedatabase;charset=UTF8;', 'root', ''); 4 5$id = $_GET["id"]; 6$price = $_GET["price"]; 7$title = $_GET["title"]; 8 9if (preg_match('/^[ -~。-゚]*$/u', 'abcA')){ 10 11 $sql = "SELECT id,name,price from juices where name='$name'"; 12 $statement = $database->query($sql); 13 $records = $statement->fetchAll(); 14 $statement = null; 15 16}else{ 17 exit; 18} 19 20?> 21 22<!DOCTYPE html> 23<html> 24<head> 25 <meta charset="UTF-8"> 26</head> 27<body> 28 <form action='1.php' method="post"> 29 30 </form> 31 32 33<table> 34<?php 35 foreach ($records as $record) { 36 $price = $record['price']; 37 $name = $record['name']; 38?> 39 <p>詳細ページ</p> 40 <p>idは<?php echo $id ?>です</p> 41 <p>名前は<?php echo $name ?>です</p> 42 <p>値段は<?php echo $price ?>円です</p> 43 44<?php 45 } 46?> 47</table> 48</body> 49</html>

PHP
PAGE TOP

teratailについてご意見お聞かせください
送信
頂いたご意見への回答は行っておりません。

返信の必要なお問い合わせはこちら

teratail【募集】 teratailを一緒に作りたいエンジニア
タグ一覧ユーザーを探すバッジとは?teratailとは?称号とは?エキスパート一覧公式ブログteratail Report運営からのお知らせteratail APIヘルプ運営会社利用規約個人情報の取り扱い個人情報保護方針広告掲載のお問い合わせ
© 2014-2018 Leverages Co., Ltd.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/19 17:08

回答ついてから、質問消すとか、人を馬鹿にしてますよね。
guest

回答1

0

質問者が質問を消したようなので削除

投稿2018/08/19 08:52

編集2018/08/19 16:45
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/19 09:28

kosuke_shibuyaさん この度、早速ご回答頂き誠にありがとうございます。 大変参考になります。 kosuke_shibuyaさんの示していただいた通り訂正し実行しましたが、何も表示されない状態でした。 表示されないのはまた別の原因があるのでしょうか? お忙しいところ申し訳ありませんがご教授よろしくお願い致します
退会済みユーザー

退会済みユーザー

2018/08/19 09:38 編集

そういうことでしょう。 さらっとしかチェックしてませんので。 DBの定義をCREATE文で、サンプルデータ投入用のSQLを提示してもらえると、こちらで動作確認できます。
退会済みユーザー

退会済みユーザー

2018/08/19 10:44

承知いたしました。 申し訳ありませんがよろしくお願いいたします。 CREATE TABLE juices ( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name VARCHAR(100), price INT ); insert into juices (id,name,price)values(1,orange,120) insert into juices (id,name,price)values(2,apple,100)
退会済みユーザー

退会済みユーザー

2018/08/19 10:49 編集

このSQLエラーで実行できないですよ。 実際のデータをエクスポートしたものを出してください。 あと、ユーザー定義関数はわかりますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問