• 締切済み
  • すぐに回答を!

たびたび申し訳ありません!大至急ご教授願います。

前回、PHPとMySQLの質問をさせていただきました(http://okwave.jp/qa/q7893483.html)。 pearについては、無事問題が解決し、PHPとMySQLの方も、何も表示されない状態から表示される状態まで進みました。ありがとうございました。 しかし、検索結果がうまく反映されず、MySQLにあるデータが表示されてしまいます。 私は、 $select_sql= <<<EOS SELECT * FROM moeinfo WHERE name like '%$search_key%' OR address like '%$search_ken%' EOS; の部分か、 $search_key = $_POST['search_key']; $search_ken = $_POST['search_ken']; の部分がいけないのではないかと考えているのですがいかがでしょうか? また初歩的なミスだとは思いますが、ご教授して頂けるとありがたく思います。よろしくお願いいたします。(画像醜いかもしれません!申し訳ないです。) Windows7 PHP 5.4.9 MySQL 5.5 Apach 2.2.22 phpMyAdmin 3.5.4 <検索フォーム> <html> <head> <title>PHPのテスト</title> <meta http-equiv="Content-Type" content="text/html; Charset=Shift_JIS"> </head> <center> <body bgcolor="#FFFFFF" text="#000000"> <font size="4">PHPのテスト</font> <form name="form1" method="post" action="list.php"> <table width="550" border="10" cellspacing="1" cellpadding="0"> <tr> <td><center>キーワード</td> <td><center><input type="text" name="search_key" size="55" maxlength="300"></td> </tr> <tr> <td><center>開催地</td> <td> <center> <select name="search_ken" > <option value="" selectd>----- 都道府県を選んでください -----</option> <option value="北海道">北海道</option> <option value=青森県">青森県</option> <option value="岩手県">岩手県</option> <option value="宮城県">宮城県</option>         ~~~省略~~~ <option value="宮崎県">宮崎県</option> <option value="鹿児島県">鹿児島県</option> <option value="沖縄県">沖縄県</option> </select> </td> </tr> </table> <br> <input type="submit" value="検 索"> </form> </body> </html> <検索結果> <html> <head> <title>萌えおこしイベントデータベース</title> </head> <body> <?php require_once("MDB2.php"); $dbUser = "root"; $dbPass = "im1907720"; $dbHost = "localhost"; $dbName = "moe_db"; $dbType = "mysql"; $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; $conn = MDB2::connect($dsn); if(MDB2::isError($conn)) { die($conn -> getMessage()); } $conn -> disconnect(); //POSTされたデータを受け取り、エスケープします。 $search_key = $_POST['search_key']; $search_ken = $_POST['search_ken']; //$select_sql=mysql_query('SELECT * FROM moeinfo WHERE name like '%$search_key%' OR address like '%$search_ken%''); $select_sql= <<<EOS SELECT * FROM moeinfo WHERE name like '%$search_key%' OR address like '%$search_ken%' EOS; $result=$conn->query($select_sql); if(MDB2::isError($result)) { die($result->getMessage()); } $count=$result->numRows(); print "検索結果は" .$count. "件です。<br>"; if($count> 0){ ?> <table width="1000" border="1" cellspacing="0" cellpadding="8"> <tbody> <tr><th>イベント名</th><th>開催地</th><th>サイトURL</th></tr> <?php while($rs=$result->fetchRow(MDB2_FETCHMODE_ASSOC)) { ?> <tr><td aling="center"> <?=$rs['name']?></td> <td><?=$rs['address']?></td> <td><?=$rs['url']?></td> </tr> <?php } ?> </tbody> </table> <?php } $result->free(); $conn->disconnect(); ?> </body> </html>

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数296
  • ありがとう数0

みんなの回答

  • 回答No.5
  • agunuz
  • ベストアンサー率65% (288/437)

>Notice: Undefined index: search_key >Notice: Undefined index: search_ken >と言う具合にsearch_keyとsearch_kenが見つからないみたいなことが書いてありました。 Undefined indexなんだから、$_POST['search_key']がない($_POSTはある)ということですよね。 print_r($_POST); でも入れて、データチェックすればいいんじゃないですか?

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • <大至急!>ご教授願います。

    MySQLで作ったお祭りのデータベースからデータを検索し、お祭りの名前と開催地だけを検索結果として表示させるというものを作っています。 しかし、エラーもなにも起きていないのに、検索しても結果が表示されません。検索結果の件数も反映されません。 PHPのプログラムの方にまだ問題があるのでしょうか?それともMySQLの方に問題があるのでしょうか? また、pearについても質問があります。pear listを実行すると問題なく見ることができるのですが、以下のような警告が表示されます。 PHP Warning: PHP Startup: Unable to load dynamic library 'ext\php_pdo_firebird. dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'ext\php_pdo_firebird.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'ext\php_pdo_oci.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'ext\php_pdo_oci.dll' - 指 定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'ext\php_pspell.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'ext\php_pspell.dll' - 指定 されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'ext\php_sybase_ct.dll ' - 指定されたモジュールが見つかりません。 in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'ext\php_sybase_ct.dll' - 指定されたモジュールが見つかりません。 勉強中と言ってもを初心者同然なので、ご教授いただきたいです。よろしくお願いいたします。 Windows7 PHP 5.4.9 MySQL 5.5 Apach 2.2.22 phpMyAdmin 3.5.4 <html> <head> <title>PHPのテスト</title> </head> <body> <?php require_once("MDB2.php"); $dbUser = "root"; $dbPass = "im1907720"; $dbHost = "localhost"; $dbName = "moe_db"; $dbType = "mysql"; $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; $conn = MDB2::connect($dsn); if(MDB2::isError($conn)) { die($conn -> getMessage()); } $conn -> disconnect(); //POSTされたデータを受け取り、エスケープします。 $search_key=addslashes($_POST['search_key']); $search_ken=addslashes($_POST['search_ken']); $sql= <<<EOS SELECT * FROM moeinfo WHERE name like '%$search_key%' OR address like '%$search_ken%' EOS; /* if(substr(PHP_OS,0,3) == 'WIN') { $sql=mb_convert_encoding($sql, "SJIS", "EUC-JP"); } */ $result=$conn->query($sql); if(MDB2::isError($result)) { die($result->getMessage()); } $count=$result->numRows(); print "検索結果は" .$count. "件です。<br>"; if($count> 0){ ?> <table width="450" border="1" cellspacing="0" cellpadding="8"> <tbody> <tr><th>イベント名</th><th>開催地都道府県名</th></tr> <?php while($rs=$result->fetchRow(MDB2_FETCHMODE_ASSOC)) { if(substr(PHP_OS,0,3) == 'WIN') { $rs['name']=mb_convert_encoding($rs['name'], "EUC-JP", "SJIS"); $rs['address']=mb_convert_encoding($rs['address'], "EUC-JP", "SJIS"); } } ?> <tr><td aling="center"><?=$rs['name']?></td> <td><?=$rs['address']?></td> </tr> </tbody> </table> <?php } //mysql_free_result ($result) ; $result->free(); $conn->disconnect(); ?> </body> </html>

    • ベストアンサー
    • PHP
  • form id、nameの番号振りなおし

    jqueryとphpにてフォームを作成しています。 フォームの追加、削除できるシステムを作っており、 フォームの追加はできたので、削除した際のinputのnameやidの番号を振り直しができず困っています。 商品1<br> <a href="javascript:void(0);" class="del" id="del_1">削除</a> <table> <tr> <th>商品番号</th> <td><input type="text" name="item[data][1][sir]" value="<?php echo $item[data][1][sir]; ?>"></td> </tr> <tr> <th>商品名</th> <td><input type="text" name="item[data][1][name]" value="<?php echo $item[data][1][name]; ?>"></td> </tr> <tr> <th>商品個数</th> <td> <select name="item[data][1][num]"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </td> </tr> </table> <a href="javascript:void(0);" id="add">フォームの追加</a> としており、 「フォームの追加」をクリックすると 商品2<br> <a href="javascript:void(0);" class="del" id="del_2">削除</a> <table> <tr> <th>商品番号</th> <td><input type="text" name="item[data][2][sir]" value="<?php echo $item[data][2][sir]; ?>"></td> </tr> <tr> <th>商品名</th> <td><input type="text" name="item[data][2][name]" value="<?php echo $item[data][2][name]; ?>"></td> </tr> <tr> <th>商品個数</th> <td> <select name="item[data][2][num]"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </td> </tr> </table> 商品3<br> <a href="javascript:void(0);" class="del" id="del_3">削除</a> <table> <tr> <th>商品番号</th> <td><input type="text" name="item[data][3][sir]" value="<?php echo $item[data][3][sir]; ?>"></td> </tr> <tr> <th>商品名</th> <td><input type="text" name="item[data][3][name]" value="<?php echo $item[data][3][name]; ?>"></td> </tr> <tr> <th>商品個数</th> <td> <select name="item[data][2][num]"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </td> </tr> </table> ができるようにPHPにてSESSION管理をおこなっています。 追加はできたのですが、 上記のフォーム4つほど出した後に商品2を削除した場合の商品1、商品3、商品4の各nameの番号(item[data][*][sir]、item[data][*][name]、item[data][*][num]の*部分) 振りなおしができず困っています。 いくらやってもできないため、どなたかソースを教えていただけないでしょうか。 宜しくお願いいたします。

  • セレクトエリアの地名を確認画面で表示したい

    地域別に変化する送料をvalueの値でJavaScriptで求めています。 そのため確認ページおよびメール送信で数値が表示されてしまいます。 そこで、value はJavaScript用としてPHP用にtitle を考えましたが読み込まないようです。 読み込む方法はありますでしょうか --------------- <form name="fom_1" method="post" action="order.php"> <table summary="ご注文"> <tr> <th>住所</th> <td><select name="ken" language=javascript onChange="return ken_onclick()"> <option value="" selected>都道府県名</option> <option value="0" title="北海道">北海道</option> <option value="1" title="青森県">青森県</option></select><br> <input type="text" name="address2" size="40" /></td> </tr> </table> </form> <?php $fileNameBase="order"; 〈省略〉 function genAdminMailBody(){ ■県名: $_POST[ken] ■住所: $_POST[address2] ---- 送信日時: $mdate; 送信者情報: $_SERVER[REMOTE_ADDR] "; return $message; } ?> 確認用 html <tr> <th>住所</th> <td colspan="2"><?=$_POST[ken]?><input name="ken" type="hidden" value="<?=$_POST[ken]?>" /><br> <?=$_POST[address2]?><input name="address3" type="hidden" value="<?=$_POST[address2]?>" /></td> </tr> --------------- ■県名: $_POST[ken.title] <td colspan="2"><?=$_POST[ken.title]?><input name="ken.title" type="hidden" value="<?=$_POST[ken.title]?>" /><br>

    • ベストアンサー
    • PHP
  • 回答No.4
  • agunuz
  • ベストアンサー率65% (288/437)

>キーワードか開催地のどちらかで検索させたいということでORを >使ったのですが・・・もしかし、ここから間違っていたりしますか? つまりキーワードもしくは開催地のどちらかが「空文字列」の可能性があるということですよね?だとすれば組み立て方が間違っています。 SQL文が SELECT * FROM moeinfo WHERE name like '%ああああ%' OR address like '%岩手県%' であれば(キーワードがああああを含む)or(開催地が岩手県)ですから、1項目に該当がなくても岩手県開催のものがHitします。ところがキーワードが「空文字列」で SELECT * FROM moeinfo WHERE name like '%%' OR address like '%岩手県%' となると、キーワードが「あらゆる値」にマッチしてしまいます。入力された値しかwhereに書いてはいけません。 $where = array(); if ($search_key !== '') { $where[] = "(name like '%" . $search_key . "%')"; } if ($search_ken !== '') { $where[] = "(address like '%" . $search_ken . "%')"; } $select_sql = "SELECT * FROM moeinfo"; if (count($where) > 0) { $select_sql .= ' where ' . implode(' or ' , $where); } などとすべきです。 なお入力された値は下記のようにtrimして使ってください。 $search_key = trim($_POST['search_key']); $search_ken = trim($_POST['search_ken']); すでに他の方から指摘がありますが、せっかくMDB2を使っているのですからプレースホルダを使ってエスケープ処理をさせてやってください。今現在は有効なエスケープ処理が何も入っていませんよね。

共感・感謝の気持ちを伝えよう!

質問者からの補足

解答ありがとうございます。何度も何度も申し訳ありません。 解答を待っている間、いろいろと自分なりに調べて書き換えていたら、ずっと $search_key = $_POST['search_key']; $search_ken = $_POST['search_ken']; の部分でエラーが出てしまうようになってしまいました。 Notice: Undefined index: search_key Notice: Undefined index: search_ken と言う具合にsearch_keyとsearch_kenが見つからないみたいなことが書いてありました。 プレースホルダについては、いろいろとサイトを見たりと勉強をしているつもりなのですが、 いまいち理解できず、うまく書くことができません。 本当に何度も何度も申し訳ありません。よろしくお願いします。

  • 回答No.3
  • naktak
  • ベストアンサー率36% (784/2137)

すみません、コメントアウトされてる方のSQL見てました。 $select_sql をechoなどして出力された文字をmysqlに直接実行し、実行できるようにしましょう。

共感・感謝の気持ちを伝えよう!

  • 回答No.2
  • naktak
  • ベストアンサー率36% (784/2137)

シングルクォート内で変数を使っても、変数値に展開しませんよ。 ちゃんと文字列結合するなりしましょう。 むしろエラーにならないのが不思議な感じがしますが・・・。 それに、search_key、search_kenがともに入力されてなかった時も 今の作りでは出ないと思います。 また、今ようなSQLの実行の仕方ではなく、プレースホルダ―を利用した プリペアドステートメントによる実行をした方が安全です。 http://pear.php.net/manual/ja/package.database.mdb2.intro-execute.php

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • agunuz
  • ベストアンサー率65% (288/437)

>検索結果がうまく反映されず、MySQLにあるデータが表示されてしまいます。 どう「うまく反映されない」のでしょうか? print $select_sql; としたSQL文をphpMyAdminで実行すれば、組み立てたSQL文のとおりの結果が返ると思います。 下記のようなテストスクリプトを書けば SELECT * FROM moeinfo WHERE name like '%ああああ%' OR address like '%岩手県%' のようなSQL文になっているのが確認できます。これではダメということですか? (テストスクリプト) <?php if ($_POST) { $search_key = $_POST['search_key']; $search_ken = $_POST['search_ken']; //$select_sql=mysql_query('SELECT * FROM moeinfo WHERE name like '%$search_key%' OR address like '%$search_ken%''); $select_sql= <<<EOS SELECT * FROM moeinfo WHERE name like '%$search_key%' OR address like '%$search_ken%' EOS; print $select_sql . "<br />"; } ?> <form name="form1" method="post" action=""> キーワード<input type="text" name="search_key" size="55" maxlength="300"> 開催地<select name="search_ken" > <option value="" selectd>----- 都道府県を選んでください -----</option> <option value="北海道">北海道</option> <option value=青森県">青森県</option> <option value="岩手県">岩手県</option> <option value="宮城県">宮城県</option> <option value="宮崎県">宮崎県</option> <option value="鹿児島県">鹿児島県</option> <option value="沖縄県">沖縄県</option> </select> <input type="submit" value="検 索"> </form> #まさか、OR としているのが「AND のつもり」とかいう #オチじゃないですよね?

共感・感謝の気持ちを伝えよう!

質問者からの補足

agunuz様、早速の解答ありがとうございます。 >#まさか、OR としているのが「AND のつもり」とかいう >#オチじゃないですよね? キーワードか開催地のどちらかで検索させたいということでORを使ったのですが・・・もしかし、ここから間違っていたりしますか? >どう「うまく反映されない」のでしょうか? 反映されないというのは、検索フォームで入力したキーワードor選択した開催地のどちらかで検索をかけて、ヒットしたモノだけを表示させたいのですが、開催地を北海道と選択しても、キーワードに第2回と入力しても、moe_db内のすべてのデータが表示させられてしまいます。 SELECT * FROM moeinfo WHERE name like '%ああああ%' OR address like '%岩手県%' これでは、nameはああああ、addressは岩手県でしか検索がヒットしないのではないでしょうか? 検索フォームの所で指定したキーワード、あるいは開催地をSELECT * FROM~の部分に展開させたいと考えていたのですが、無理なのでしょうか? 説明不足かもしれませんが、よろしくお願いします。

関連するQ&A

  • php言語にて

    <?php print "<form><table border=\"1\" cellpadding=\"5\">\n"; for($i=0;$i<6;$i++){ if($i==0){print "<tr><td>&nbsp;</td><th>月曜日</th><th>火曜日</th><th>水曜日</th><th>木曜日</th><th>金曜日</th></tr>\n"; continue; } print "<tr><td align=\"center\">$i<br>限</td>"; for($j=1;$j<6;$j++){ print "<td><select name=\"kamoku$j$i\"><option value=\"\"> <option value=\"科目A\">科目 A<option value=\"科目B\">科目 B<option value=\"科目C\">科目 C<option value=\"科目D\">科目 D<option value=\"科目E\">科目 E<option value=\"科目F\">科目 F<option value=\"未定\">未定 </select> </td>"; } print "</tr>\n"; } print "</table>\n</form>"; ?> これにボタンを付けて、ボタンを押したら操作をできなくするにはどうすればいいですか? 保存のような機能を付けたいのですが… なにか参考になるサイトはありませんか?

    • 締切済み
    • PHP
  • お問い合わせフォームの記述方法

    index.html側 <th nowrap="nowrap">項目</th> <td> <SELECT name="subject"> <OPTION VALUE="1">項目を選択して下さい</OPTION> <OPTION VALUE="2">○○○について</OPTION> <OPTION VALUE="3">△△△について</OPTION> <OPTION VALUE="4">XXXについて</OPTION> </SELECT> </td> </tr> confirm.php側 <tr> <th nowrap="nowrap">項目</th> <td><?=$_SESSION['subject']?></td> </tr> SESSIONをsubjectにしてしまうと出力時にはVALUEの番号しか取れません。 項目名を取るにはどうやって記述すれば良いのでしょうか? 記述方法を教えて下さい。

    • 締切済み
    • PHP
  • フレームをまたいだ非表示・表示の切り替えについて

    現在、フレーム&MySQLを用いたページを作成しています。 ページを左と右の二つにわけてて、 左のソースは <html> <head> <title>単漢字学習</title> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <H2>単漢字検索項目</H2> <P><b>検索項目を入力して下さい<P>(複数選択可)</P></b></P> <form name="form1" action="demo2.php" method="post" target="migi"> 漢字直接入力エリア <TEXTAREA name = "chokusetsu" cols="5" rows="2" wrap="off"></TEXTAREA><BR><BR> </TEXTAREA> 漢字読み入力エリア <TEXTAREA name = "yomi"cols="5" rows="2" wrap="off"></TEXTAREA><BR><BR> </TEXTAREA> <P>画数</P> <SELECT name="kakusuu"> <OPTION value="" selected>----画数を選択してください----</OPTION> <OPTION value="1">1画</OPTION> <OPTION value="2">2画</OPTION>   中略 </SELECT><BR><BR> <P>部首</P> <SELECT name="busyu"> <OPTION value="" selected>----部首を選択してください----</OPTION> <OPTION value="一部 いち">一部 いち</OPTION> <OPTION value="│部 ぼう">│部 ぼう</OPTION>   中略 </SELECT><BR><BR><BR> <input type="submit" value="送信"> <input type="reset" value="リセット"> </body> </html> となっていて 右ページのソースは <?php require_once("mysql.php"); ?> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=UTF-8"> <input type="hidden" name="ie" value="UTF-8"> <title>7-4 MySQLクラスでのデータの表示</title> </head> <body> <b>入力された条件&nbsp;&nbsp;&nbsp;&nbsp;</b> <?php print "直接入力:"; print $_POST['chokusetsu']; print "&nbsp;&nbsp;&nbsp;&nbsp;読み:"; print $_POST['yomi']; print "&nbsp;&nbsp;&nbsp;&nbsp;画数:"; print $_POST['kakusuu']; print "&nbsp;&nbsp;&nbsp;&nbsp;部首:"; print $_POST['busyu']; print "&nbsp;&nbsp;&nbsp;&nbsp;の検索結果"; $search_key1 = addslashes($_POST['chokusetsu']); $search_key2 = addslashes($_POST['yomi']); $search_key3 = addslashes($_POST['kakusuu']); $search_key4 = addslashes($_POST['busyu']); $mysql = new MySQL; $sql = "SELECT * FROM tankanji WHERE (onyomi like '%$search_key2%' OR kunyomi like '%$search_key2%') AND kanji like '%$search_key1%' AND busyu like '%$search_key4%' AND kakusuu like '%$search_key3%'"; $mysql->query($sql); // 検索件数の表示 ?> <TABLE width="3000" frame="border" border="3" cellspacing="1" cellpadding="3"> <TBODY> <TR><TH>id</TH><TH>漢字</TH><TH>音読み</TH><TH>訓読み</TH><TH>部首</TH><TH>画数</TH></TR> <?php while($row = $mysql->fetch()){ ?> <TR> <TD align="center"><?=$row['id']?></TD> <TD align="center"><?=$row['kanji']?></TD> <TD align="center"><?=$row['onyomi']?></TD> <TD align="center"><?=$row['kunyomi']?></TD> <TD nowrap align="center"><?=$row['busyu']?></TD> <TD align="center"><?=$row['kakusuu']?></TD></TR> <?php } ?> </TBODY></TABLE> </body> </html> こんな感じです。 現在では左ページのテキストボックスやプルダウンメニューから操作をしてデータを右ページに送らなくても右ページにはテーブルが出現してしまってます。この現象を左ページからデータ入力があった場合のみテーブルを表示させたいのですが、このようなことはできるのでしょうか? 誰か詳しい方お願いします。

    • ベストアンサー
    • HTML
  • phpのリンクについて

    <?php print "<form><table border=\"1\" cellpadding=\"5\">\n"; for($i=0;$i<6;$i++){ if($i==0){print "<tr><td>&nbsp;</td><th>月曜日</th><th>火曜日</th><th>水曜日</th><th>木曜日</th><th>金曜日</th></tr>\n"; continue; } print "<tr><td align=\"center\">$i<br>限</td>"; for($j=1;$j<6;$j++){ print "<td><select name=\"kamoku$j$i\"><option value=\"\"> <option value=\"科目A\">科目 A<option value=\"科目B\">科目 B<option value=\"科目C\">科目 C<option value=\"科目D\">科目 D<option value=\"科目E\">科目 E<option value=\"科目F\">科目 F<option value=\"未定\">未定 </select> </td>"; } print "</tr>\n"; } print "</table>\n</form>"; ?> (1)プルダウンではなく、リンクを表の中に入れる。 (2)リンク先に教科がいくつかあって、その中から教科を選択する (3)その選択した教科を表に反映させる。 上記のようなことをしたいんですけど、どうすればいいかわかりません。 どうかよろしくお願いします。

    • 締切済み
    • PHP
  • phpでのselect値の取得・表記について

    php初心者です。 自動計算する見積ページを独学で作っているのですが、どうしてもわからなかったので、質問させてください。 htmlページでセレクトタグから選択してもらった結果(値)を、phpページに送信し、phpページでvalueとname両方を別々の場所に表記するには、どのようなコードを書けば良いでしょうか? valueの値をphpページで表記させたり計算させる事はなんとか独学でもできたんですが、nameを表記させる事がどうしてもできませんでした。 お詳しい方、何卒ご教授ください。 途中までなんとかできたタグを下記に記載します。 <例>input.html → output.php (1)input.html (細かいタグは端折ります) <html> <body> <form action="output.php" method="post"> <tr> <th>生菓子</th> <td> <select name="goods1" onChange="keisan()" style="padding:5px; border:1px solid #dcdcdc;" /> <option value="0" name="未選択">お選びください</option> <option value="500" name="フルーツケーキ">フルーツケーキ</option> <option value="3000" name="チーズケーキ">チーズケーキ</option> <option value="5000" name="チョコレートケーキ">チョコレートケーキ</option> <option value="※別途見積" name="おまかせ">おまかせ</option> </td> </tr> <tr> <tr>焼き菓子</th> <td> <select name="goods2" onChange="keisan()" style="padding:5px; border:1px solid #dcdcdc;" /> <option value="0" name="未選択">お選びください</option> <option value="500" name="クッキー">クッキー</option> <option value="3000" name="パウンドケーキ">パウンドケーキ</option> <option value="5000" name="パイ">パイ</option> <option value="※別途見積" name="おまかせ">おまかせ</option> </td> </tr> <tr> <th><input type="submit" value="submit" /></th> </tr> </form> </body> </html> ↓上記で選択してもらった値を下記のoutput.phpにsubmit。 (2)output.php (細かいタグは端折ります) <html> <body> <tr> <th>生菓子</th> <td>ここに選択されたnameの値を表記したい!</td> <td><?php echo htmlspecialchars($_POST["goods1"]); ?></td> </tr> <tr> <th>焼き菓子</th> <td>ここに選択されたnameの値を表記したい!</td> <td><?php echo htmlspecialchars($_POST["goods2"]); ?></td> </tr> <tr> <td colspan="2">Total </td> <td><?php echo htmlspecialchars( $_POST["goods1"] + $_POST["goods2"]); ?><td> </tr> </body> </html> 以上。 ぜひ、ぜひぜひご教授よろしくお願いいたします。

    • 締切済み
    • PHP
  • VBAでWebページに入力&ボタンクリック

    URLがhttp://xxx.com/のページで次のようなフォームのときExcelで自動入力クリックするマクロを作りたいです。 <input type="hidden" name="room" value="aaaaa"/> <a name="regist" id="regist">総登録数</a> <table width="402" border="1"> <tr> <th align="center" colspan="2"><div align="left"><big>登録ページ</big></div></th> </tr> <tr> <td colspan="2">&nbsp;&nbsp;&nbsp;name <input type="text" size="20" name="name" value="" maxlength="20"> &nbsp;&nbsp;&nbsp;Email <input type="text" size="20" name="email" value=""> &nbsp;&nbsp;</td> </tr> <tr> <td align="center">pass</td> <td><input type="text" size="20" name="pw" maxlength="12" value=""></td> </tr> <tr> <td align="center">category</td> <td><select size="1" name="junle"> <option value="pp" selected="selected">カテゴリ選択</option> <option value="0">その1</option> <option value="1">その2</option> </select></td> </tr> <tr> <td align="center">title</td> <td><input type="text" size="55" name="title" maxlength="25" value=""></td> </tr> <tr> <td align="center">URL</td> <td><input type="text" size="55" name="url"></td> </tr> <tr> <td align="center">intro</td> <td><input type="text" name="comment" size="55" maxlength="50" value=""></td> </tr> <tr align="center"> <td><br></td> <td><input type="submit" name="mode" value="登録"> <input type="reset" value="クリア"></td> </tr> </table> 入力する内容は1行目のA,B,C・・にname,email,pass・・・が順番にそれぞれ入っています。

  • PHPでフォーム作成について(初歩的質問)

    PHPに関しては超初心者のものです。 テキストで学び始めたのですが、HTMLのフォームにPHPスクリプトが組み込まれた以下のようなプログラムの時、写真のようになってうまく表示されません(当然動作しません)。 経験者の方なら、おわかりになられると思うのですが、調べてもわからず困っています。 お助けをよろしくお願いいたします。 【環境】 Windows XP, XAMPP(PHP5.3/Apache2.2・・・) 【ソース】 <?php //------------------------------------------------------- // ■ 初期値設定 //------------------------------------------------------- $kname = ""; ~ (中略) ~ ?> <hr> <b>会員登録フォーム)</b><p> <form action="<?=$_SERVER["PHP_SELF"]?>" method="POST" enctype="multipart/form-data"> <table border="1" width="600" cellspacing="0" cellpadding="0"> <?php //-------------------------------------------------- // □ 会員名 //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">会員名</td> <td align="left" width="450"> &nbsp;<input type="text" name="kname" value="<?=$kname?>" size="40"> </td> </tr> <?php //-------------------------------------------------- // □ 住所 //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">住所</td> <td align="left" width="450"> &nbsp;<select name="ken"> <option value="1"<?if ($ken=="1"){echo " selected";}?>>北海道</option> <option value="2"<?if ($ken=="2"){echo " selected";}?>>青森県</option> <option value="3"<?if ($ken=="3"){echo " selected";}?>>秋田県</option> <option value="4"<?if ($ken=="4"){echo " selected";}?>>岩手県</option> </select> </td> </tr> <?php //-------------------------------------------------- // □ 性別 //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">性別</td> <td align="left" width="450"> &nbsp;<input type="radio" name="seibetsu" value="1"<?if ($seibetsu=="1"){echo " checked";}?>>男性 &nbsp;<input type="radio" name="seibetsu" value="2"<?if ($seibetsu=="2"){echo " checked";}?>>女性 </td> </tr> <?php //-------------------------------------------------- // □ メールアドレス //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">メールアドレス</td> <td align="left" width="450"> &nbsp;<input type="text" name="mail" value="<?=$mail?>" size="30"> </td> </tr> <?php //-------------------------------------------------- // □ パスワード //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">パスワード</td> <td align="left" width="450"> &nbsp;<input type="password" name="pw" value="<?=$pw?>" size="30"><br> &nbsp;5文字以下の半角数字を入力して下さい。 </td> </tr> <?php //-------------------------------------------------- // □ 画像ファイル //-------------------------------------------------- ?> ~ 中略 ~ <?php //-------------------------------------------------- // □ 備考 //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">備考</td> <td align="left" width="450"> &nbsp;<textarea name="biko" cols="60" rows="10"><?=$biko?></textarea> <input type="hidden" name="no" value="abc"> </td> </tr> </table> <br> <?php //-------------------------------------------------- // □ 登録ボタン //-------------------------------------------------- ?> <input type="submit" name="submit" value="   登録する   "> </form> </body> </html>

    • 締切済み
    • PHP
  • PHPのheader()について

    OS:freebsd4.8 PHP:php-4.3.2 apache2 を使用しております。 ドキュメントルートに <HTML> <HEAD> <TITLE>検索エンジン</TITLE> </HEAD> <BODY> <CENTER><H1> 検索エンジン </H1></CENTER> <FORM METHOD= post ACTION = search.php> <TABLE BORDER = 4 WIDTH = 250 ALIGN = CENTER> <TR BGCOLOR = "#CCCCCC"> <TH>検索キーワード</TH> <TD><INPUT TYPE= text NAME= keywd size = 20 /></TD> </TR> <TR> <TH>エンジン</TH> <TD> <SELECT NAME = ENG> <OPTION VALUE = "yahoo">Yahoo!</OPTION> <OPTION VALUE = "google">google</OPTION> <OPTION VALUE = "goo">goo</OPTION> </SELECT> </TD> </TR> <TR> <TD COLSPAN ="2"><CENTER><INPUT TYPE="submit" value="検索" /><CENTER></td> </TR> </TABLE> </FORM> </BODY> </HTML> というtest.htmlをおいてます。 phpスクリプトとして <?php $stringkey = urlencode($keywd); switch($ENG){ case "yahoo": $url = "http://www.yahoo.co.jp/bin/search?p="; break; case "goo": $url = "http://www.goo.ne.jp/default.asp?MT="; break; case "yahoo": $url = "http://www.google.co.jp/search?q="; break; } header("Location: ".$url.$stringkey); header("HTTP/1.1"); ?> search.phpにパラメータを渡していますが 白いページしか表れません。 header()関数の記述が悪いのでしょうか? apache2の設定でしょうか? ちなみに2ファイルともドキュメントルートに配置してます。 よろしくお願いします。

    • 締切済み
    • PHP
  • このhtmlの書き方は正しいでしょうか。

    下記の情報の配置の仕方は正しいでしょうか? 実際に使用するときは<tbody>&#65374;</tbody>を複数増やします。 サンプルでは2つですが、これが400以上になります。 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS" /> <title></title> <style type="text/css"> body { background-color: #f5e088; margin: 0; padding: 0; font-size: 15px; } #base { width: 600px; margin: 0 auto; background-color: #fff; } table#ttt { width: 600px; background-color: #ccc; border: 2px solid #000; padding: 15px 0px; } table#ttt th, table#ttt td { width: 100px; } td#kkk { text-align:center; } table#ccc th { color: #f00; width: 60px; } table#ccc td { } .shashin, td.shousai { width: 150px; background-color: #ff0; } </style> </head> <body> <div id="base"> <form action="#"> <table id="ttt"> <tr> <th>市</th> <td> <select name=""> <option value="">指定していません</option> <option value="横浜市">横浜市</option> <option value="鶴見区">鶴見区</option> <option value="神奈川区">神奈川区</option> <option value="西区">西区</option> </select> </td> <th>町村</th> <td> <select name=""> <option value="">指定していません</option> <option value=""></option> <option value=""></option> </select> </td> </tr> <tr> <th>小学校区</th> <td> <select name=""> <option value="">指定していません</option> <option value=""></option> <option value=""></option> </select> </td> <th>中学校区</th> <td> <select name=""> <option value="">指定していません</option> <option value=""></option> <option value=""></option> </select> </td> </tr> <tr> <th>データ</th> <td> <select name=""> <option value="">指定していません</option> <option value="500">500値未満</option> <option value="1000">500値以上1000値未満</option> <option value="1500">1000値以上1500値未満</option> </select> </td> <th>レベル</th> <td> <select name=""> <option value="">指定していません</option>  <option value="30">30Lv未満</option> <option value="60">30Lv以上60Lv未満</option> <option value="90">60Lv以上90Lv未満</option> <option value="100">90Lv以上100Lv以下</option> </select> </td> </tr> <tr> <td colspan="4" id="kkk"> <input type="button" id="" value="検索" onclick=""> </td> </tr> </table> </form> 方法その1 <table id="ccc"> <tbody> <tr> <td rowspan="3" class="shashin"><img src="" alt="画像"></td> <th>場所</th><td colspan="7">神奈川県横浜市金沢区</td> <td rowspan="2" colspan="2" class="shousai"><img src="" alt="詳細はこちら"></td> </tr> <tr> <th>データ</th><td colspan="3">525値</td> <th>レベル</th><td colspan="3">53Lv</td> </tr> <tr> <th>小学校区</th><td colspan="4">市立第一横浜小学校</td> <th>中学校区</th><td colspan="4">市立第一横浜中学校</td> </tr> </tbody> <tbody> <tr> <td rowspan="3" class="shashin"><img src="" alt="画像"></td> <th>場所</th><td colspan="7">神奈川県横浜市金沢区</td> <td rowspan="2" colspan="2" class="shousai"><img src="" alt="詳細はこちら"></td> </tr> <tr> <th>データ</th><td colspan="3">525値</td> <th>レベル</th><td colspan="3">53Lv</td> </tr> <tr> <th>小学校区</th><td colspan="4">市立第一横浜小学校</td> <th>中学校区</th><td colspan="4">市立第一横浜中学校</td> </tr> </tbody> </table> </div> </body> </html> このような内容を作る時はテーブルが一番正しいのでしょうか? 最も正しい方法を教えて頂きたいです。

    • ベストアンサー
    • HTML
  • PHP+MySQLの「データを検索して表示する」について

    名前を入れて検索すると、このように下記の様に表示されてしまいます。 Parse error: syntax error, unexpected '>' in C:\xampp\htdocs\list.php on line 52 検索フォームのsearch.phpは <HTML> <HEAD> <TITLE>検索テスト</TITLE> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </HEAD> <BODY bgcolor="#FFFFFF"text="#000000"> <FONT size="4">検索テスト</FONT> <FORM name="form1" method="post" action="list.php"> 名前;<BR> <INPUT type="text" name="search_key"> <BR> <INPUT type="submit" value="検索"> </FORM> </BODY> </HTML> です。 データ検索のlist.phpは <HTML> <HEAD> <TITLE>検索テスト</TITLE> </HEAD> <BODY> <?php require_once("DB.php"); $dbUser = "sample"; $dbPass = "password"; $dbHost = "localhost"; $dbName = "sampledb"; $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; $conn = DB::connect($dsn); //接続にしっぱいしたらメッセージを表示して終了します。 if (DB::isError($conn)) { die($conn->getMessage()); } //POSTされたデータを受け取り、エスケープします。 $search_key =addslashes($_POST['search_key']); $sql = <<<EOS SELECT * FROM member WHERE last_name like'%$search_key%' OR first_name like'%$search_key%' EOS; if(preg_match("/Windows/",$_ENV["OS"])){ $sql = mb_convert_encoding($sql,"SJIS","EUC-JP"); } $result = $conn->query($sql); if (DB::isError($result)) { die($result->getMessage()); } $count = $result->numRows(); print"検索結果は".$count."件です。"<BR>"; if($count>0){ ?> <TABLE width="450" border="1" cellspacing="0" cellpadding="8"> <TBODY> <TR><TH>番号</TH><TH>氏</TH><TH>名</TH><TH>年齢</TH></TR> <?php while($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)) { if(preg_match("/Windows/",$_ENV["OS"])){ $rs['last_name'] = mb_convert_encoding( $rs['last_name'],"EUC-JP","SJIS"); $rs['first_name'] = mb_convert_encoding( $rs['first_name'],"EUC-JP","SJIS"); } ?> <TR><TD align="center"><?=$rs['id']?></TD> <TD><?=$rs['last_name']?></TD> <TD><?=$rs['first_name']?></TD> <TD align="center"><?=$rs['age']?></TD></TR> <?php } $result->free(); $conn->disconnect(); ?> </BODY> </HTML> です。 「速効!図解プログラミングPHP+MySQL」を見ながら、その通りに書いたのですが動きませんでした。 XAMPPを使って作っています。 長々と失礼しましたが、どうか解決策を教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP