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

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

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

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

3回答

1761閲覧

php&DB phpでDBのIDを取得したい

Gnr4A

総合スコア30

PHP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/05/26 02:48

編集2021/05/26 02:59

phpとDBについて質問します。テーブルを作り、DBと接続をし、IDをデータベースから取得してきてテーブルに出力します。また、テーブルにボタンを設置してそのボタンが押された際にIDを取得するプログラムを作りたいです。出力する際foreachで回しています。なのですべて同じ名前になってしまいます。どのようにしたら押されたボタンのIDをデータベースから取得できるのでしょうか
※ごちゃごちゃしてみずらいと思うので最低限の連想できるコードしか書きません。
自分はどのようにしたら取得したいかを知りたいだけです。ヒントなどでも歓迎です。

php

1<?php 2$head=['id','氏名','年齢','修正・消去'] 3//tblはDBから取得してきたデータが2次元配列で格納してあります 4$tbl=[[1,'太郎',16],[2,'次郎',18], 5[3,'三郎',20]]; 6?> 7 8<table border=1> 9 <tr> 10 <?php foreach($head as $valu){ ?> 11 <td><?php print $valu; ?></td> 12 <?php } ?> 13 </tr> 14 <?php foreach($tbl as $value){ ?> 15 <tr> 16 <?php foreach($value as $key){ ?> 17 <td><?php print $key; ?></td> 18 <?php } ?> 19 <td><button type='submit' name='update'>修正</button><button type='submit' name='delete'>消去</button></td> 20 </tr> 21 <?php } ?> 22</table>

修正ボタンを押したら変数又はセッションに押された行のIDが入る仕組みを作りたいです。

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

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

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

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

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

m.ts10806

2021/05/26 02:55

DBの定義とサンプルデータを提示してください。 変に削りすぎたコードよりも生のまま全部提示されたほうが問題が見えやすいです。 >自分はどのようにしたら取得したいかを知りたい 他人が行きたい場所を他人が知るわけがないです。
Gnr4A

2021/05/26 03:00

説明が抜けてましたね。 $tblにデータベースから取得してきたデータが入っています。
m.ts10806

2021/05/26 04:15

2021/05/26 11:55 にした指摘から変更ありません。
guest

回答3

0

ヒントなどでも歓迎です。

いきなりコードを書くのではなく
メモレベルでも情報整理をすること。
レイアウトは静的htmlで組むこと。
リクエストやレスポンスの概念をなるべく正確におさえること。
PHPマニュアルで機能確認をし、フォームの処理のような概要説明、チュートリアルは一度通すこと。デバッグをする、エラーメッセージを読む
ミニマムプログラムを作って単体で動作確認すること。

要は
いきなりやりたいことだけを押し通そうとしないこと。

素振りできない人がホームランを打てるようにはならないし
準備運動もなしにフルマラソン走りきれる人はいないし
基本ができてないのにまともなアプリケーションを作れる人はいない。

書いたとおりにしか動かないので、
やりたいことだけやる
他人は自分のやりたいことだけ答えてればいい

というスタンスの人は初心者にすら届きません。

投稿2021/05/26 04:23

編集2021/05/26 06:15
m.ts10806

総合スコア80875

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

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

0

テーブルを作り、DBと接続をし、IDをデータベースから取得してきてテーブルに出力します。また、テーブルにボタンを設置してそのボタンが押された際にIDを取得するプログラムを作りたいです

●マニュアル見ればDBからのデータ取得の仕方は書かれています。
=>PDOクラス

●また、SQLの知識も必要です。(質問文見た感じだと基礎だけで十分)
=>やりながら学べる基本のSQL入門

出力する際foreachで回しています。なのですべて同じ名前になってしまいます。

●全部同じでデータが入ってるかforeachでの回し方に問題があるのではないでしょうか。
foreachの仕様とデータの中身を確認してみましょう。
=>foreach

修正ボタンを押したら変数又はセッションに押された行のIDが入る仕組みを作りたいです。

●GETとPOSTの話だと思います。
GETとPOSTの違いについて
(違いについてと言うタイトルになっていますが、GETとPOST自体がどのような物なのかにも触れています。)

●GETとPOSTのデータの扱い方はPHPのマニュアルで確認してください。
$_POST
$_GET

●セッションの取り扱い方もPHPのマニュアルに載っています。
$_SESSION

●質問文には最低限のコードにすら載っていないと思いました。
難しいと感じるかもしれないですが、実際そこまで難しい内容ではないはずです。
必要な知識に関わりそうなヒントくらいしか出せないですが頑張ってください!

投稿2021/05/26 03:19

tmsw

総合スコア97

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

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

0

mysqlやpostgresqlなどのデータベースでは、
テーブルのid値を自動採番する仕組みがあります。
(mysql:AUTO_INCREMENT、オートインクリメント、自動インクリメント、postgresql:連番型、serial型など)
INSERT INTO文でidをphpから与えずとも、
それらの仕組みを使えばidを自動でつけることができます。

その際に、
PDOならPDO::lastInsertId
mysqliだとmysqli_stmt_insert_id
を使えば採番されたid値を取得できるかもしれません。

それと、
修正・消去用ページを表示するのに、
GETパラメータでidを取得して表示する動作で良ければ、
フォーム送信先にidを渡せばいいです。

foreachループで一覧表示するときに、
id値も取得するようなSELECT文にして、
フォームの中に埋め込んだり、リンク先urlに付与すればいいです。

投稿2021/05/26 04:20

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問