PHP・MYSQL超初心者、登録画面でデータ保存とテーブル表示ができない

このQ&Aのポイント
  • PHP・mysql初心者が登録画面で氏名・年齢を入力し、データを保存する方法がわからない。
  • データ保存後に保存したデータをテーブルで表示させる方法がわからない。
  • サイトや書籍を探したが詳しい情報がなく、解決策を教えてほしい。
回答を見る
  • ベストアンサー

PHP・MYSQL超初心者です。

PHP・mysql初心者です。掲示板を自分で考えて作っているのですが、 わからないところがあります。PHPを勉強してから、まだ月日が 経っていないので基本的なことでつまづいています。 登録画面で氏名・年齢を入力し、登録をクリックするとmysqlに データが保存され、そのデータを一覧で表示させたいです。 つまづいている所です。 1)mysqlにデータを保存する所 2)no・氏名・年齢をテーブルで表示する所 (noは自動的に1~順に振りたいのですが) 実用的ではないかと思われますが、宜しくお願い致します。 サイトや書籍で探しては見たのですが、基本的なことだと思う ので、あまり詳しく載っているのがなく困っています。 どなたかご教授下さい。 *form.html <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <form method="post" action="form.php"> 氏名:<input type="text" name="simei"><br> 年齢:<input type="text" name="tosi"><br> <input type="submit" value="登録"><br> </form> </body> </html> *form.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <? $simei=$_POST["simei"]; $tosi=$_POST["tosi"]; $db=mysql_connect("サーバーアドレス","ユーザー名","パスワード") or die("接続失敗"); print("デ―タベースサーバーに接続できました<br>"); mysql_select_db("データベース名")or die("データベースが見つかりません".mysql_error()); print("データベースに接続しました<br>"); //ここから下の記述方法がわかりません $a="insert into mihon_list(simei,tosi)values('$simei','$tosi');"; mysql_query($a)or die("命令が違います"); ?> 登録しました! </body> </html> *itiran.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <table width=70% border> <tr><th>no</th><th>氏名</th><th>年齢</th></tr> </table> </body> </html>

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

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

まず、 $a="insert into mihon_list(simei,tosi)values('$simei','$tosi');"; とした$aをprintして、自分が期待した内容になっているか確認してください。またそのSQL文をphpMyAdminで実行させてみれば「SQL文として正しいかどうか」は確認できると思います。 SQL文の最後のセミコロンは不要です(というか付けてはいけません)。 http://www.php.net/manual/ja/function.mysql-query.php また列tosiが数値型であれば引用符で括っているのは誤りですが、これはテーブル定義がないと判断出来ません。 あと、MySQLへの接続後にmysql_set_charsetを実行すること、投稿されたデータを使うときはmysql_real_escape_stringを通すことを『必ず』行ってください。 http://www.php.net/manual/ja/function.mysql-set-charset.php http://www.php.net/manual/ja/function.mysql-real-escape-string.php >noは自動的に1~順に振りたい 列noをauto_incremantで定義しておくだけでいいです。MySQLのマニュアルを読んでください。 http://dev.mysql.com/doc/refman/5.1-olh/ja/example-auto-increment.html

42ceo1014
質問者

お礼

ご回答ありがとうございました。 求める結果を得ることができました。

関連するQ&A

  • PHP初心者です。

    PHP・Mysql超初心者です。掲示板を自分で考えて作っているのですが、 わからないところがあり困っています。 管理登録画面で管理noと品名を入力し、登録をクリックするとMysqlに データを保存します。 管理表の画面で、品名(上記のMysqlから品名をセレクトボックスで 表示)と注文数を入力し、Mysqlに保存したいのですが、その命令の 所でエラーが出ます。 書き方やセキュリティ等は無視して下さい。 どなたかご教授下さい。 //管理登録画面 *kanri.html <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <form method="post" action="touroku.php"> <h3>管理登録</h3><br> NO:<input type="text" name="no"><br><br> 品名:<input type="text" name="hinmei"><br><br> <input type="submit" value="登録"> </form> </body> </html> *touroku.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <? $no=$_POST["no"]; $hinmei=$_POST["hinmei"]; $db=mysql_connect("***","***","***") or die("接続失敗"); print("デ―タベースサーバーに接続できました<br>"); mysql_select_db("***")or die("データベースが見つかりません".mysql_error()); print("データベースに接続しました<br>"); $a="insert into kanri_list(no,hinmei)values('$no','$hinmei');"; mysql_query($a)or die("命令が違います"); $a="select * from kanri_list;"; $kekka=mysql_query($a)or die("命令が違います"); mysql_close($db); ?> 登録しました!<br><br> </body> </html> //管理表 *kanri.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <form method="post" action="kanri1_1.php"> <h2>管理表</h2><br> 品名:<select name="kanri"> <? $kanri=$_POST["kanri"]; $db=mysql_connect("***","***","***") or die("接続失敗"); mysql_select_db("***")or die("データベースが見つかりません".mysql_error()); $a="select * from kanri_list;"; $kekka=mysql_query($a)or die("命令が違います"); while($b=mysql_fetch_array($kekka)){ print("<option value='".$b[1]."'>".$b[1]."</option>\n"); } mysql_close($db); ?> </select> <br> 注文数:<input type="text" name="kazu"><br> <input type="submit" value="登録"> </form> </body> </html> 上記の登録ボタンを押すと「命令が違います」とエラーが出ます。 *kanri1_1.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <? $kanri=$_POST["kanri"]; $kazu=$_POST["kazu"]; $db=mysql_connect("***","***","***") or die("接続失敗"); mysql_select_db("***")or die("データベースが見つかりません".mysql_error()); $a="insert into kanri1_list(kanri,kazu)values('$kanri',$kazu');"; mysql_query($a)or die("命令が違います"); $a="select * from kanri1_list;"; $kekka=mysql_query($a)or die("命令が違います"); mysql_close($db); ?> 登録しました!<br> </body> </html>

    • ベストアンサー
    • PHP
  • phpでmysqlに接続してデータを登録

    入力フォームをhtmlに作って それをidとpassを入力して それをmysqlに登録したいのですが うまくできません <html> <head> <meta http-equiv="Content-Type"content="text/html;charset="utf-8"/> <title>登録</title> </head> <body> <form action="touroku.php"method="post"> 登録id :<br /> <input type="text"name="id"size="10"value="" /><br /> パス:<br /> <input type="text"name="pass"size="10"value="" /><br /> <br /> <input type="submit"value="登録する" /> </form> </body> </html> という感じに 入力フォームは作ったのですが それからそれをmysqlにどうやって登録をするのかわかりません 詳しく解説されてわかりやすいサイトなどを教えてください もしくは教えてください

  • PHPからMySQLへの検索

    PHPからデータベースの検索について勉強をはじめたばかりで初歩的な質問かと思いますが過去ログを読んでも解決しなかったため質問いたします。 たとえばデータベースに教授名や授業名などを収納しておいてPHPで教授名を入力すると授業名等が表示されるようにするスクリプトを作ろうと思っているのですがうまくいきません。 少なくともMySQLで『田中』という教授名は入っているので検索すれば出てくるはずなのですが検索件数が0件になってしまいます。 テキストボックスに入力された情報を受け渡すところに原因がある気がするのですが原因はわかりませんでした。 おわかりになりましたらご教授ください http://iskiso3.hustle.ne.jp/test.php <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>テスト</title> </head> <form action="test.php" method="post"> 教授名を入力してください<br> <input type="text" name="namae" size="30"> <input type="submit" value="送信"> </form> <body> <?php $name = $_POST['namae']; $con = mysql_connect("mysql3.naid.jp" , "ID" , "PASS") or die ('DB Connection Error= '. mysql_error()); mysql_select_db("iskiso3", $con) or die ('DB Connection Error= '. mysql_error()); $sql = "select * from jugyou where kyouju like "*$name*" "; $result = mysql_query($sql,$con); if ( $result == $FALSE ) { die("Search Result: 0 items"); } $num = mysql_num_rows($result); print "<table><tr><td>科目名</td><td>教授名</td><td>内線</td></tr>"; for ($i=0; $i<$num; $i++) { $r = mysql_fetch_row($result); print "<tr><td>$r[0]</td><td>$r[1]</td><td>$r[2]</td></tr>"; } print "</table>"; ?> </body> </html>

    • ベストアンサー
    • MySQL
  • PHPとMySQLの文字化け

    DBを呼び出すPHPファイルを"Shift_JIS"で作りました。 ですが、レンタルサーバーのPHP、MySQLの文字コードが"EUC-JP"との事で、 全てのファイルに読込んでいるインクルードファイルの文字コードの記述をShift_JISからEUC-JPに変更しました。 ですが、DBから呼び出してるデータは文字化けしないのですが、その他がすべて文字化けしてしまい、JavaScriptも動かない状態です。 各phpのファイルは、最後に$body で書き出す記述をしているので、 $body = mb_convert_encoding($body,"SJIS","EUC-JP"); print $body; と実行してみてもだめでした。 どうか教えて下さい。よろしくお願い致します。 ---共通インクルードファイル---- 省略 //MySQL読み込み時の文字コードを設定 mysql_query("set names EUC-JP"); //データベースを選択します mysql_select_db($DBNAME,$db); function htmlheader($pagetitle) { //各ページのヘッダ部のHTMLを組み立てる $strret = "<DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'> <HTML> <HEAD> <META http-equiv='Content-Type' content='text/html; charset=EUC-JP'> <META http-equiv='Content-Style-Type' content='text/css'> <TITLE>$pagetitle </TITLE> </HEAD> <body border='0' cellpadding='0' cellspacing='0' width='100%'> <br>"; return $strret; } function htmlfooter() { //各ページのフッタ部のHTMLを組み立てる $strret = "<br> </BODY> </HTML>"; return $strret; } ?>

    • ベストアンサー
    • PHP
  • PHPについて(初心者)

    はじめまして、PHPの初心者の者です。xamppをインストールしたあと、様々な設定をしました。その後、お問い合わせフォームというプログラムのために2つファイルを作りました。 一つ目は、inquiery.htmlというファイルで、ソースコードは <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS"> <title>お問い合わせフォーム</title> </head> <body> ■お問い合わせ内容を入力してください。 <br> <form action="check_inquiry.php" method="POST"> お問い合わせタイトル: <br> <input type="text" name="title" size="50"> <br> <br> <input type="submit" value="お問い合わせ内容の確認"> </form> </body> </html> というHTMLファイルで、入力した内容を、下の「check_inquiry.php」に飛ばします。その後、 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>お問い合わせフォーム</title> </head> <body> ■お問い合わせ内容を確認してください。 <br> お問い合わせタイトル: <br> <?php echo $_POST['title']; ?> </body> </html> check_inquiry.phpファイルでinquiry.htmlファイルの内容を受け取ります。 うまくいけば、$_POST['title' ]: でinquiry.htmlの内容を受け取るはずなのですが、うまくいきません。 inquiry.htmlの送信ボタンをクリックすると、check_inquiry.phpのソースコード全体が表示されてしまいます。 何が間違っているのかわかりません。もし、詳しい方がいましたら、アドバイスいただけないでしょうか?よろしくお願いします。

    • 締切済み
    • PHP
  • PHP初心者です。基本的な所でつまづいています。

    PHP初心者です。基本的な所でつまづいています。  PHP初心者です。掲示板を自分で考えて作っているのですが、 わからないところがあります。PHPを勉強してから、まだ月日が 経っていないので基本的なことでつまづいています。 どなたかご教授下さい。 タイプ10代・20代・30代をselectから選び、食べ物をインプット し、radioボタンで好みを選びます。登録ボタンを押すとテキスト ファイルlist.txtに書き込まれ、form1.phpに10代・20代・30代の selectボタンを作り、その中から選び表示ボタンをクリック する。  もし、10代を選んだらそのデータだけを表示するように したいのですが、登録してテキストファイルに書き込まれては いるのですが、表示ボタンを押しデータを表示する所が、 わからないのでどなたかご教授下さい。    サイトや書籍で探しては見たのですが、基本的なことだと思う のですが、あまり詳しく載っているのがなく困っています。  もし、PHP初心者でもわかるサイト&書籍があれば教えて いただけませんか? form.html <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <form method="post" action="form.php"> タイプ:<select name="type"> <option value="10代">10代</option> <option value="20代">20代</option> <option value="30代">30代</option> </select><br><br> 食べ物:<input type="text" name="tabemono" size=10><br><br> <input type="radio" name="konomi" value="好き">好き <input type="radio" name="konomi" value="嫌い">嫌い <input type="radio" name="konomi" value="どちらでもない">どちらでもない<br><br> <input type="submit" value="登録"> </form> </body> </html> form.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <? $type=$_POST["type"]; $tabemono=$_POST["tabemono"]; $konomi=$_POST["konomi"]; $data=$type.",".$tabemono.",".$konomi."\n"; $f=fopen("list.txt","a"); fputs($f,$data); fclose($f); ?> </body> </html> テキストファイルの書込みは出来ています。    ここから先の表示ボタンを押しデータを表示する所が、 わからないです。 form1.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> 分類:<select name="type"> <option value="10代">10代</option> <option value="20代">20代</option> <option value="30代">30代</option> </select> <input type="submit" value="表示" name="btn"><br> <hr> <? $f=file("list.txt"); while( list($key,$value)=each($f)){ $a=split(",",$value); } ?> </body> </html>  実用的ではないかと思われますが、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPとMYSQLでカウンターを作っています

    アクセス数を管理画面で表示しようとしています。 **全く変な事をしているかも知れません。。。 DBはこのようになっています、同じ会員のページを合算して表示したいので 0001の会員にはpagename 0001 0001a と言う具合につけて、 0002の会員にはpagename 0002 0002a とつけて行きます pagename varchar(20) access int(11) カウントは出来ているのですが、表示させることが出来ません。 多分、全く的外れなことをしていると思います <?php require_once("dbini.php"); $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); $selectdb = mysql_select_db($DBNAME, $con); $sql = "select access from count where like pagename = '0001%'"; $rst = mysql_query($sql, $con); $body = ""; while($col = mysql_result($rst)) { $body .= "総アクセス数". "<br>"; $body .= $col["0001"]+$col["0001s"]. "<br>"; $body .= "トップページアクセス数". "<br>"; $body .= $col["0001"]. "<br>"; $body .= "紹介ページアクセス数". "<br>"; $body .= $col["0001s"]. "<br>"; } mysql_free_result($rst); $con = mysql_close($con); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> <?= $body ?> </BODY> </HTML> 分かりにくい説明かと思いますが、 どなたか分かる方ヒントでも頂けると幸いです よろしくお願いいたします。

    • 締切済み
    • PHP
  • php→mysqlへの接続が出来ない(初心者)

    レンタルサーバーのMySQLへPHPから接続したいのですが、うまくいきません。 ソースコードは以下の通りで、 ========ソースコード================== <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> (↑head内記述) <?php $my_con = mysql_connect("mysql5.heteml.jp","User","Pass"); if ($my_con == false) { die("失敗"); }else{ echo "成功!!"; } ?> ================================ 結果、以下のエラー表示が出ます。 =========エラー文=================== Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'mysql5.heteml.jp' (10060) in C:\xampp\htdocs\wakuphp\test-connect.php on line 9 失敗 ================================ ちなみに、ソースコードの9行目は 『$my_con = mysql_connect("mysql5.heteml.jp","User","Pass");』で、 phpMyAdmin上で言語設定は"Japanese(ja-euc)"です。 原因が解らず困っております。有識者の方いらっしゃいましたら宜しくお願いします!

    • ベストアンサー
    • PHP
  • PHPに関して質問です

    簡単な問い合わせフォームを作っていますが HTMLページで入力した文章がPHP画面で表示できません。 ソースは <html> <head> <meta http-equiv="Content-Type" content="text/html; charset_JIS"> <tittle>お問い合わせフォーム</tittle> </head> <body> ■お問い合わせ内容を入力してください。 <br> <form action="check_inquiry.php" method="POST"> お問い合わせタイトル: <br> <input type="text" name="tittle" size="50"> <br> <br> <input type="submit" value="お問い合わせ内容の確認"> </form> </body> </html> と <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <tittle>お問い合わせフォーム</tittle> </head> <body> ■お問い合わせ内容の確認をしてみてください。 <br> お問い合わせタイトル: <br> <?php echo $_POST["tittle"]; ?> </body> </html> どこが問題なのでしょうか?

    • 締切済み
    • PHP
  • PHPでMySQLのDBに接続

    PHP,MySQLが使えるレンタルサーバーを借りているのですが, PHPでMySQLに接続し、php_dbを選択をするようにしたいのですが、 この時DBファイルはどこに置けばいいのでしょうか? 現在はMySQLの管理コマンド(?)とは別にpublic_htmlの中に PHPフォルダを作り、そこにDBファイルを入れています。 PHPのスクリプトは <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>練習</title> <meta http-equiv="content-language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> </head><body> <?php $con = mysql_connect(); if (!$con) { echo ("Error:MySQLに接続できませんでした。<br />"); } else { echo ("接続ID=$con<br>\n"); } $selectdb = mysql_select_db("php_db" ,$con); if (!$selectdb) { echo ("Error:データベースを選択できませんでした"); } else { echo ("データベースphp_dbを選択しました。"); } ?> </body></html> としています。 MySQLには接続ができるのですが、php_dbには接続ができません。 php_dbのおき場所を変えるのか、ファイルの指定が間違っているのか その他、どの要に変更をしたらよいのでしょうか? お願いします。 環境はレンタルサーバーがLINUXでPHPのバージョンなどはわからないんです・・・!! 開発がOSがW2kでFTPで転送してます。

    • ベストアンサー
    • PHP

専門家に質問してみよう