PHPを使用して犬の情報をHTMLで出力する方法

このQ&Aのポイント
  • PHPを使用して、テーブルから犬の情報を取得し、HTMLで出力する方法について教えてください。
  • 具体的には、テーブル名が「dog_table」で、フィールドには「id」「tosi」「name」「sumai」「seibetu」「birthday」があります。
  • 質問者は、8歳の犬の名前、住まい、誕生日の情報のみを出力したいとしています。
回答を見る
  • ベストアンサー

phpで以下のようにHTMLで出力させたいです

テーブル名 dog_table フィールド id tosi(8など) name(まさお) sumai(東京) seibetu(オス) birthday(20010602) このようなテーブルがあります。 そして実際にはこのようにデータは入っています。 tosi   name   ookisa   sumai  seibetu birthday 8   まさお   中   東京   オス 20010602 7   かおり   大   大阪   メス 20050906 8   トシ   大   大阪   オス 20020615 10   へん   少   東京   オス 20050101 8   まつり   大   東京   メス 20060509 ・ ・ ・ やりたいことは、、、 8歳の犬の名前、住まい、誕生日だけ phpで以下のようにHTMLで出力させたいです。 まさお 東京 20010602 トシ 大阪 20020615 まつり 東京 20060509 皆様どうぞご教授のほどよろしくお願いします!!

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

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

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

補足ありがとうございました。 自分はMySQL以外やった事がありませんので、確認させていただきました。 DB名は分かりませんでしたので、仮に「dogs」としております。 そちらのご希望のものになっているか分かりませんが、 色々やっているうちに 無駄に長くなってしまいました。 <?php $db = mysql_connect("localhost", "root" , "" ); mysql_select_db("dogs",$db) or die(mysql_error()); $sql = "SET NAMES utf8"; mysql_query($sql); //------------------------------------------ $me = $_SERVER[PHP_SELF]; $age = $_POST[age]; //------------------------------------------ $sql = "select name,sumai,birthday from dog_table"; if ($age) { $sql.= " where tosi=$age"; } // 年齢が選択されていた場合、抽出 $result = mysql_query($sql); $row = mysql_num_rows($result); //------------------------------------------ if ($row) { if ($age) { $out = "年齢" . $age . "歳の犬は $row 匹いました。<br>\n"; } else { $out = "全件表示<br>\n"; } $out.= "<table border=1><tr bgcolor=cornsilk><td>名前</td><td>住まい</td><td>誕生日</td></tr>\n"; while($dt = mysql_fetch_assoc($result)) { $out.= "<tr>\n"; $out.= "<td>" . $dt[name] . "</td>\n"; $out.= "<td>" . $dt[sumai] . "</td>\n"; $out.= "<td>" . $dt[birthday] . "</td>\n"; $out.= "</tr>\n"; } $out.= "</table>\n"; } else { $out = "年齢" . $age . "歳では、該当がありませんでした。<br>\n"; } //------------------------------------------ $out.= "<hr> 年齢を選択してください。 <form action=$me method=post> <select name=age>\n"; for($i=1;$i<20;$i++) { $chk = ($i == $age) ? "selected" : ""; $out.= "<option value='$i' $chk>$i 歳\n"; } $out.= "</select> <input type=submit name=submit value='抽出'> </form>\n"; $out.= "<hr><a href=$me>全件表示</a>\n"; //------------------------------------------ ?> <html> <head> <meta http-equiv=content-type content=text/html; charset=utf-8> </head> <body> <?= $out; ?> </body> </html>

karisuma79
質問者

補足

bm_hiro様、ご回答ありがとうございます。 まだMySQLをし始めて間もないので勉強になりました。 ところで、歳を抽出するところですが、歳を選択して「抽出」を押しても、 いつも1歳(1歳~10歳の中で)が表示され、データは1歳から10歳までのすべてのデータが表示されます。 自分で、原因を調べて見ましたが、勉強不足でわかりません。 ぜひ、教えていただけますよう、宜しくお願い致します。

その他の回答 (2)

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

んー、実は 自分の環境では、問題なく動作する為、原因がわかりません。 まぁ、多分、ageが ちゃんと 送信されてないか、受け取れていないかだろうとは思うのですが。 一番上に表示されるのは 常に「全件表示」になってないですか? 8歳を選択した場合は、「年齢8歳の犬は 3 匹いました。」となる予定なのですが。 ちなみに、PHPのバージョンなんて分かりますか? 分からない場合は、前回のスクリプトの先頭に、 phpinfo(); って、入れてもらえれば だらだらと表示されると思います。 一番上にバージョンでますので、それを教えてください。

karisuma79
質問者

補足

bm_hiro様、毎度ご回答ありがとうございます。 実は、昨日家にある自宅サーバではたとえ8歳を選択したら8歳のデータではなく、全体データが表示されましたけど、今日レンタルサーバでやったらちゃんと8歳を選んだら8歳だけのデータが出力されました。 おそらく、自宅のサーバのなんらかの設定が間違っていると思います。 ダメだった自宅のサーバのバージョンは今の所学校なので、確定できません、すみません。レンタルサーバならPHPバージョンはVersion 5.2.11です。今日、家に戻る次第二つのサーバを比べながら、原因を模索したいと思います。 ご教授して頂きありがとうございました。 これからもよろしくお願い致します。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.1

以下の補足お願いします。 ・どの程度 PHPを扱えますか? ・DBは MySQLですか?他のですか?

karisuma79
質問者

補足

bm_hiro様 >・どの程度 PHPを扱えますか? ソースを見てある程度理解できます。 >・DBは MySQLですか?他のですか? MySQLです。 よろしくお願いします。

関連するQ&A

  • phpで以下のようにHTMLで出力させたいです

    テーブル名 dog_table フィールド id tosi(8など) name(まさお) sumai(東京) seibetu(オス) birthday(20010602) このようなテーブルがあります。 そして実際にはこのようにデータは入っています。 tosi   name   ookisa   sumai  seibetu birthday 8   まさお   中   東京   オス 20010602 7   かおり   大   大阪   メス 20050906 8   トシ   大   大阪   オス 20020615 10   へん   少   東京   オス 20050101 8   まつり   大   東京   メス 20060509 ・ ・ ・ やりたいことは、、、 8歳の犬の名前、住まい、誕生日だけ phpで以下のようにHTMLで出力させたいです。 まさお 東京 20010602 トシ 大阪 20020615 まつり 東京 20060509 皆様どうぞご教授のほどよろしくお願いします!!

    • ベストアンサー
    • MySQL
  • リンクを押すして該当データを呼び出す?

    こんにちは。宜しくお願いします。 仕組みはこうです。 ・・・ <a href = "http://XXXX.XXX.com/7">チワワ7歳、</a> <a href = "http://XXXX.XXX.com/8">チワワ8歳、</a> <a href = "http://XXXX.XXX.com/9">チワワ9歳、</a> <a href = "http://XXXX.XXX.com/10">チワワ10歳、</a> ・・・ このようなのリンクがあります。 (ここからはFlashです。) 各リンクを押すと各一つのFlashの画面が表示されます。 画面にはボタンがありましてクリックすると、 次の画面で該当するチワワのデータが表示されます。 詳細: DB名:dogs テーブル名:mydog に以下のようなデータあります。 tosi   name   ookisa   sumai  seibetu birthday 8   まさお   中   東京   オス 20010602 7   かおり   大   大阪   メス 20050906 8   トシ   大   大阪   オス 20020615 10   へん   少   東京   オス 20050101 8   まつり   大   東京   メス 20060509 この中で、8歳の犬の名前、住まい、誕生日だけを出力して、flashに呼び込んで、見えるようにします。 今現在、Flashnにデータベースの8歳犬の 名前、住まい、誕生日を呼び込むことができました。 ただし、$sql = "select name,sumai,birthady from mydog where tosi=8"; にで tosi=8に設定して8歳のデータを呼び込みました。これだとデータが固定されちゃって、 チワワ9歳、チワワ10歳のリンクを押しても、チワワ8歳のデータが表示されます。これをなんとか解決したいです。 自分は、tosi=8の8部分を変数にしたらいいだろうと思いますが、、、どうのように変数をしたら良いかわかりません。 以下は データを取り出すソースです。 dogdb.php <?PHP $db = mysql_connect("", "master" , "XXXXXX" ); mysql_select_db("dogs"); $sql = "select name,sumai,birthady from mydog where tosi=8"; $results = mysql_query($sql); echo "<?xml version=\"1.0\"?>\n"; echo "<mydog>\n"; while($line = mysql_fetch_assoc ($results)){ echo "<item>" . $line["name"] . $line["sumai"] .$line["birthady"] ."</item>\n"; } echo "</mydog>\n"; mysql_close($db); ?> ご教授よろしくお願いします。

    • 締切済み
    • PHP
  • 見やすく出力させたいです。

    PHPでのXMLデータを呼び込んだら、 まつお東京20010203 とき大阪20090625 ひまわり東京20100206 このように格好わるく出力されました。 これを下記のように見やすく出力させたいですがどうしたらいいですか? まつお   東京    20010203 とき     大阪    20090625 ひまわり  東京    20100206 下記はphpソースです。 ...省略 echo "<?xml version=\"1.0\"?>\n"; echo "<dogDB>\n"; while($line = mysql_fetch_assoc ($result)){ echo "<item>" . $line["name"] . $line["sumai"] .$line["birthady"] ."</item>\n"; } echo "</dogDB>\n"; ...省略 ご教授よろしくお願いします。

    • 締切済み
    • PHP
  • 見やすく出力させたいです。

    DB→PHPでのXMLデータを呼び出し→Flashに出力 すると下記のように このように格好わるく出力されます。 まつお東京20010203 とき大阪20090625 ひまわり東京20100206 これを下記のように見やすく出力させたいですがどうしたらいいですか? まつお   東京    20010203 とき     大阪    20090625 ひまわり  東京    20100206 アクションスクリプトソースです。AS(2.0) var theXML:XML = new XML(); theXML.ignoreWhite = true; theXML.onLoad = function() { var nodes = this.firstChild.childNodes; for(i=0; i<nodes.length; i++) { thelist.addItem(nodes[i].firstChild.nodeValue,i); } } theXML.load("http://XXXX/doglist.php?dog=8); 下記はphpソースです。 ...省略 echo "<?xml version=\"1.0\"?>\n"; echo "<dogDB>\n"; while($line = mysql_fetch_assoc ($result)){ echo "<item>" . $line["name"] . $line["sumai"] .$line["birthady"] ."</item>\n"; } echo "</dogDB>\n"; ...省略 ご教授よろしくお願いいたします。

  • mysqlで絞り込み

    mysql初心者です。 以下のOFFICEテーブルとSTAFFテーブルがあった場合、 office_idが同じ場合はoffice_nameを取得して office_idが0の場合はoffice_nameに何も入っていない状態で 取得したいのですが、やり方が分からずに困っております。 どなたかご教授ください。 よろしくお願いいたします。 OFFICE office_id office_name 100000  東京 100001  大阪 STAFF staff_id office_id staff_name 100000 100000 ヤマダ 100001 100001 オカベ 100002 0    ワタナベ 希望結果 staff_id office_id office_name staff_name 100000 100000 東京     ヤマダ 100001 100001 大阪     オカベ 100002 0           ワタナベ

    • ベストアンサー
    • PHP
  • HTMLに埋め込んだPHPがうまく出力できない

    PHP初心者です。 PHPファイルで、HTMLに埋め込んだPHPがうまく出力できません。 このファイルはもう一つのPHPファイルに読み込んで実行しています。 例えば、 <?php echo "<p>こんにちは</p>"; ?> とすると、 こんにちは "; ?> と出力されてしまいます。 とても初歩的なところで詰まっているようでお恥ずかしいのですが、 原因が分からないので回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPをHTMLで出力したい。

    PHPを使い、 仮にaaa.htmlの中にbbb.htmlというデータをインクルードして、 aaa.phpではなく、aaa.htmlとして出力したいのですが、うまくいきません。 .htaccessを 調べたらよく出てくる AddType application/x-httpd-php html を入れて 同じ階層にアップしてもうまくいきません。 具体的にどうなるかというと、~~/aaa.htmlと打つ(URL欄に)とダウンロードになってしまいます。(ページのaaa.htmlをデータをダウンロード) ブラウザはサファリです。 これはaaa.htmlのデータをxhtmlと宣言しているからでしょうか? AddType application/xhtml+xml html もいれて AddType application/xhtml+xml html AddType application/x-httpd-php html ともしてみたのですが、結果は同じです。 ちなみにaaa.phpでは問題なく表示されます。 レンタルサーバーでもphpは対応しています。 AddType application/xhtml+xml html AddType application/x-httpd-php html (改行) でもダメです、調べた限りをつくしました。。 解決策の程、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPで出力したHTMLのソースが汚い

    ただいまPHPを勉強中の者です。 PHPでHTMLを書き出してみたのですが、ソースが改行もインデントもされておらず非常に見にくくてなってしまいました。 改行は\n、インデントは\tを入れればよいというところまでは調べたのですが、それではphpのソースが\tだらけになってしまうのでは、、、と思っています。 みなさんがPHPでHTMLを書き出すときに効率良くきれいなHTMLソースにするために行っている方法を教えて頂きたく思います。 何卒よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPで動的にHTMLを出力したときの現象

    サーバは自分で立てたcentOS5.4(i386版)を使用しており、そこでホームページの作成をしております。 ホームページは、PHP5+XHTML+CSS+JavaScriptを使用しており、それぞれ別ファイルで作成してあります。 アクセス先はPHPで、そのPHP内にテンプレートを表示する処理を記述してあるのですが、PHPで動的に表示した状態のソースを見ると、生のHTMLの内容と違った状態で表示されてしまいます。 生のHTMLと動的に出力したHTMLのソースは下記の通りです。 生のHTML ================= <?xml version="1.0" encoding="utf-8"?> <!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" dir="ltr"> <head> ・ ・ ・ 動的のHTML ================= ?????????<?xml version="1.0" encoding="utf-8"?> <!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" dir="ltr"> ・ ・ ・ 動的に出力した状態ですと、ソースの最初に"?????????"という文字が表示されてしまいます。 PHPやHTMLなど、全てのファイルは 文字コード:UTF-8 で、HTMLとCSSは 改行コード:CRLF で、その他のPHPやJavaScriptは 改行コード:LF で作成しております。 php内では、 まずテンプレートを"openFile"で開き、 文字列置換($bodyはテンプレートファイル) $body = str_replace("\\", "\\\\", $body); $body = str_replace("\"", "\\\"", $body); eval("\$body = \"$body\";"); をして、最後に mb_http_output("UTF-8"); header("Content-type: text/html;charset=UTF-8"); print($body); としてあります。 文字コードの関係で文字化けを起こしているため、最初に"?????????"とソースに表示されてしまっているのかと思うのですが、どこが原因なのか分かりません。 原因がお分かりになる方、同じ現象になったことのある方いらっしゃいましたら、ご教授のほどお願い致します。

    • ベストアンサー
    • HTML
  • JavaScriptからPHP呼び出しHTML出力で…

    現在phpにてブログのカテゴリリストを取得して、投稿ページ (HTML)上にカテゴリのプルダウンを表示しようと試みている のですが、JS(JavaScript)からPHPを呼び出しHTML上に出力する 際にPHPファイルにincludeがあるとjavascriptエラーとなって しまいます。 ちなみに参考にしたホームページはこちらです。 http://www.res-system.com/item/383 PHPソース(init.php)↓ <?php include_once('entry.php'); // ←エラーの箇所 // ヘッダ header("Content-Type: application/x-javascript; charset=UTF-8"); // インスタンス生成 $obj = new XMLComm(); // 初期設定 $obj->XMLComm(); // カテゴリ取得 echo "document.write(\"$obj->getCategories()\")"; ?> HTMLソース(entry.html)↓ <HTML> <HEAD> <TITLE>BLOG ENTRY</TITLE> </HEAD> <BODY> ブログエントリー</br> <script type="text/javascript" src="/init.php"></script> </BODY> </HTML> ちなみに、include等が無い状態で任意の文字で試したのですが こちらはきちんと表示されます。 javascriptでincludeなど呼び出しているphpを起動することは できないのでしょうか… 解決策、別案などありましたらご教授いただけたら幸いです。 phpを始めたばかりの初心者で、質問自体おかしい点があるかも しれませんが、、どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP