PHP MySQLを使ってリストボックスを作りたい

このQ&Aのポイント
  • PHPでMySQLよりSelectしたデータをリストボックスにする方法を教えてください。
  • IEで呼び出すと、一番上にrequireしたfunctionが表示される現象が発生しています。
  • lib.phpをinput1.phpで呼び出して使っています。
回答を見る
  • ベストアンサー

PHP MySQL を使ってリストボックスを作りたい

PHPで、MySQLよりSelectしたデータをリストボックスにしたくて、 コーディングしていますが、本を読みながら見よう見まねでつくってますが、 うまくいきません。 現象としては、IEで呼び出すと、一番上にrequireしたfanctionが そのまま記述されて出てきます。 そのほかは、その下にうまく表示されています。 lib.phpをinput1.phpで呼び出して使っています。 lib.php >------------------------------ function make_SyaName (){ $sql = "select * from Syain"; print $sql; $result = mysql_query( $sql ) ; while ( $syain = mysql_fetch_array ( $result ) ) { print "<option value=" . ${syain['SyaNo']} . ">" . ${syain['SyaName']} . "</option>"\n; } } >------------------------------ input1.php >------------------------------ 省略・・・ <select name="TanNo"><option value=>担当者<? make_SyaName () ?> ・・・省略 >------------------------------ 初歩的な質問で恐縮ですが、よろしくお願いいたします。

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

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

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

PHPあまりやったことないのですが。。。 たぶんですが。。。requireでインクルードされるファイルは直接展開されるだけで何の作用もないと思いますので、lib.phpの中でも<?function{} ?> となると思います。(違う原因かもしれませんが)

mkhkck
質問者

補足

>ken_tyanさん ありがとうございました。 上に表示されるという件はこれで解決しました。 うっかりしてました^^;助かりました!! ところが、表示の部分はやはり、「致命的なエラー」として表示されません。 問題の個所は、質問であげた呼び出している文と同じ個所です。 申し訳ないのですが、解決策が見つかりません。

その他の回答 (2)

回答No.3

よく見てみると、make_SyaName関数内でmysql_connectが存在しないですが、データベースへ接続してますか?

mkhkck
質問者

お礼

ちなみに、lib.php内の $sql = "select * from Syain"; $result = mysql_query( $sql ) ; while ( $syain = mysql_fetch_array ( $result ) ) { print "<option value='" . $syain['SyaNo'] . "'>" . $syain['SyaName'] . "<br>"; } を直接input1.php内に <select name="TanNo"><option value=>担当者<br> <? $sql = "select * from Syain"; $result = mysql_query( $sql ) ; while ( $syain = mysql_fetch_array ( $result ) ) { print "<option value='" . $syain['SyaNo'] . "'>" . $syain['SyaName'] . "<br>"; } ?> </select> と入れると、表示されました。

mkhkck
質問者

補足

>hogehoge78さん input1.phpで接続しているのです。 試しに、lib.phpでも接続設定をしてみましたが、 やはりダメでした。

回答No.2

${syain['SyaNo']} この表記方法がPHPで使用できないです。 $syain['SyaNo'] としてはいかがでしょう。(${syain['SyaName']} も同様に。)

mkhkck
質問者

補足

>hogehoge78さん ありがとうございます! そうでしたか。。。すみません! しかし、訂正しましたが、やはり表示されませんでした。。。

関連するQ&A

  • mysql+phpをつかったカートつくり。

    こんにちは、php+mysqlを勉強しだして。日が浅いです。 いき詰まりました。どなたかおしえてください。いろいろとサイト検索してみたんですけど みつかりません。 ショッピングカートを作ろうとおもっています。 ーーー中略ーーー while($rec = mysql_fetch_array($result,MYSQL_ASSOC)){ print "<form name=\"form1\" method=\"POST\" action=\"link1_1.php\">"; print "<tr><td>"; print $rec['id']; print "</td><td>"; print $rec['cid']; print "</td><td>"; print $rec['pr']; print "\\</td><td>"; print "<select name=\"mny\"><option value=\"1\">1</option>"; print "<option value=\"2\">2</option>"; print "<option value=\"10\">10</option>"; print "</select></td><td>"; print "<input type=\"submit\" name=\"cart\" value=\"カートへ\">"; print "<td/></tr></from>"; } print "</table>"; 上記の文で、while文をつかって 商品を表示させることはできました。 問題は、 カートがおされたときの処理ができません;; カートの値はどうやって 設定したらよいのでしょうか?  うまく表現できなくて すみません。 if(isset($_POST['cart'])){  //カートがおされたとき $sql = "select max(ju_id) from table1";//最大値を取得 $result = mysql_query($sql); $row = mysql_num_rows($result); if($row != 0) { $ary = mysql_fetch_array($result); $ju_id = $ary[0] + 1; //$number = $ary[0] + 1;// 登録レコードのを生成 } $sql = "insert into jucyu set ju_id = $ju_id "; } 商品を表示させて、個数等指定して、カートへを 押したら、 一回目は表示されるんですが、うまく、mysqlへ書き込みができません。  うまく表現できなくて すみません。

  • phpのリストボックスについて

    よろしくお願いします。 phpを利用し、条件にあった内容を表示させる画面を作っています。 リストボックスで選択した内容を次のリストボックスの選択キーとして 別テーブルの検索条件に利用できるものでしょうか?? 以下のソースなんですが、 //------------------------------------------------------------- ソースA: print "<select name='brand' id='brand' style='width:190'>"; $sql ="select * from brand ORDER by no"; $res = mysql_query($sql); if ($res and mysql_num_rows($res)) { while($rec=mysql_fetch_array($res)){ echo "<option value='{$rec['name']}' >{$rec['name']}</option>"; } } print "</select>"; //-------------------------------------------------------------- とbrandテーブルからnameをリストボックス表示させます。 この表示し、選択した内容(仮にダイヤ)を同画面にあるもう一つの リストボックスで同じようなソースで別テーブルをselect文の検索キーに したいのです。以下のような感じ・・ //------------------------------------------------------------- ソースB: $sql ="select * from item where = 'ダイヤ'"; $res = mysql_query($sql); if ($res and mysql_num_rows($res)) { while($rec=mysql_fetch_array($res)){ echo "<option value='{$rec['itemname']}' >{$rec['itemname']}</option>"; } } print "</select>"; //-------------------------------------------------------------- の$sql ="select * from item where = 'ダイヤ'";←このダイヤを ソースAからもってきたいのですが、何かよい方法はありますか? 変数作ってやってみましたが、うまくいかずです。phpだけでは無理でしょうか?よろしくお願いします。

    • 締切済み
    • PHP
  • プルダウンとphp+mysqlに関して

    初心者です。教えてください。現在、mysqlのAというテーブルlから持ってきたデータをプルダウンで表示させて、選択したものをmysqlの別テーブルに入力するプログラムをphpで作成しています。ただ、mysqlでAというテーブルからデータは取れているようですが、うまく表示されません。教えていただけるでしょうか? 下記のソースになります。うまくいっていない部分にコメントしています。 <?php //設定 require_once('config.php'); require_once('function.php'); connectDb(); @mysql_query('SET NAMES utf8'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> <body> <h1>作成</h1> <form action= "kakunin.php" METHOD="post"> <p>日時:<input type="datetime" name="nitizi"></p> <p>年:<input type="text" maxlength="4" name="toshi"></p> <p><label>項目:<textarea name="question" cols="100" ></textarea></label></p> -----------------ここからがうまくいっていません。--------------- <p><label>分類</label> <?php $rs = mysql_query("SELECT * FROM bunrui_table"); $row = mysql_fetch_array($rs); if(!$rs){ die('取得できませんでした'.mysql_error()); } print '<SELECT NAME="mb">'; while($row=mysql_fetch_array($rs)){ print('<p>'); print("<option value=".$row['b_id'].">"); print("</option>"); print('</p>'); } print '</SELECT>'; ?> ーーーーーーーーーーーーーーーーーーーーーーここまでーーーーーーーーーー </p> <p>A <input name="n_a" type="text" size="50"></p> <p>B <input name="n_b" type="text" size="50"></p> <p>C <input name="n_c" type="text" size="50"></p> <p>D <input name="n_d" type="text" size="50"></p> <p> <label for="s">hantei</label> <select name="s" > <option value="1">A</option> <option value="2" >B</option> <option value="3">C</option> <option value="4">D</option> </select> </p> <label>解説<textarea name="k" cols="100" ></textarea> <br></label> <br> <input type="submit" value = "入力"> <input type="reset" value="reset"> </form> </body> </html>

    • ベストアンサー
    • PHP
  • mysqlからphpに表示ですべての項目を出したい

    phpとmysqlの勉強をしているのですが、出したい項目がでてきてくれません。 今mysqlでidとnameとpriceの項目を作っているのですが、以下だとどうしてもnameしか出てきてくれません。 どうすれば3つの項目がでてくれますでしょうか? よろしくお願いします。 <?     mysql_connect('localhost' , 'root' , '') or die(mysql_error());     mysql_select_db('db1'); mysql_query('SET NAMES UTF8'); $sql="SELECT * FROM syouhin"; $res=mysql_query($sql); $options=""; while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ $options.="<input type=\"radio\" name=\"syouhin1\" value='{$row['id']}' checked>        {$row['name']}\n<br>"; } $select="{$options}</select>\n";     print $select; ?>

    • ベストアンサー
    • PHP
  • PHP・MySQL・javascriptを用いたセレクトボックスによる絞込み検索

    はじめまして!現在PHPを勉強し始めた初心者なのですが、PHP・MySQL・javascriptを用いて、検索機能を実現させたいと思い思考錯誤しているのですが、やりたいことができず、困っております。 やりたいことというのは、MySQLに商品テーブルが存在し、材質やサイズなどのフィールドをいくつか設けているのですが、セレクトボックスを5つ配置し、それぞれのセレクトボックスを選んでいくと他のセレクトボックスが連動して絞り込まれていき、5つ全て選んだ時に1つの商品がヒットするというものを作りたいのです。 一つ目のセレクトボックスからポストされた値を次のセレクトボックスのクエリのwhere句の条件として絞り込んで二つ目を表示させることはできたのですが、三つ目以降どうしていいかわかりません>< 初心者なので、詳しく解説して頂ければ幸いです。 どうか宜しくお願いいたします。 現在製作中のソースですは下記をご参照下さい。 <?php //MySQLクラスファイルの取り込み require_once("mysql.php"); //MySQLクラスファイルの取り込み $mysql = new MySQL; //ポストされた値を変数に格納 $category = $_POST["category"]; $syo_code = $_POST["syo_code"]; ?> <html> <head> <body> <form action="jon2.php" method="post"> <!--jon2.phpは現在のページの名前です--> <select name="category" onChange="this.form.submit()"> <option value="">-------------</option> <? $query = "select * from category"; $result = $mysql->query($query); while ($rows = $mysql->fetch($result)) { ?> <option value="<?=$rows["category_id"]?>"><?=$rows["category"]?></option> <? }//while終わり ?> </select><br /> <select name="syo_code"> <option value="">-------------</option> <? $query = "select syo_code from syohin where category_id=$category"; $result = $mysql->query($query); while ($rows = $mysql->fetch($result)) { ?> <option value="<?=$rows["syo_code"]?>"><?=$rows["syo_code"]?></option> <? }//while終わり ?> </select> </body> </head> </html>

    • 締切済み
    • PHP
  • チェックボックスのデータを受け取ってMYSQL条件としてセットする

    HTML <input type="checkbox" value="データ1" name="aa[]">データ1      <input type="checkbox" value="データ2" name="aa[]">データ2 PHP <?php =====DB接続省略======== foreach($aa as $val){ //SQL文 $sql = "SELECT NO,SERVISNAME from JOBDATA WHERE SERVISNAME='$val' } //SQLを発行して結果セットを取得します $rst = mysql_query($sql); //取得された結果セットのレコード数を取得・表示します // $body = mysql_num_rows($rst) . " 件のデータがあります。<BR><BR>"; ======DBから取得したデータ表示省略====== ======結果セットを破棄し、MySQLとの接続を解除省略====== ?>エラー:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\... 何でこんなエラーがでるでしょう?解決方法教えてください。お願いします。

    • 締切済み
    • PHP
  • mysqlとphpを使った入力画面でチェックボックスのデータの受け取り方

    住所録を作成しています。 趣味をチェックボックスで選択するようにしましたが、1つしか選ばれません。例を挙げましたので教えてください。 if($tou<>""){ $sql = "insert into kainan values (0, '$tou', '$kai')"; $result = mysql_query($sql); $sql = "select * from jyusho where tou='$tou' order by tou asc limit 1"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)){ $id = $row["id"]; } echo "<p>登録完了しました</p>\n"; exit; } echo " <p>データを入力してください<p/> <form action=\"touroku.php\" method=\"post\"> <p>○登録日:<input type=\"file\" name=\"tou\" size=40 >\n <p>○趣味:\n <input type=\"checkbox\" name=\"kai\" value=\"不明\">不明\n <input type=\"checkbox\" name=\"kai\" value=\"英語\">英語\n <input type=\"checkbox\" name=\"kai\" value=\"算数\">算数\n </p>\n <p><input type=\"submit\" value=\"登録\">   <input type=\"reset\" value=\"クリア\"></p>\n </form>\n ";

  • PHP+MySQL

    PHP4で、MySQLに接続しています。 $connには、接続IDが格納されています。 以下のスクリプトで、「エラー」が出てしまうのですが、何故でしょうか? $sql = "SELECT (User_num, User_name, User_pass) FROM User WHERE User_name='$login_name'"; if (!$result= mysql_query($sql, $conn)){ die (print ("エラー")); } SQL文を、 SELECT (User_num) FROM User WHERE User_name='$login_name' と書き換えるとうまくいきます。複数にするとエラーというのはどうしてでしょう

    • ベストアンサー
    • MySQL
  • 入力フォームが上手く動きません。。(mysql,php使っています)

    入力フォームが上手く動きません。。(mysql,php使っています) レビュー系のサイトを作っていて、入力フォームを作ってみたのですが、上手く動きません。どなたかご助言いただけますと幸いです。 【関連するテーブル】 tag  構造  tagid , tag  1 , OPが素晴らしい  2 , EDが素晴らしい  3 , 世界観がいい  ・  ・  ・ tag_title  構造  tagid , titleid , tagcom(コメント欄) , vote(今回は使いません) , tagcom_date(日付) 【組んだソース】 ============================== <?php if(isset($_GET['titleid'])){ if(preg_match('/^[0-9]+$/', $_GET['titleid'])){ $titleid = $_GET['titleid']; }else{ $titleid = 0; } }else{ //ダメな場合の処理 $titleid = 0; } (中略) $tag_array = array(); $tagcom_array = array(); if(isset($_POST['tag_regist'])) { $tag_array = $_POST['tag']; $tagcom_array = $_POST['tagcom']; extract($_POST); mysql_connect('***'); mysql_select_db('***'); $kyou = date("y-m-d"); $tagcnt = 0; for ($tagcnt=0;$tagcnt<count($tag_array);$tagcnt++) { $sql_tag = ""; $sql_tag = "INSERT INTO tag_title (tagid, titleid, tagcom, vote, tagcom_date) VALUES (".$tag_array[$tagcnt].", ".$titleid.", '".$tagcom_array[$tagcnt]."', '".$vote."', '".$kyou."')"; mysql_query($sql_tag); print $tagcom_array[$tagcnt]; } } print "<form action=\"tag_input.php?titleid=" . $titleid . "\" method=\"post\" >"; $sql2 = "select * from tag"; $result2 = mysql_query($sql2); $rows2 = mysql_num_rows($result2); while($row2 = mysql_fetch_array($result2)){ echo "<p><input type=\"checkbox\" name=\"tag[]\" value=\"" . $row2["tagid"] . "\" >"; echo $row2["tag"]; echo "   <input type=\"text\" name=\"tagcom[]\" size=\"60\">"; echo "</p>"; } print "<p><input type=\"submit\" value=\"書き込む\" >"; print "<input type=\"reset\" value=\"リセット\"></p>"; print "<input type=\"hidden\" name=\"tag_regist\" value=\"true\" />"; print "</form>"; ============================== 【実際に作ってみたやつ(一例)】 ttp://www.game-minzoku.jp/tag_input.php?titleid=4784 【何ができないのか】 tag_titleidにデータを送りたいのですが、コメントのtagcomだけ上手くはいりません。。(たまにはることもあるので謎です。フォームなので100%の精度にしたいです) ソースは友人と協力して作ったのですが、どうしてもこのあたりで行き詰ってしまいました。 ソースの組み方にこだわりは全くないので、根本からの変更も可能です。 拙いご説明で大変恐縮ですが、お分かりになりましたらよろしくお願いいたします。 また、ご説明が足りない個所などあればおっしゃってください!

    • ベストアンサー
    • PHP
  • PHP MySQL で updateができません

    はじめまして。Amazon.co.jpなどでよくある 「このレビューは参考になりましたか?」 Yes/No でレビューに対する評価機能をPHPで組みたいのですが、 update set でうまくデータ更新ができず困っております。 以下ソース 【入力画面】 ----------------------------------------------------------- <? while ( $adp = mysql_fetch_array( $result6 ) ) { ?> <form name="register" action="rev.php" method="post"> //レビュー内容 <?php $str = nl2br($adp['description']); echo $description . $str ; ?> //レビュー内容 このレビューは参考になりましたか? <input type="radio" name="vote" value="2" checked>参考になった<br> <input type="radio" name="vote" value="1">参考にならなかった<br><br> <? echo $adp['add_id'] ?> <input name="add_id" type="hidden" value="<?= $adp['add_id'] ?>"> <input type="submit" value="- 登録 -"> <input type="reset" value="リセット"> </form> <? } ?> 【完了画面】 ----------------------------------------------------------- <? require( '../config.php' ); require( '../lib.php' ); $link = db_connect(); $sql = "update adp set vote = '" . mysql_real_escape_string( $_POST['vote'] ) . "' where add_id = '" . mysql_real_escape_string( $_GET['add_id'] ) . "'"; $result = mysql_query( $sql ); echo mysql_error(); // ?> 投票完了 ----------------------------------------------------------- 要するに adpのデータベースのadd_idが同じテーブルの中の voteの値を1か2に更新したいだけなのですが、 1人で色々と試してもどうしても更新できずに 困っております。 どなたかお分かりの方がいらっしゃいましたら是非 お教えいただけますと幸いです。 足りない情報などございましたらご連絡ください。 補足させていただきます。 すみません、どうかお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう