• 締切済み

PHPロジックで・・・

PHP4をHTMLに埋め込むロジックを書いてます。 DBはpostgresqlです。 <? print("<SELECT NAME=sendgroup>"); print("<option value=name>グループ一覧"); for($i = 0; $i < row; $i++){ $str = pg_result($res,$i,0); print("<option value=$str>$str"); } print("</SELECT>"); ?> DBから取り込んだデータをrow(行数)分まわして HTMLのセレクトオプション表示をしたいのですが 表れません。$strにDBから取り込んだデータが 入ってます。 普通にprint($str)データの値はちゃんととれています。 HTMLのselect文でなにか規約があるのでしょうか?

  • fm0606
  • お礼率13% (100/761)
  • PHP
  • 回答数1
  • ありがとう数2

みんなの回答

  • mason
  • ベストアンサー率56% (9/16)
回答No.1

optionタグもselectタグ同様、閉じタグ必要なのでは? <select> <option value=val>オプション</option> </select> なので、 print("<option value=$str>$str</option>");

関連するQ&A

  • 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
  • <logic:iterate>のデータ表示に関して

    <logic:iterate>を使ってデータの表示を行っています。 データは2つあり、1つは、コードで、もう1つは名称です。 その2つのデータをselectのoptionとして表示したいのですが、 下記ソースにするとoptionのvalueの値がうまく入ってくれず、文字列(<bean:write~)になってしまいます。 うまくデータをいれるにはどうすればよいのでしょうか?? <html:select property="name"> <logic:iterate id="list" name="nameList"> <html:option value="<bean:write name='list' property='code' />"><bean:write name="list" property="name" /></html:option> </logic:iterate> </html:select>

  • セレクトボックスの初期選択をクッキーで固定したい。

    お世話になります。 php とmysql 初心者です。 php でmysqlから以下のようなセレクトボックスを作りました。 このセレクトボックスの初期値を(selected)を 見る人によって$cookie値によって固定したいのですが いろいろググったりしたのですが、 見当もつかず理屈から全くわかりません。 phpだけでできるのでしょうか? javascript等必要でしたら できれば具体的に教えて頂ければ大変助かります。 どうかご教授の程よろしくお願い致します。 <? $sql = "SELECT * FROM table ORDER BY index ASC"; $res = mysql_query( $sql ); $options=""; while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ if($cookie==$row['index']){ $options.="<option value='{$row['index']}'selected>{$row['name']}</option>\n";} else { $options.="<option value='{$row['index']}'>{$row['name']}</option>\n";} } $select="<select name='name'><option value=''>選択</option>\n{$options}</select>\n"; print $select; ?>

    • 締切済み
    • PHP
  • PHPのPEAR:DBでPostgreSQLを使用時、カラム名でデータが取得できない

    PHPのPEAR::DBのサンプルを公開しているサイトから以下のソースを引っ張ってきて、試してみました。すると、少しおかしな現象が発生したので、ご質問させていただきます。 ------------------------------ $dsn = "pgsql://postgres:pass@localhost/postgres"; $db = DB::connect($dsn); if (PEAR::isError($db)) { die($db->getMessage()); } print('接続に成功しました<br>'); $sql = 'select * from "USER_TBL"'; $res =& $db->query($sql); if (PEAR::isError($res)) { die($res->getMessage()); } while ($row =& $res->fetchRow()) { print($row['ID']); print($row['NAME'].'<br>'); } ------------------------------ 接続は問題なかったのですが、データベースからデータを取得する「print($row['ID']);」の部分が動かず、<br>だけ出力されてしまいます。IDのカラム名をダブルクォーテーションで囲っても、値が出てきません。ところが、print($row[0]);などのように、数値を指定してやると、その部分が出力されます。 また、カラム名を小文字に変えてみたりもしましたが、やはりそれでもデータは取得できませんでした。 理由がよく判らないのですが、カラム名でデータを引っ張ってきたいと思います。解決方法はありませんでしょうか?

    • ベストアンサー
    • PHP
  • PHPで検索画面を作成していますが上手に動きません

    PHP超!初心者です。よろしくお願いいたします。 行いたい事は、 HTML上にあるドロップダウンリストから項目を選択し実行すると、一致する項目をPHPMysql DBより抽出し表形式で表示したい。です。 PHPmysql→ ユーザー名:user パスワード:passwd データベース名:dbnameテーブル名:table_nm 検索画面→kensaku.html 検索結果→kensaku.php ●kensaku.html <html> <head> <title>検索</title> </head> <body> <br> <h1>種類</h1> <br> <form action = "http://localhost/lesson/kensaku.php" method="POST"> <p> 種類:<br /> <select name="betu" style="width:200" id="search_process"> <option value="" selected="selected">一覧から選択</option> <option value="あ">あ</option> <option value="い">い</option> <option value="う">う</option> <option value="え">え</option> <option value="お">お</option> </select></p> <p>    <input type="submit" name="exec" value="検索"> </form> </body> </html> ●kensaku.php <html> <body> <? if (!$con = mysql_connect("localhost", "user", "passwd")) {    print "接続エラー" ;    exit ; } mysql_select_db("dbname", $con) $sql = "select sid, name, price, betu, area, memo from table_nm" ; $sql . = "where betu like '$betu'" ; if (!$res = mysql_query($sql)) {    print "SQLエラー<BR>" ;    exit } <table border=1> <tr> <th>NO</th><th>名前</th><th>金額</th><th>種別</th> /tr> while($row = mysql_fetch_array($res)){    <tr>    <td><?php ($row['sid']); ?></td>    <td><?php ($row['name']); ?></td>    <td><?php ($row['price']); ?></td>    <td><?php ($row['betu']); ?></td>    </tr> } </table> </body> </html> 説明不足の部分がありましたら、申し訳ございません。 よろしくご教授お願いいたします。

    • ベストアンサー
    • PHP
  • <select> の<option value>が指定していできません。

    はじめましてチャーシューと申します。 <HTML> <HEAD><TITLE>LOGIN PAGE</TITLE> <?php $db=mysql_connect("localhost","shisan","yu0414") or die("データベースへの接続に失敗しました。"); mysql_select_db("shisan",$db); $rs=mysql_query("SELECT userID,name FROM user order by userID",$db); ?> </HEAD> <BODY> <?php print("<SELECT>"); while($row=mysql_fetch_array($rs)){ print("<option>"); print($row['name']); print("</option>"); } print("</SELECT>"); mysql_free_result($rs); mysql_close($db); ?> </BODY> </HTML> を <HTML> <HEAD><TITLE>LOGIN PAGE</TITLE> <?php $db=mysql_connect("localhost","shisan","yu0414") or die("データベースへの接続に失敗しました。"); mysql_select_db("shisan",$db); $rs=mysql_query("SELECT userID,name FROM user order by userID",$db); ?> </HEAD> <BODY> <?php print("<SELECT>"); while($row=mysql_fetch_array($rs)){ print("<option value="$row['userID']">");←ここを追加しました。 print($row['name']); print("</option>"); } print("</SELECT>"); mysql_free_result($rs); mysql_close($db); ?> </BODY> </HTML> のように変更すると Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\shisan\login.php on line 14というエラーが起きてしまいます。 環境はWindowsXP professional apache,mysql,php5はxamppを使用しています。 ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • php プルダウンメニュー

    メールフォームにて下記を作成しています。 <form action="confirm.php" method="post"> <select> <option>09:00</option> <option>09:30</option> <option>10:00</option> <option>10:30</option> </select> ~ <select> <option>11:00</option> <option>11:30</option> <option>12:00</option> <option>12:30</option> </select> </form> これを <?php //スタート時間の選択 print '<select name="start_time">' . "\n"; $start = date('Y') -0; $end = date('Y') +1; for ($i = $start; $i <= $end; $i++) { print '<option value="' . sprintf("%04d",$i) . '">' . sprintf("%04d",$i) . '</option>' . "\n"; } print '</select>~' . "\n"; //エンド時間の選択 print '<select name="end_time">' . "\n"; for ($i = 01; $i <= 31; $i++) { print '<option value="' . sprintf("%02d",$i) . '">' . sprintf("%02d",$i) . '</option>' . "\n"; } print '</select>' . "\n"; ?> の形のように記述できないでしょうか? 年月日の記述のためいろいろとおかしなとこがありますが、変更点等がございましたら、ご教授お願いします。

    • ベストアンサー
    • PHP
  • PHPでセレクトメニュー

    こんにちは。 PHPでDBから読み込んだ値によってセレクトメニュー、selected のタグが付く場所を変えたいんですが、自分の知識だけだと長文になってしまい短くできないものか悩んでます。 例えば値が1-3で、対応する値がA-Cだとすると、 <select name="menu"> <option value="1" selected>A</option> <option value="2">B</option> <option value="3">C</option> </select> で、データを受け取った値によって selectedの位置を"2"の後、"3"後に変更したいです。 自分で書くと <?php if ( $row["menu_c"] == 1){ <option value="1" selected>A</option> <option value="2">B</option> <option value="3">C</option> }elseif( $row["menu_c"] == 2){ <option value="1">A</option> <option value="2" selected>B</option> <option value="3">C</option> ・・・ <option value="3" selected>C</option> } ?> のようになり、項目数分だけ毎回書き足す事になってしまします。 お分かりになる方ご教授頂けないでしょうか。

    • ベストアンサー
    • PHP
  • 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プルダウンメニュー 日付チェック方法

    <?php //年の入力 print '<select name="year">' . "\n"; $start = date('Y') -0; $end = date('Y') +1; for ($i = $start; $i <= $end; $i++) { print '<option value="' . sprintf("%04d",$i) . '">' . sprintf("%04d",$i) . '</option>' . "\n"; } print '</select>年' . "\n"; //月の入力 print '<select name="month">' . "\n"; for ($i = 01; $i <= 12; $i++) { print '<option value="' . sprintf("%02d",$i) . '">' . sprintf("%02d",$i) . '</option>' . "\n"; } print '</select>月' . "\n"; //日の入力 print '<select name="day">' . "\n"; for ($i = 01; $i <= 31; $i++) { print '<option value="' . sprintf("%02d",$i) . '">' . sprintf("%02d",$i) . '</option>' . "\n"; } print '</select>日' . "\n"; ?> と記述して、日付選択のときに 本日より前の日を選んだら、エラー 本日より先の日を選んだら、OK 例→2009年01月01日は×  →2010年01月01日は○ というチェック方法をしたいのですが、どのように記述したらよろしいでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう