[php,MySQL]一覧から更新、削除へと繋げていきたいのですが、やり方がよくわかりません。
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 2,623
前提・実現したいこと
初心者です。
phpで顧客管理の作成をしています。
home.phpでidの項目ごとに、編集ボタンと削除ボタンを付けて、koushin_input.phpとkoushin.php,sakujo.phpと繋げていきたいのですが、具体的にどうすればよいのかがまったくわかりません。
長いとは思いますが、どうすればよいのかを教えていただければと思います。
コードは拾ってきたテンプレートを変えたものです。
該当のソースコード
home.php
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>顧客管理</title></head>
<body>
<h1>顧客管理</h1><br />
<h3>一覧</h3>
<h3><a href="touroku.html">新規登録</a></h3>
<?php
$dsn = 'mysql:dbname=kokyakukanri;host=127.0.0.1';
$user = 'root';
$password = '';
try{
$dbh = new PDO( $dsn, $user, $password );
}catch( PDOException $error ){
echo "接続失敗:".$error->getMessage();
die();
}
$dbh->query('SET NAMES utf8');
$sql = 'select name, company_name, tel, email from kokyaku';
$stmt = $dbh->query( $sql );
echo "<table border='1'>\n";
echo "\t<tr><th>名前</th><th>会社名</th>
<th>電話番号</th><th>メールアドレス</th></tr>\n";
while( $result = $stmt->fetch( PDO::FETCH_ASSOC ) ){
echo "\t<tr>\n";
echo "\t\t<td>{$result['name']}</td>\n";
echo "\t\t<td>{$result['company_name']}</td>\n";
echo "\t\t<td>{$result['tel']}</td>\n";
echo "\t\t<td>{$result['email']}</td>\n";
echo "\t</tr>\n";
}
echo "</table>\n";
?>
</body>
</html>
koushin_input.php
<html>
<head><title>顧客管理</title></head>
<body>
<h1>顧客管理</h1><br />
<h3>更新</h3>
<?php
if(!$con=mysql_connect("127.0.0.1","root","")){
echo"データベースに接続できませんでした。";
exit;
}
if(!mysql_select_db("kokyakukanri",$con)){
echo"データベースを選択できませんでした。";
exit;
}
$res = mysql_query('SET NAMES utf8', $con);
if (!$res) {
exit('文字コードを指定できませんでした。');
}
$sql = "select name,address from kokyaku where id = '$id'";
if(!$res=mysql_query($sql)){
echo "SQL実行時エラー";
exit;
}
if(!$row=mysql_fetch_array($res)){
echo "データが削除されています";
exit;
}
echo "<form action=koushin.php method=post>";
echo "名前:<input type=text name=name value=\"" . $row["name"] . "\"> ";
echo "<br />";
echo "<p></p>";
echo "住所:<input type=text name=address value=" . $row["address"] . "> ";
echo "<input type=hidden name=id value=" . $id . ">";
echo "<br />";
echo "<input type=submit value=更新>" . " ";
echo "<input type=button onclick=location.href='home.php' value=キャンセル>";
echo "</form>";
mysql_free_result($res);
mysql_close($con);
?>
</body>
</html>
koushin.php
<html>
<body>
<?php
if(!$con=mysql_connect("127.0.0.1","root","")){
echo"データベースに接続できませんでした。";
exit;
}
if(!mysql_select_db("kokyakukanri",$con)){
echo"データベースを選択できませんでした。";
exit;
}
$res = mysql_query('SET NAMES utf8', $con);
if (!$res) {
exit('文字コードを指定できませんでした。');
}
$name = $_REQUEST['name'];
$address = $_REQUEST['address'];
$sql = "update kokyaku set name='$name' , address='$address' where id = $id";
if(!$res=mysql_query($sql)){
echo "SQL実行時エラー";
exit;
}
mysql_close($con);
echo "更新完了";
?>
</body>
</html>
sakujo.php
<body>
<?php
if(!$con=mysql_connect("127.0.0.1","root","")){
echo"接続エラー";
exit;
}
if(!mysql_select_db("kokyakukanri",$con)){
echo"データベース選択エラー";
exit;
}
$sql = "delete from kokyaku where id=$id";
if(!$res=mysql_query($sql)){
echo "SQL実行時エラー";
exit;
}
mysql_close($con);
echo "削除完了";
?>
</body>
</html>
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
つぎはぎなんだと思いますが、mysql_は使わないほうが良いので、PDOで書きなおしてから、改めて質問されることをおすすめします。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
2016/05/25 12:25
こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。