新規登録したデータが表示されない理由は?

このQ&Aのポイント
  • 新規登録したデータが表示されない理由を解説します。
  • 新規登録したデータが表示されない原因と解決方法について説明します。
  • 初心者の方が新規登録したデータが表示されない場合の対処法について解説します。
回答を見る
  • ベストアンサー

新規登録したデータが表示されない理由は?

別言語からPHPに移行してきた初心者です。 新規登録スクリプトTouroku.phpを実行し、その直後、入力確認用kakunin.phpで全件表示させようとすると、新規で入力したデータ以外のデータしか表示されません。 DBはMysqlですが、DBにはデータが登録されていることが確認できています。 (症状1)新規入力から確認用表示までのスクリプトを1本化すると新規入力データは表示されます。 (症状2)新規登録スクリプトTouroku.phpを実行したあと、ブラウザを一旦閉じてからkakunin.phpを実行した場合、データがきちんとすべて表示されます。 (症状3)EclipseのPHP Browserでは続けて2回kakunin.phpを実行すると全件が表示されますが、IE上では何回実行しても新規入力データは非表示のままです。 (対策1)DBがロックしているかと思い、それぞれのスクリプトに「mysql_close()」を入れてみましたが、結果は同じでした。 ApacheとMysqlはXampp2.5でインストールしています。 どなたか解決方法をご教授ください。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ブラウザがキャッシュを読み込んでしまっているだけのような・・・。 パラメータに現在時刻を渡してあげるなどして古いキャッシュを読まないようにしてみてはいかがですか? [PHP-users 11607] リロードしてもキャッシュが読み込まれてしまう http://ml.php.gr.jp/pipermail/php-users/2002-November/011613.html

uchan1973
質問者

お礼

ご回答ありがとうございました。 DBからのデータ受渡し問題があるのではと思い込んでいました。 試しにまず、時間を表示させてみるとやはりkakunin.php実行の際、 まず、キャッシュを読み込んでいるのがわかりました。 これで解決できそうです。ありがとうございました。

関連するQ&A

  • PHPで入力した内容をMYSQLに登録するとエラーが表示。

    PHPで入力した内容をMYSQLに登録するとエラーが表示。 PHP側のフォームにパソコンと入力しMYSQL側に登録すると、 DB Error unknown errorと表示されていますが、 MYSQLのデータベースの中を確認すると、パソコンと登録されています。 PHPとMYSQLはsjisで設定します。 このエラーの回避は出来るのでしょうか?ご教授お願いします。

    • 締切済み
    • PHP
  • FORMからPHP処理  

    こんにちわ ある参考書をみながらスクリプトを打ち込んでいるのですがFORM(touroku.html)で登録ボタンを押すと(touroku.php)にpostで送信されデータベース処理をした結果(登録完了)と表示されるはずなのですが何も表示されません。参考書ではhttp://touroku.htmlからhttp://touroku.phpに移動しているのですけど自分のはC:\www\touroku.htmlからC:\www\touroku.phpに移動しています。このあたりが何か関係あるのでしょうか?サーバーはANHTTPDを使用しています。なにか設定が間違っているのでしょうか?スクリプトは以下の様です。 <html> <body> <?php if(!$con=mysql_connect("localhost,"mysql","****")){ echo"接続エラー"; exit; } if (!mysql_select_db("****",$con)){ echo"データベース選択エラー"; exit; } $sql = "insert into ****_tbl(name,age) values('$nm',$age)"; //sqlを実行 if(!$res=mysql_query($sql)){ echo "Sql実行時エラー"; exit; } mysql_close($con); echo "登録完了"; ?> </body> </html>

    • ベストアンサー
    • PHP
  • mysqlにデータ登録

    phpでフォームに入力された値をDBに登録するとします。 例えば会員登録とした場合、基本的にhtmlは不要です。確認用にブラウザに表示する際には htmlspecialcharsを用いて(strip_tagsもでしょうか)エスケープすると思うのですがエスケープした データをDBにいれるのはまずいですか? 表示用とは別に生のデータを取得してそっちをDBに入れるという話を聞いたのですがどっちがいいのでしょうか? ブログなどhtmlの要素の登録する必要があるデータであればエスケープしたのは表示する際に手間が 掛かりそうなのでその場合はわかるのですがどのようにするべきなのでしょうか? DBに登録の際は、プリペアドステートメントを利用しています。

    • ベストアンサー
    • PHP
  • テーブルに入っているデータと重複チェックしたい

    やりたいこと: phpを実行して取得したデータの内容と既にDBのテーブルに格納されているデータを 比較して、 異なっていれば、新しいデータとして INSERT INTO文で テーブルにデータを登録する。 同じであれば、登録しない。 という処理がしたいです。 $sql = "select * from hoge where url= $page_uri"; $kakunin = mysql_query($sql , $db ); if ( $page_uri == $kakunin ){ //同じデータならスキップ break; } else{ $sql = mysql_query("INSERT INTO hoge VALUES (0,'$page_uri','$pon')"); と書いているのですが、以下のエラーが出てしまいます。。 Fatal error: Cannot break/continue 1 level in /www/xx.php on line 42 これは、breakは使えないよ ってことでしょうか? breakでなくても やりたいことが実現できればこだわりはないのですが、、 アドバイスよろしくお願いします。

    • 締切済み
    • PHP
  • dbに登録したデータをphpのプルダウンに表したい

    mysqlに登録したデータをphpのプルダウンに表示させたいです。 database [db1] table [unit]カラム group varchar(20) に登録しているグループ名5個を選べるようにしたいのですが知恵を拝借できますでしょうか。 <?php $s=mysql_connect("サーバー名","アカウント","パスワード") or die("失敗しました"); print "接続OK"<BR>; mysql_select_db("db1"); ここから先が知りたいです。 みなさまのお知恵を拝借したいです。 ぜひよろしくお願い致します。

    • ベストアンサー
    • PHP
  • GooglemapAPIで現在地をMysqlへ登録

    こちらでよろしかったがどうか分かりませんが、外しておりましたらすみません。 GoogleMaps API v3で、watchPositionを使い、iPhoneで現在地を取得する スクリプトを試しています。 一定間隔で現在地を測位し、iphone上に緯度経度は表示されていますので、 これをMySQLデータベースに登録していき、ロガーのような事をしたいと思っています。 DBへ登録するPHPスクリプトは作成済みで、例えば 『sample.php?lat=00.0000&lng=000.00000』と アクセスするとDBへは登録されますが、Javascriptからこちらへのデータをどう渡して良いのかが 分かりません。 どなたかお詳しい方、ご教授宜しくお願い致します。

  • DBのデータを表示させたい

    こんにちは PHPは今まで他人様の作成したスクリプトをそのまま使用したりちょこっと改造するだけでしたが、 現在必要としているスクリプトが探してもなさそうなので 自分で作成しようと決めて勉強を始めましたが どうしても悩んでいる部分があるのでご教授いただけると助かります。 環境は以下の通りです apache 1.3.37 PHP 5.25 MySQL 5.0 現在の状況なのですが `uid` mediumint(8) NOT NULL auto_increment, `user` varchar(25) NOT NULL, `pass` varchar(32) NOT NULL, `place` varchar(32), `sev` varchar(32), `date` varchar(25) NOT NULL, `regdate` datetime, `gate` varchar(25), `statue` varchar(25), PRIMARY KEY (`uid`), KEY `user` (`user`), KEY `date` (`date`), KEY `gate` (`gate`), KEY `statue` (`statue`) このようなテーブルが作成してありユーザーがフォームから登録したものをDBに保存していき、 1ページに数件分ずつの表示で何ページにもわたって 全件を表示するようなページをです。 フォームからDBへのデータの保存はできるようになりましたが 表示をする際に何件もの表示をするのにどういった手法で行うのがいいのかで悩んでいます。 現在は最新の1件だけ表示されるようなページになっています。 <?php include ("config.php"); $con = mysql_connect($dbhost, $dbuser, $dbpasswd); $selectdb = mysql_select_db($dbname, $con); $sql = "SELECT * FROM testdata ORDER BY regdate DESC"; $rst = mysql_query($sql, $con); $datanum = mysql_num_rows($rst); if ($datanum < 1) { print("データがありません。<br>\n"); print("登録は <a href=\"regist.php\">こちら</a> から"); mysql_close($con); exit; } $data = mysql_fetch_array($rst) ?> <table width="95%" border="0" cellspacing="1"> <tr> <td><table width="100%" border="0"> <tr <td colspan="6">登録情報</td> </tr> <tr> <td width="13%">登録者名</td> <td width="20%"> <?=$data['user']?> </td> <td width="13%">場所</td> <td width="20%"> <?=$data['place']?> </td> <td width="13%">サーバー</td> <td width="20%"> <?=$data['sev']?> </td> </tr> <tr> <td>登録日時</td> <td> <?=$data['regdate']?> </td> <td>日時</td> <td> <?=$data['date']?> </td> <td colspan="2">&nbsp;</td> </tr> </table></td> </tr> <tr> <td><table width="100%" border="0"> <tr> <td colspan="5">状態</td> </tr> <tr> <td width="16%">ゲート</td> <td width="30%"><?=$data['gate']?></td> <td>&nbsp;</td> <td width="16%">statue</td> <td width="30%"><?=$data['statue']?></td> </tr> </table></td> </tr> </table> DBから何件分もの表示をするにはDBのデータを連想配列にするのかなと思っているのですが いまいちどんな手法が良いのかわかりません。よろしければご教授くださいませ。

    • ベストアンサー
    • PHP
  • PHPでMySQLに登録されているデータのMAXと他のフィールドからデータの取得

    PHPでMySQLの最新のデータを取得し、そのデータのデータ番号を取得しようとしています。 テーブルは ID(INT型、AUTO_INCREMINT) | name(VARCHAR型) | t_touroku(DATATIME型) 1 | test1 | 2005-12-1 12:11:10 2 | TEST2 | 2005-12-2 12:56:10 となっています。 ここから最新のデータt_tourokuを検索しそのデータのIDを取得したいのですが、どうにもうまいことできません。 この場合ですと、IDの2を取りたいんです・・・。 MAXを使えばいけると思ったのですが、最新のデータしか取得できずIDを取得できませんでした・・・。 どうか、お知恵を貸して下さい。 よろしくお願いします。 バージョンは PHP 4.3.10 MySQL 3.23.58 です。

    • ベストアンサー
    • PHP
  • PHPの登録エラーの原因

    初めまして。今日からPHPの勉強を開始したのですが、以下のエラーメッセージが対処できずに困っています。 どなたか原因をご教授頂けませんか。 宜しくお願い致します。 Fatal error: Call to undefined function mysql_connect() in C:\touroku.php on line 6 【MariaDBの作業】 \mysql -u root -p Enter password: ******** MariaDB [(none)]> create database touroku; MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | touroku | +--------------------+ MariaDB [(none)]> use touroku; Database changed MariaDB [touroku]> create table touroku_tbl( -> id int not null auto_increment, -> name varchar(20) not null, -> email varchar(20) not null, -> primary key(id) -> ); Query OK, 0 rows affected (0.31 sec) MariaDB [touroku]> show tables; +-------------------+ | Tables_in_touroku | +-------------------+ | touroku_tbl | +-------------------+ 1 row in set (0.00 sec) MariaDB [touroku]> insert into touroku_tbl(name, email) values('test', 'test@local'); Query OK, 1 row affected (0.12 sec) MariaDB [touroku]> select * from touroku_tbl; +----+------+------------+ | id | name | email | +----+------+------------+ | 1 | test | test@local | +----+------+------------+ 1 row in set (0.00 sec) MariaDB [touroku]> 【touroku.html】 <html> <body> <form action = "touroku.php" method="post"> 名前:<input type="text" name="nm"> E-mail:<input type="text" name="email"> <input type="submit" name="exec" value="登録"> </form> </body> </html> 【touroku.php】 <html> <body> <?php //データベースに接続 $con = mysql_connect('127.0.0.1', 'root', 'password'); if (!$con) { exit('データベースに接続できませんでした。'); } //データベースを選択 $result = mysql_select_db('touroku', $con); if (!$result) { exit('データベースを選択できませんでした。'); } $result = mysql_query('SET NAMES utf8', $con); if (!$result) { exit('文字コードを指定できませんでした。'); } $nm = $_REQUEST['nm']; $email =$_REQUEST['email']; //フォームで送られてきたデータでINSSERT文を作成 $result = mysql_query("insert into touroku_tbl(name, email) values('$nm', $email)" , $con); if (!$result) { exit('データを登録できませんでした。'); } //SQLを実行 //if (!$res = mysql_query($sql)) { //echo "SQL実行時エラー" ; //exit ; //} //データベースから切断 $con = mysql_close($con); if (!$con) { exit('データベースとの接続を閉じられませんでした。'); } ?> <p>登録が完了しました。<br /><a href="index.html">戻る</a></p> </body> </html>

    • ベストアンサー
    • PHP
  • MySQLに格納できない

    INSERT INTOの構文が間違っていると、エラーが出ます。 DB接続はできています。 テーブル名:db_touroku フィールド: id mailaddress created(登録日) としています。 ユーザーにはテキストのフォームにメールアドレスのみを入力してもらい、「submit」でtouroku.phpのページへ移動。 idにはDBでauto_increment をつけています。 //touroku.php $sql = sprintf('INSERT INTO db_touroku VALUE("%d" ,"%s" ,"%s"', 0,mysql_real_escape_string($_SESSION['join']['mailaddress']),date('Y-m-d H:i:s')); mysql_query($sql,$link) or die(mysql_error()); 構文が間違っているでしょうか? どなたかご教授お願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう