yoshi_tech
@yoshi_tech

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PHP MySQL 【遷移について】

PHPでMySQL

例えば

1、input.php ファイル内で、formでPOSTした文字列などを
INSERT INTOでMySQLのデータベースに挿入します。

input.php
action=""

2、先程、MySQlに挿入した文字列などを input.php(同じページ)にSELECTで取得。

質問
MySQLにデータの挿入・取得を1ページ(input.php)だけで表示することは可能でしょうか?

やりたい内容
input.php → input.php

出来れば好ましくない内容
input.php → display.php に遷移させないとMySQLにデータの挿入・取得はできないものでしょうか?

(自分なりに色々と試したのですがinput.php → display.phpのケースでないと上手くいきません)

よろしくお願い致します。

0

2Answer

できそうな感じですけどね。
うーん、formのgetやpostのメソッド、
あとはactionのパスなどは問題ありませんか?
開発者ツール使って、どこまで意図した動作になってるか追った方が良いかもです。

1Like

Comments

  1. @yoshi_tech

    Questioner

    input.php → input.php は action="" 空で良いという認識なのですがどうなんでしょう?
  2. あ、actionは自分の勘違いですね、すみません。
    methodの方はどうでしょう?
  3. @yoshi_tech

    Questioner

    いえいえ、ご対応くださり大変ありがたいです!

    method="post" です。
  4. display.phpで動いているならコードは問題無さそうですね。
    DBへの挿入は達成できていますか?
  5. @yoshi_tech

    Questioner

    input.php → display.php であればDBへの挿入はされています!

    input.php → input.php だとエラーは出ていないのですが
    submitすると
    DBに挿入されなかったり、formが消えたり表示にも問題がでます。
  6. @yoshi_tech

    Questioner

    ど素人ですみません。

    ログイン画面など、ページを遷移させるのが常識なのでしょうか?
  7. (もしかしたらお試し済みかもしれませんが)
    一度処理を分解して見ていった方が良いかもですね。

    DBへの処理は一度置いて、
    input.phpの頭に、postでのアクセス時に、
    その中身を書き出して処理終了(exit)するコードを書いてみてください。

    ```
    <?php
    if($_POST){
    print_r($_POST);
    exit;
    }
    ?>

    ```
  8. > ログイン画面など、ページを遷移させるのが常識なのでしょうか?

    規模次第なので、常識とかは難しいですね。

    * ログイン入力ページ(表示)
    * ログイン処理(今回で言うpostの受け取り先)
    * 認証済みページ(表示)

    みたいにボロボロ作るファイルが増えていきますw
  9. @yoshi_tech

    Questioner

    ログイン処理(受け取り先)のページを閲覧していないだけなんですかねぇ?

    ログイン(表示)
    → ログイン処理(非表示)
    → 確認(表示)

    無知過ぎて恥ずかしいです。

    daice_3d6さん、ありがとうございます!
    色々試してみます。

フォームの POST 先が同じ input.php、つまり「フォームの入力画面表示」と「フォームの受け取りと処理」を同じスクリプトで、ということでよろしでしょうか。

こういうことかしら?

input.php
<?php
$data = '';
if (isset($_POST['my_string'])) {
    $data = $_POST['my_string'];
    // INSERT INTO で $data を MySQL のデータベースに挿入
    ...
    // SELECT で MySQL から再取得
    ....
    // 再取得したデータ
    $data = htmlspecialchars($data_sql);
}
?>
<form action="input.php" method="post">
    <input type="text" name="my_string"><?=$data;?></input>
    <input type="submit" value="送信">
</form>

1Like

Comments

  1. @yoshi_tech

    Questioner

    はい、そうです!

    コードまで書いて頂いたんですね
    ありがとうございます!!!!!

    勉強になります!

Your answer might help someone💌