ブラウザにテーブルのレコードが表示されない

このQ&Aのポイント
  • CodeIgniterを使用して、MySQLのテーブルの一覧をブラウザ上で表示させる際に、レコードが表示されない問題が発生しています。
  • 質問のPHPコードを見ると、テーブルの情報が取得されていない可能性が高いです。
  • 対処法としては、$this->db->get('blogs')->result_array() の部分を確認し、テーブルの情報が正しく取得されているか確認する必要があります。
回答を見る
  • ベストアンサー

ブラウザにテーブルのレコードが表示されません

初めまして。 PHP初心者のものです。 CodeIgniterを使用して、MySQLのテーブルの一覧をブラウザ上で表示させていと思っています。ですが、画面は表示されるのですが、レコードの部分がまったく表示されず困っています。 よろしければご教授のほど、よろしくお願いいたします。 #controllers/helo.php <?php class Helo extends CI_Controller { function Helo() { parent::__construct(); } public function index () { $data = array ('head_title' => 'index', 'content' => 'index'); $data['records'] = $this->db->get('blogs')->result_array(); $this->load->view('layout/mylayout', $data); } } #views/index.php <h1>Blog一覧</h1> <p>テーブルの一覧です</p> <table> <tr> <th>ID</th> <th>DATE</th> <th>TITLE</th> <th>CONTENT</th> </tr> <?php foreach($records as $row): ?> <?= "<tr><td> {$row['id']} </td>" ?> <?= "<td>" . date ('Y/m/d', $row['timestamp']) . "</td>" ?> <?= "<td> {$row['title']} </td>" ?> <?= "<td> {$row['content']} </td></tr>" ?> <?php endforeach; ?> </table> #views/layout/mylayout.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title><?= $head_title ?></title> <link rel="stylesheet" type="text/css" href="/igniterapp/css/mylayout.css" /> </head> <body> <table class="content_table"> <tr><td> <?php $this->load->view('layout/header.php'); ?> </td></tr> <tr><td> <?php $this->load->view($content); ?> </td></tr> <tr><td> <?php $this->load->view('layout/footer.php'); ?> </td></tr> </table> </body> </html> #views/layout/footer.php <p class="footer">this is Footer.</p> #views/layout/header.php <p class="header"> this is header.</p> #config/database.php $active_group = 'default'; $active_record = TRUE; $db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'mysql'; $db['default']['password'] = 'password'; $db['default']['database'] = 'igniter_db'; $db['default']['dbdriver'] = 'mysql'; $db['default']['dbprefix'] = ''; $db['default']['port'] = '3306'; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = FALSE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'] = 'utf8'; $db['default']['dbcollat'] = 'utf8_general_ci'; $db['default']['swap_pre'] = ''; $db['default']['autoinit'] = TRUE; $db['default']['stricton'] = FALSE; ■環境 ・osはCentOS6.2です。 ・CodeIgniterのバージョンは2.1.2です。 ・PHPのバージョンは5.3.3です。 ・MySQLのバージョンは5.5.25です。 個人的には「$this->db->get('blogs')->result_array();」 の部分でテーブルの情報が取得されていないので、後のforeach文が実行されず終了しているのだと思うのですが、対処法がわからない状態です。(見当違いでしたら申し訳ございません) 分かりにくい文章で申し訳ございませんが、よろしくお願いいたします。

  • PHP
  • 回答数4
  • ありがとう数2

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

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

スミマセン。セミコロンが抜けてましたね。 $query = $this->db->get('blogs'); です。 ログファイルなしの開発はあり得ないので、 パーミッションなどを確認して、ログファイルの出力ができるようにしてみてください。 ログファイル・ログディレクトリは、Webサーバデーモンからの書き込み権限が必要です。 config/config.phpの「$config['log_path'] = '';」設定が空であれば、デフォルトの 「application/logs/」ディレクトリにログファイルが作成されます。 「$config['log_path']」にパスを設定しているのであれば、 そのパスにログファイルが作成されます。(書き込み権限があれば) 下記の設定で、データベース関連のエラーが出力されます。 === [ config/database.php ] ======================= : $db['default']['db_debug'] = TRUE; : ==============================================

ogikei1415
質問者

お礼

セミコロンをつけたらなんと表示できました! ありがとうございます! そして6cc70ef9d187のおっしゃる通りlogsのパーミッションを書き換えたところ、ログも正常に作成されました。 本当にありがとうございます。 ただ少し腑に落ちない点があるのですが、6cc70ef9d187が最初におっしゃっていた3番の自動でDBを読み込む設定では、 何故正常にレコードが表示されなかったのでしょうか。 そこだけが未だに疑問です。

その他の回答 (3)

回答No.3

下記のように、ログ出力して「APPPATH/application/logs/log-2012-07-??.php」ログファイルを確認してみてください。 === [ config/database.php ] ======================= : $db['default']['db_debug'] = TRUE; : ============================================== === [ models/blogs.php ] ========================= class Blogs extends CI_Model { public function __construct() { parent::__construct(); $this->load->database(); } public function getBlogs() { $query = $this->db->get('blogs') // 検索件数ログ出力 log_message('debug', 'NUM ROWS: ' . $query->num_rows()); // SQLログ出力 log_message('debug', 'SQL: ' . $this->db->last_query()); if ($query->num_rows() > 0) { return $query->result_array(); } return FALSE; } } ===============================================

ogikei1415
質問者

補足

ご回答ありがとうございます。 プログラムを上記のように変更しました。 すると、ブラウザでは Parse error: syntax error, unexpected T_STRING in /var/www/html/igniterapp/application/models/blogs.php on line 15 というメッセージが出ました。 また、$config['log_threshold'] = 0;だったので、$config['log_threshold'] = 4;にconfig.phpを変更いたしました。 しかし、/application/logs/配下にindex.phpしか存在しておらず、ログファイルが作成されていない状態です。 php.iniも見てみたのですが、特に変化はありませんでした。 データベースの設定などがおかしいのかと思い、試しにwordpressをインストールしてみたのですが、 正常にデータベースに接続でき、インストールすることができました。 何度も申し訳ございません。 よろしくお願いいたします。

回答No.2

シェルコマンドで以下を確認してみてください。 mysqldデーモンがTCP3306ポートでリッスンしているか $ netstat -ln |grep 3306 mysqldデーモンにTCPで接続できるか $ mysql -u mysql --password=password -P 3306 -h localhost igniter_db

ogikei1415
質問者

補足

お返事ありがとうございます。 どちらもうまくいく状態です。 $ netstat -ln |grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN $ mysql -u mysql --password=password -P 3306 -h localhost igniter_db Welcome to the MySQL monitor. ・ ・ ・ 色々調べてみたのですが原因が全くわかりません・・・。 よろしくお願いいたします。

回答No.1

データベースに接続されていません。 データベースに接続するには、 1.CI_Loaderでロードする。 $this->load->database(); 2.モデルクラスロード時に接続する。 $this->load->model('blogs', 'blogs', TRUE); 3.autoload.phpで自動接続する。 (お勧めしません。) の3通りあります。 通常は、モデルクラス内で、(1.)を実行します。 # models/blogs.php <?php class Blogs extends CI_Model { public function __construct() { parent::_construct(); $this->load->database(); } public function getBlogs() { return $this->db->get('ci_sessions')->result_array(); } } #controllers/helo.php <?php class Helo extends CI_Controller { public function __construct() { parent::__construct(); } public function index () { $this->load->model('blogs'); $data = array ('head_title' => 'index', 'content' => 'index'); $data['records'] = $this->blogs->getBlogs(); $this->load->view('layout/mylayout', $data); } } モデルクラスの使い方はこちらにあります。 http://www.ci-guide.info/basic/model/ http://www.ci-guide.info/practical/core/model/

参考URL:
http://www.ci-guide.info
ogikei1415
質問者

補足

ご回答ありがとうございます。 6cc70ef9d187に教えていただいた1の方法と3の方法を試してみましたが、 結果は変わりませんでした。 データベースやテーブルの作成が間違えているのでしょうか? mysql -umysql -p >show databases; >show tables; コマンドで、igniter_dbとblogsテーブルの確認はできます。 情報が少なくて申し訳ないのですが、もし何か考えられる原因がございましたらご教授願えればと思います。 よろしくお願いいたします。

関連するQ&A

  • Codeigniterでのviewへの受け渡し

    Codeigniterを使用しています。 databaseからデータを取得するまでは出来るのですが、 viewへの受け渡しと表示がうまくいきません。 データベースへの接続は出来ていますので、単にソースの不備 と思いますが、どこが悪いのかよく分かりません。ご教授頂きたく お願いいたします。 現在の仕様 【controllers/tel2.php】 <?php class Tel2 extends CI_Controller{ function index() { // データベースを初期化(データの取得:ActiveRecord) $this->load->database(); // SQLの実行 $this->db->select('id, prefecture_name,prefecture_name_en'); $query = $this->db->get('prefectures'); // 結果を表示 foreach( $query->result() as $row ){ $data['prefectures'] = array('id, prefecture_name,prefecture_name_en'); $this->load->view('tel2_view', $data); } } } ?> 【views/tel2_view.php】 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>tel2</title> </head> <body> <table width="700" border="1" cellspacing="2" cellpadding="2"> <tr> <th scope="col">id</th> <th scope="col">県名</th> <th scope="col">en</th> </tr> <tr> <td><?=$row['id']?></td> <td><?=$row['prefecture_name']?></td> <td><?=$row['prefecture_name_en']?></td> </tr> </table> </body> </html> としてみました。 フレームは表示され、データの数だけ繰り返されているのですが、 肝心なデータの内容が下記のようになります。 【id欄】 A PHP Error was encountered Severity: Notice Message: Undefined variable: row Filename: views/tel2_view.php Line Number: 18 【prefecture_name欄】 Severity: Notice Message: Undefined variable: row Filename: views/tel2_view.php Line Number: 19 【prefecture_name_en欄】 Severity: Notice Message: Undefined variable: row Filename: views/tel2_view.php Line Number: 20 上記がデータの数だけ繰り返されます。(内容に変化なし) database接続は下記となります。 (xamppのためパスワードは設定していません) $active_group = 'default'; $active_record = TRUE; $db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'root'; $db['default']['password'] = ''; $db['default']['database'] = 'tel'; $db['default']['dbdriver'] = 'mysql'; $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = FALSE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'] = 'utf8'; $db['default']['dbcollat'] = 'utf8_general_ci'; $db['default']['swap_pre'] = ''; $db['default']['autoinit'] = TRUE; $db['default']['stricton'] = FALSE; いろいろ弄ってみたのですが、うまくいきません。 controllerを下記のようにするとデータが表示されますので、データの取得までは 出来ているようです。 viewへの受け渡しでミスがあるのだと思います。 <? class Tel2 extends CI_Controller{ function index() { // データベースを初期化(データの取得:ActiveRecord) $this->load->database(); // SQLの実行 $this->db->select('id, prefecture_name,prefecture_name_en'); $query = $this->db->get('prefectures'); // 結果を表示 foreach( $query->result() as $row ){ echo $row->id; echo $row->prefecture_name; echo $row->prefecture_name_en; } } } いろいろ試してみたのですがうまくいきません。 お手数ですがどこに間違いがあるのかご教授願います。 環境は以下のとおりです。 xampp for windowsXP codeigniter2.0.3 Apache/2.2.21 (Win32) PHP/5.3.8 mysql5.5.16

    • ベストアンサー
    • PHP
  • マウスオーバー時テーブルの背景色を変えているのですが

    質問させていただきます。 テーブルを作成してマウスオーバーしている行の バックカラーを変えるプログラムを作成しています。 ですが、rowspanを使用すると、rowspanが別の行 扱いになり、バックカラーが変えられなくなってしまいました。 一緒にしたい場合どうしたら良いでしょうか。 もしわかりましたらご教授下さい。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <meta http-equiv="Content-Style-Type" content="text/css"> <script type="text/javascript"><!-- firstcolor="#ffffff"; //初めの色 nextcolor="#eeeeee"; //変更後の色 function table_row(table_id){ tobj=document.getElementById(table_id).tBodies[0]; for (i=0; i<tobj.rows.length;i++){ tobj.rows[i].onmouseover=function(){this.style.backgroundColor=nextcolor}; tobj.rows[i].onmouseout=function(){this.style.backgroundColor=firstcolor}; } }// --></script> </head> <body> <table border=1 id="data_table2"> <thead> <tr> <th>No</th><th>DATA1</th><th>DATA2</th><th>DATA3</th> </tr> </thead> <tbody> <tr> <td>No</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td> </tr> <tr> <td>No</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td> </tr> <tr> <td rowspan="2">&nbsp;</td><td rowspan="2">&nbsp;</td><td>DATA</td><td>DATA</td> </tr> <tr> <td colspan="2">&nbsp;</td> </tr> <tr> <td>No</td><td>DATA</td><td>DATA</td><td>DATA</td> </tr> </tbody> </table> <script>table_row("data_table2")</script> </body> </html>

  • tableの外枠をCSSで表示させない方法

    HTMLで作ったテーブルの外枠の縦線をCSSで表示させないようにしたいのですが可能でしょうか? HTMLはさわらずにできる限りCSSでやりたいと思い、いろいろ試してみましたがうまくいきませんでした。 線種はsolidを使いたいです。 よろしくお願いいたします。 <html> <head> <title>css table</title> <style type="text/css"> <!-- table.sample { width:550px; height:auto; border:solid 1px; border-collapse:collapse; border-left:none; border-right:none; } .sample th { width:100px; border:solid 1px; } .sample tr { border:solid 1px; } .sample td { border:solid 1px; } --> </style> </head> <body> <table class="sample" frame="hsides"> <tr> <th scope="row">&nbsp;</th> <td>&nbsp;</td> <td></td> <td></td> </tr> <tr> <th scope="row">&nbsp;</th> <td>&nbsp;</td> <td></td> <td></td> </tr> <tr> <th scope="row">&nbsp;</th> <td>&nbsp;</td> <td></td> <td></td> </tr> <tr> <th scope="row">&nbsp;</th> <td>&nbsp;</td> <td></td> <td></td> </tr> <tr> <th scope="row">&nbsp;</th> <td>&nbsp;</td> <td></td> <td></td> </tr> </table> </body> </html>

    • ベストアンサー
    • CSS
  • 複数のレコードをimplodeでまとめる方法

    ほんと度々すいません…。 http://oshiete1.goo.ne.jp/qa3574682.htmlで一度解決したのですが、私の質問の仕方が悪く、結局実用できなかったので再度質問させてください。 上記URLでやったことに、更にフィールドが増えた場合の記述方法についてです。 table1 【ID|field1】 [1|AAA] [1|BBB] [2|CCC] [3|DDD] [3|EEE] [3|FFF] table2 【ID|field2】 [1|ooo] [2|ppp] [2|qqq] [2|rrr] [3|sss] [3|ttt] ↑構造が同じだけど内容が違うテーブルが5つあります(table1~table5まで)。そしてこれらのテーブルをクエリでは↓ <table> <tr><th>ID</th>   <th>field1</th>   <th>field2</th>   <th>field3</th>   <th>field4</th>   <th>field5</th></tr> <tr><td>1</td>   <td>AAA<br>BBB</td>   <td>ooo</td>   ・・・</tr> <tr><td>2</td>   <td>CCC</td>   <td>ppp<br>qqq<br>rrr</td>   ・・・</tr> <tr><td>3</td>   <td>DDD<br>EEE<br>FFF</td>   <td>sss<br>ttt</td>   ・・・</tr> </table> というように表示するのが理想です。 一応自分で考えましたが、できなかったので…お願いします。 ============================== 一応、前回http://oshiete1.goo.ne.jp/qa3574682.htmlにて頂いた回答をまとめたコードが↓です。 (table1のみの場合だとこうなります)→mr_araki様に感謝しております。 $query = mysql_query($sql); $rows = array(); while ($row = mysql_fetch_assoc($query)) {   if (!isset($rows[$row[ID]])) {      $rows[$row[ID]] = array();   }   $rows[$row[ID]][] = $row[field1]; } echo "<table>\n"; echo "<tr><th>ID</th><th>field1</th></tr>\n"; foreach ($rows as $id => $row) {   echo "<tr><td>" .$id. "</td><td>" .implode('<br>', $row). "</td></tr>\n"; } echo "</table>";

    • ベストアンサー
    • PHP
  • mysql データ表示

    下記のプログラムは詳細を選択すると選択されたデータをいま1件ずつ表示しているのですが 氏名と住所を編集できるようにテキストボックスにしたいまた選択されたデータを初期値として取りたいです 表示されるのですが入力できません どこにフォームなどの命令を入れればいいですか 全体表示のtop.php <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","admin","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> <th>詳細</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "<td><a href=\"exit.php?id=" . $row['番号'] . "\">詳細</a></td>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html> 詳細表示の exit.php <html> <body> <table border='1'> <BR><BR> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr> <?php $id=(isset($_GET["id"]))?((int) $_GET["id"]):0; $con=mysqli_connect("localhost","root","admin","db_test"); $result = mysqli_query($con,"SELECT `番号`,`氏名`,`住所` FROM tbl_test where `番号`={$id}"); while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) { print "<tr>"; print "<td>".htmlspecialchars($row["番号"])."</td>"; print "<td>".htmlspecialchars($row["氏名"])."</td>"; print "<td>".htmlspecialchars($row["住所"])."</td>"; print "</tr>"; } ?> </table> <BR><BR> <A HREF="http://localhost/top.php"> <INPUT TYPE = "SUBMIT" VALUE = "一覧へ戻る"></A> </body> </html>

  • ブラウザによってテーブルのセルの高さが変わる

    質問させて頂きます。 現在、テーブルを使用して表を作っているのですが、 ブラウザによってセルの高さが変わってしまいます。 safariでは思った通りのレイアウトになるのですが、 chrome、Firefoxでは [ height ] の値が反映されていないのか、 崩れてしまいます。 添付は希望するレイアウト(safariではこのように表示されます)です。 ソースを記載しますので、どなたかご教示お願い致します。 --- html --- <table class="hogs" cellspacing="5"> <tr> <td width="180" height="184" rowspan="3"><img src="img/001.gif" width="180" height="184" alt=""/></td> <th height="22">項目1</th> <td>文章1</td> </tr> <tr> <th height="22">項目2</th><td height="22">文章2</td> </tr> <tr> <th height="140" valign="top">項目3</th><td valign="top">文章3</td> </tr> </table> --- CSS --- table.hoge { background-color: rgba(50,50,50,0.3); width: 640px; height: 184px; margin: 0 auto 18px; padding: 10px; } table.hoge th { height: 22px; background-color: #7ac0c9; width: 80px; } table.hoge td { padding: 0 20px; }

    • ベストアンサー
    • HTML
  • 重複レコードをグループ化したいけど…。

    度々お世話になってます。 table1 【ID|フィールド1】 [1|AAA] [1|BBB] [2|CCC] [3|DDD] [3|EEE] [3|FFF] というようなテーブルがあるとして、クエリでは <table> <tr><td>1</td><td>AAA<br>BBB</td></tr> <tr><td>2</td><td>CCC</td></tr> <tr><td>3</td><td>DDD<br>EEE<br>FFF</td></tr> </table> …という形で表示したいのです。(理想です) 今までいろいろ試してみて、 $sql = " SELECT ID,フィールド FROM table1 GROUP BY ID "; に行き着きましたが、これだと <table> <tr><td>1</td><td>AAA</td></tr> <tr><td>2</td><td>CCC</td></tr> <tr><td>3</td><td>DDD</td></tr> </table> というように表示され、表示されないレコードが出来てしまいます。 GROUP BYが余計!と言われそうですが、同じIDが複数並ぶのを避けたいのです。 ソースコードは、 print "<table>\n"; print "<tr><th>ID</th><th>フィールド</th></tr>\n";  while( $row = mysql_fetch_array($result) ) {  print "<tr><td>$row[ID]</td><td>$row[フィールド]</td></tr>\n";  } print "</table>\n"; になっている状態です。 $row[フィールド]を書き換えればいいのかな?と思いますが、検索してもそれらしいものは見当たらなかったので質問させていただきました。 心当たりのある方、よろしくおねがいします。

    • ベストアンサー
    • PHP
  • table のバックグラウンドカラー

    background-color は継承されないものだと認識しております。 ・HTML内容 <html> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"> <title>検証</title> </head> <table border="1" background="red"> <tr> <th>授業内容</th> <th>講義</th> </tr> <tr> <td>1時間目</td> <td>国語</td> </tr> <tr> <td>2時間目</td> <td>数学</td> </tr> <tr> <td>3時間目</td> <td>英語</td> </tr> <tr> <td>4時間目</td> <td>科学</td> </tr> </table> </body> </html> ====ここまで==== ボタンを押す。⇒setStyleが動く⇒tableの背景が赤色で塗られる。動作までは分かるのですが、 td、thの部分の背景まで赤色になっています。 これは、テーブルと言う枠に、赤色が塗られ、その上にtd、thが置かれる。 結果、td、thの背景赤色は (1)「td、thのbackgroundは指定していないため、デフォルトのtransparentが有効で、 テーブルの背景赤色が透けて見えている」 (2)「td、thに、tableのbackgroundが継承されて、赤く塗りつぶされていないということ」 の考えに間違いがないか確認させて頂きたいのです。 ご教授お願いします。

    • ベストアンサー
    • CSS
  • テーブルの背景を変える

    js(外部ファイル)から呼び寄せる方法で1段目と3段目のセルが赤、2段目と4段目のセルが青にする方法 分かりやすくいいますと、奇数が赤、偶数が青になる 方法を教えてもらいたいです。 <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <table border="1"> <col span="6" width="85" align="center"> <th>ID</th> <th >NO</th> <th >Name</th> <th >身長</th> <th>体重</th> <th >その他</th> </table> <table border="1"> <col span="6" width="85" align="center"> <tr> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>2</td> <td>2</td> <td>2</td> <td>2</td> <td>2</td> <td>2</td> </tr> <tr> <td>3</td> <td>3</td> <td>3</td> <td>3</td> <td>3</td> <td>3</td> </tr> <tr> <td>4</td> <td>4</td> <td>4</td> <td>4</td> <td>4</td> <td>4</td> </tr> </table> </body> </html>

  • php + mysql でフォーム作成時のエラー

    データベースから取り出したデータをラジオボタンで選択し、それをデータベース(別のテーブル)に追加させる機能を作りたいです。 非常に初歩的なことだとは思うのですがご教授ください。 MySQL 4.0.27 PHP 5.2.11 <FORM ACTION="cone3.php" METHOD="post"> <?php $srv = ""; // サーバー名 $id = ""; // ユーザーID $passwd = "; // パスワード $dbn = ""; // データベース名 $sql = "SELECT code, lname, lecturer, kind, gradetype FROM Lecture"; // SQL文 // データベースに接続する $db = mysql_connect($srv,$id,$passwd); mysql_select_db($dbn,$db); $rs = mysql_query($sql,$db); //--- テーブルのレイアウト --- 開始 -----------------------> print("<TABLE><TR>"); print("<TR><th> </th><th>講義名</th><th>教員</th><th>科目区分</th><th>配当学年</th></tr>"); while($row = mysql_fetch_array($rs)) { print '<tr><td><input type="radio" name="regist" value="$row['code']"></td>'; print '<td>' . $row['lname'] . '</td>'; print '<td>' . $row['lecturer'] . '</td>'; print '<td>' . $row['kind'] . '</td>'; print '<td>' . $row['gradetype'] . '</td>'; print '</tr>'; print ("</TR>"); } print("</TABLE>"); print_r($_POST); echo "<br />\n"; mysql_free_result($rs); mysql_close($db); //--- 終了 ---> ?> <input type="submit" name="submit" value="送信"> </form> 以上のようなソースでラジオボタンで配列の$row[code]の値を送りたいんですがうまくいきません。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう