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

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

ただいまの
回答率

90.34%

  • PHP

    21267questions

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

phpで$rowの値を別ページで行いたい

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 656

pomi

score 2

phpで$rowの値を別ページで行いたいと思っています。

現状は$rowの値が受け渡しすることができず
$issetでも出力されていない状態です。

値の受け渡しができないのは
なぜでしょうか?

1ページ
<?php
session_start();
$_SESSION = $_POST;
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>顧客管理*検索</title>
  <form action="/phpkiso/DB/DB/updata.php" name="form1" method="post">
    <link rel="stylesheet" href="DB_color.css" class="e">
      <style type="text/css">
        <!--
        body {line-height: 130%;}
        -->
      </style>
      <style type="text/css">
        <!--
        body{
        line-height : 170%;
        }
        or
        p{
        line-height : 170%;
        }
        -->
      </style>
</head>
<center>顧客管理情報ツール(入金金額*一覧)</center>
<body background="back.gif" bgcolor="#ccc" class="a">
<br />
<body>
<?php
        $dsn = 'mysql:host=localhost;dbname=customer;charset=utf8';
      $user = 'root';
      $password = '';

        $dbh = new PDO($dsn, $user, $password);
        $dbh->query('SET NAMES utf8');
              $sqlcmd = "SELECT * FROM `customer_Payment`";
              $statement = $dbh->prepare($sqlcmd);
              $statement->execute();

if($statement->execute()){
    $row_count = $statement->rowCount();
    while($row = $statement->fetch()){
        $rows[] = $row;}
}else{
    $errors['error'] = "検索失敗しました。";
}

$dbh = null;
?>
<br />
<fieldset>
 <!-- <?php foreach($rows as $row){ ;?> -->
    <br />
    [名 前]<input type="text" value="<?php echo $row['name']; ?>" class="d-na">
    [カテゴリ]<input type="text" value="<?php print $row['abc']; ?>" class="d-na">
    [支払い月]<input type="text" value="<?php print $row['semina_month'];?> " class="d-year">
    [金 額]<input type="text" value="<?php print $row['payment'];?> " class="d-na">
    [有無]<input type="text" value="<?php print $row['ab'];?> " class="d-da">
    <input type="submit" onclick="/phpkiso/DB/DB/updata.php" value="変更" method="post">
  <input type="button" name="delate" value="削除">
<!-- <?php }?> -->
</fieldset>
<?php
print(isset($row['name']));
?>
<br />
<br />
<input type="button" onclick="location.href='./DB_top.php'" value="トップ戻る">
<!-- <input type="submit" value=変更 name="/phpkiso/DB/DB/updata.php"></td></tr>
 -->
</body>
</html>
2ページ
<?php
 session_start();
 $_SESSION = $_POST;
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
      <title>顧客管理*検索</title>
        <link rel="stylesheet" href="DB_color.css" class="e">
          <style type="text/css">
            <!--
            body {line-height: 130%;}
            -->
          </style>
          <style type="text/css">
            <!--
            body{
            line-height : 170%;
            }
            or
            p{
            line-height : 170%;
            }
            -->
                  </style>
</head>
<form action="../DB_top.php" method="post">
  <center>顧客管理情報ツール(セミナー情報*検索)</center>
    <body background="back.gif" bgcolor="#ccc" class="a">
      <br />
        <?php
        $post = $post['code'];
        $post = $post['name'];
        $post = $post['abc'];
        $post = $post['semina_month'];
        $row = $post['payment'];

        print(isset($post['name']));


        ?>
        <fieldset>
          <fieldset>
        <br />       
        <tr>
          <td>コ ー ド</td>
          <td><input type="text" value="<?php echo $post['code']; ?>" class="d-i"></td><br />
          <td>名   前</td>
          <td><input type="text" value="<?php echo $post['name']; ?>" class="d-i"></td><br />
          <td>カ テ ゴ リ</td>
          <td><input type="text" value="<?php echo $post['abc']; ?>" class="d-i"></td><br />
          <td>支払 い月</td>
          <input type="text" value="<?php echo $post['semina_month']; ?>" class="d-i"></td><br />
          <td>金   額</td>
          <td><input type="text" value="<?php print $post['payment']; ?>" class="d-ad"></td><br />
          <td>有   無</td>
          <td><input type="text" value="<?php echo $post['ad']; ?>" class="d-na"></td><br /></tr>
        </fieldset>
      </fieldset>
<br />
<br />
<input type="button" onclick="location.href='../DB_top.php'" value="トップ戻る">
</body>
</html>
変更後1ページ

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>顧客管理*検索</title>
  <form action="/phpkiso/DB/DB/updata.php" name="form1" method="post">
    <link rel="stylesheet" href="DB_color.css" class="e">
      <style type="text/css">
        <!--
        body {line-height: 130%;}
        -->
      </style>
      <style type="text/css">
        <!--
        body{
        line-height : 170%;
        }
        or
        p{
        line-height : 170%;
        }
        -->
      </style>
</head>
<center>顧客管理情報ツール(入金金額*一覧)</center>
<body background="back.gif" bgcolor="#ccc" class="a">
<br />
<body>
<?php
        $dsn = 'mysql:host=localhost;dbname=customer;charset=utf8';
      $user = 'root';
      $password = '';

        $dbh = new PDO($dsn, $user, $password);
        $dbh->query('SET NAMES utf8');
              $sqlcmd = "SELECT * FROM `customer_Payment`";
              $statement = $dbh->prepare($sqlcmd);
              $statement->execute();

if($statement->execute()){
    $row_count = $statement->rowCount();
    while($row = $statement->fetch()){
        $rows[] = $row;}
    // $rowsをセッション'ROWS'に保存
    $_SESSION['ROWS'] = $rows;
}else{
    $errors['error'] = "検索失敗しました。";
}

$dbh = null;
?>
<br />
<fieldset>
 <!-- <?php foreach($rows as $row){ ;?> -->
    <br />
    [名 前]<input type="text" value="<?php echo $row['name']; ?>" class="d-na" name="name">
    [カテゴリ]<input type="text" value="<?php print $row['abc']; ?>" class="d-na" name="abc">
    [支払い月]<input type="text" value="<?php print $row['semina_month'];?> " class="d-year" name="semina_month">
    [金 額]<input type="text" value="<?php print $row['payment'];?> " class="d-na" name="payment">
    [有無]<input type="text" value="<?php print $row['ab'];?> " class="d-da" name="ab">
    <input type="submit" onclick="/phpkiso/DB/DB/updata.php" value="変更" method="post">
  <input type="button" name="delate" value="削除">
<!-- <?php }?> -->
</fieldset>
<?php
print(isset($row['name']));
?>
<br />
<br />
<input type="button" onclick="location.href='./DB_top.php'" value="トップ戻る">
<!-- <input type="submit" value=変更 name="/phpkiso/DB/DB/updata.php"></td></tr>
 -->
</body>
</html>
2ページめ


<?php
 session_start();
 $rows=$_SESSION['ROWS'];
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
      <title>顧客管理*検索</title>
        <link rel="stylesheet" href="DB_color.css" class="e">
          <style type="text/css">
            <!--
            body {line-height: 130%;}
            -->
          </style>
          <style type="text/css">
            <!--
            body{
            line-height : 170%;
            }
            or
            p{
            line-height : 170%;
            }
            -->
                  </style>
</head>
<form action="../DB_top.php" method="post">
  <center>顧客管理情報ツール(セミナー情報*検索)</center>
    <body background="back.gif" bgcolor="#ccc" class="a">
      <br />
        <?php

        print(isset($post['name']));


        ?>
        <fieldset>
          <fieldset>
        <br />       
        <tr>
          <td>コ ー ド</td>
          <td><input type="text" value="<?php echo $_SESSION['code']; ?>" class="d-i"></td><br />
          <td>名   前</td>
          <td><input type="text" value="<?php echo $_SESSION['name']; ?>" class="d-i"></td><br />
          <td>カ テ ゴ リ</td>
          <td><input type="text" value="<?php echo $_SESSION['abc']; ?>" class="d-i"></td><br />
          <td>支払 い月</td>
          <input type="text" value="<?php echo $_SESSION['semina_month']; ?>" class="d-i"></td><br />
          <td>金   額</td>
          <td><input type="text" value="<?php print $_SESSION['payment']; ?>" class="d-ad"></td><br />
          <td>有   無</td>
          <td><input type="text" value="<?php echo $_SESSION['ad']; ?>" class="d-na"></td><br /></tr>
        </fieldset>
      </fieldset>
<br />
<br />
<input type="button" onclick="location.href='../DB_top.php'" value="トップ戻る">
</body>
</html>
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+3

細かいところは抜きにして$_SESSION変数の利用(保存と取り出し)についてのみ回答します。

まず、$_SESSION = $_POST;なぜこんなことしてるんでしょうか?$_SESSION$_POSTで上書きしてしまってはだめです。(アクセスがあるたびにセッション変数$_SESSION$_POSTで上書きされるのでセッション変数の意味をなさなくなります)

1ページ目のphpで$_SESSION['ROWS'] = $rows;としセッションに保存しましょう。

// ・・・略・・・
//こんなことしちゃだめです。
//$_SESSION = $_POST;
// ・・・略・・・
if($statement->execute()){
    $row_count = $statement->rowCount();
    while($row = $statement->fetch()){
        $rows[] = $row;}

    // $rowsをセッション'ROWS'に保存
    $_SESSION['ROWS'] = $rows;
}else{
    $errors['error'] = "検索失敗しました。";
}
// ・・・略・・・

2ページ目のPHPで$rows=$_SESSION['ROWS'];とし、セッションから取り出しましょう。

// ・・・略・・・
//こんなことしちゃだめです。
//$_SESSION = $_POST;

// セッション'ROWS'に保存したものを$rowsに取り出す。
$rows=$_SESSION['ROWS'];
// ・・・略・・・

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/08 15:11

    Y,Hさん
    ご丁寧にありがとうございます;;
    感謝です。

    早速実装してみました!
    あともう少し…というところですが、

    2ページ目で下記のエラーが出てきました。
    <br /><b>Notice</b>: Undefined index: name in <b>/Applications/XAMPP/xamppfiles/htdocs/phpkiso/DB/DB/updata.php</b> on line <b>51</b><br />

    この場合は2ページ目の取り出し方が良くないのでしょうか?

    キャンセル

  • 2017/02/08 15:35 編集

    エラーが発生している時点でのソースファイルを私は参照できないのでなんともお答えできません。
    が、updata.phpの51行目でなんらかのarrayに対して'name'というindexで参照したがそんなものは存在しないというNoticeメッセージです。

    キャンセル

+3

つまったときはもっと簡単なサンプルにするとよいですよ

例示を見るに、$_SESSIONに格納しているのは$_POSTで
$rowの値が投入されているようには見えません。
またformで値を渡したいようにみえますがnameが設定されていなければ
postやgetはできません

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/08 15:18

    yambejpさんご回答ありがとうございます^^おっしゃる通りname抜けておりました。ご助言ありがとうございます。

    キャンセル

同じタグがついた質問を見る

  • PHP

    21267questions

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