• 締切済み

リンクを押すして該当データを呼び出す?

こんにちは。宜しくお願いします。 仕組みはこうです。 ・・・ <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
  • 回答数1
  • ありがとう数2

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 今回の問題は、単に文字列の結合を行うにはどうするかというだけで、SQLもましてやDBも何も関係ない。  で、PHPでは文字列リテラルを結合するのはピリオドを使う。  $s = "Hello," . " World!"  こうすると、$sには「Hello, World!」という文字列がセットされる訳だ。  次に変数だが、  $p = "String is $s";  とやったらできる(設定にもよるのかも知れない)。確実にするには  $p = "String is " . $s;  とすれば良いだろう。  年齢をPOSTして貰えば、例えばそれが$_POST['age']のような変数に入っているとすれば  $sql = "select name,sumai,birthady from mydog where tosi=" . $_POST['age'];  で良い。もちろんSQLインジェクションなどはきちんと対処していただきたい。  仮に、実はPHPでの文字列の結合は知ってて<a href = "http://XXXX.XXX.com/7">チワワ7歳、</a>のURLから「/7」を取り出す方法が分からないというのであれば、Apacheならばmod_rewriteに関する情報を探せば良いだろう。または、rewriteは使わずにリクエストURLの文字列を自前でパースして取得しても良い。いずれにせよURL直打ちなどの不正行為は正しく防がないといけないけど。

karisuma79
質問者

補足

anmochi様、ご回答ありがとうございます。 初心者のレベルでは、理解しにくいです。 今、日々勉強していますが、、、

関連する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
  • 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
  • 取得したデータを分割してDBに収めたい

    環境はXAMPPを使って、phpで作ろうと思ってます。 内容: 取得したデータを分割してDBに収めたいです。 たとえば以下のデータを取得した状態とします。 echo $name; 出力後のイメージ↓ <a class="name" href="www.abc.com/1">なまえ1</a> <a class="name" href="www.abc.com/2">なまえ2</a> <a class="name" href="www.abc.com/3">なまえ3</a> 上記データは全て繋がった状態なので <a class="name" href="www.abc.com/1">なまえ1</a>, <a class="name" href="www.abc.com/2">なまえ2</a>, <a class="name" href="www.abc.com/3">なまえ3</a>, とカンマで区切って、区切った値ごとに DBの指定したテーブルのnameフィールドに格納したいと考えております。 DBに格納したイメージ no name no1 <a class="name" href="www.abc.com/1">なまえ1</a> no2 <a class="name" href="www.abc.com/2">なまえ2</a>, no3 <a class="name" href="www.abc.com/3">なまえ3</a>, このときカンマで区切る方法を教えていただけないでしょうか?

    • ベストアンサー
    • PHP
  • 変数値の渡し

    index.php <a href=http://XXXXX.index.php?dog=1>XXX</a> <a href=http://XXXXX.index.php?dog=2>XXX</a> <a href=http://XXXXX.index.php?dog=3>XXX</a> <a href=http://XXXXX.index.php?dog=4>XXX</a> .. dog=1,dog=2,dog=3,dog=4は「変数=値」 このようなリンクがあります。 例え、<a href=http://XXXXX.index.php?dog=3>XXX</a>リンクをクックした際に doglist.php(データを呼び出す)このページの $sql = "select name,sumai,birthady from mydog where tosi=★";の ★部分に値3がくるようにしたいですが、どのようにしたらいいでしょうか? ご教授よろしくお願いします。

    • ベストアンサー
    • PHP
  • クリックしたリンク文字を含むデータを表示させる

    php+Mysqlでサイトを作っています。 例えば、こんなページがあったとします。 ファイル1 (a href="ファイル2.html")名前1(/a) (a href="ファイル2.html")名前2(/a) (a href="ファイル2.html")名前3(/a) この名前をクリックしたときに、名前=とび先のページで使う引数 としたいと思っています。 とび先のページには以下のような記述があり、前のページの名前部分を引き継いでデータを表示させる予定です。 ファイル2 $my_Row = mysql_query("SELECT * FROM student WHERE name IN ('名前1')",$my_Con); while($row = mysql_fetch_array($my_Row)){ echo "■名前-----------------<br />"; echo mb_convert_encoding($row["name"],"SJIS","EUC-JP"); (略) セッションを使えば実現できるのでしょうか? どなたかご指導いただければ助かります。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 動的サイトを作ってみたのですが、うまくデータベースからデータが取得できません。。。

    よろしくお願いいたします。 趣味でゲームソフトのデータベースを作っています。 MYSQLを使って動的にデータを表示させるサイトです。 http://www.game-minzoku.jp/meisai.php?titleid=5362 例えばこのようにパラメータをつけてページを展開しているのですが、 この『?title=****』の数字をアドレスバー上で変更してほかのページを表示させようとすると、 該当データがありません。 がと出てしまいます。 これがようやくGoogleにインデックスされ始めてきましたが、自然検索から入ってもこのようなことが起こってしまって困っています。 自分で調べてはみたものの、独学で進めているため、どうやって解決したらよいか分からず困っています。 どなたかお力添えいただけますと幸いです。 問題のページのソースはこちらです。(cssなどの不要と思われる個所はけしてありますが、もし足りない箇所あればおっしゃっていただけますと幸いです) ================================================================ <?php extract($_GET); mysql_connect('****','****','****'); mysql_select_db('****'); mysql_query("set character_set_client=utf8"); mysql_query("set character_set_connection=utf8"); mysql_query("set character_set_results=utf8"); $sql = "select * from game,genre,hanbai,kaihatsu,hard where game.genreid=genre.genreid and game.hardid=hard.hardid and game.hanbaiid=hanbai.hanbaiid and game.kaihatsuid=kaihatsu.kaihatsuid and game.titleid =" . $titleid; $result = mysql_query($sql); $rows = mysql_num_rows($result); $title_name_sql = "select title from game where titleid =" . $titleid ; $res = mysql_query($title_name_sql); $title_name = mysql_result($res,0); echo "<title>"; echo "$title_name | ゲーム民族</title>"; echo "</head><body>"; echo "<a href=index.php>ゲーム民族</a>"; echo "<h1><font size=2>ゲーム民族は"; echo "$title_name"; echo "の詳細を網羅したデータベースのサイトです</font></h1>"; echo "<p><a href=index.php>TOP</a> > $title_name</p>"; echo $title_name の基本情報; if($rows == 0){ echo "<p>該当データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo "<a href=",$row["url"],">"; echo "<img src=",$row["img"]," alt=",$row["title"],">"; echo "</a>"; echo "<table border=1 height=40 cellpadding=2 cellspacing=2 width=800>"; echo "<tr><td>タイトル</td><td>"; echo $row["title"]; echo "</td></tr>"; echo "<tr><td>発売元</td><td>"; echo "<p><a href=\"maker.php?hanbaiid=",$row["hanbaiid"],"\">", $row["hanbai"] ,"</a></p>\n"; echo "</td></tr>"; echo "<tr><td>開発元</td><td>"; echo "<p><a href=\"developer.php?kaihatsuid=",$row["kaihatsuid"],"\">", $row["kaihatsu"] ,"</a></p>\n"; echo "</td></tr>"; echo "<tr><td>機種</td><td>"; echo $row["hard"]; echo "</td></tr>"; echo "<tr><td>発売日</td><td>"; echo $row["hatsubai"]; echo "</td></tr>"; echo "<tr><td>ジャンル</td><td>"; echo "<p><a href=\"genre.php?genreid=",$row["genreid"],"\">", $row["genre"] ,"</a></p>\n"; echo "</td></tr>"; $sql2= "select * from game,title_creater,creater,roll where game.titleid=title_creater.titleid and title_creater.createrid=creater.createrid and title_creater.rollid=roll.rollid and game.titleid = " . $row["titleid"]; $result2 = mysql_query($sql2); $rows2 = mysql_num_rows($result2); while($row2 = mysql_fetch_array($result2)){ echo "<tr><td>クリエーター</td><td>"; echo $row2["creater"]; echo $row2["roll"]; echo "</td></tr>"; } } } ?> </body></html> ================================================================ 本当に見にくい意味不明のソースで申し訳ありませんが、よろしくお願いいたします!

    • ベストアンサー
    • 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
  • phpからdbへアクセスし、レコードを削除したい

    mysql・php初心者です。 現在、mysqlを使ってデータベースの構築をしています。 レコードの登録、検索に関しては出来たのですが、 何故かレコードの修正と削除が出来ません。 教えてください。 プライマリーキーはshop_id($shop_id)で、任意で数字を付けれるようにしてあります。 登録したデータベース側の表示は extract($_POST); $db = mysql_connect("localhost","********","********") or error_func(); mysql_select_db("******") or error_func(); mysql_query("set names utf8"); $result = mysql_query("select * from mobile_shop_entry where shop_name = '$shop_name'"); echo "<h3 class='message'>" . $shop_name . "の店舗情報を表示</h3>\n"; while($row = mysql_fetch_array($result)){ echo "<table id='table_02'><tr><th colspan='2' align='left' >" . $row['shop_name'] . "</th></tr>\n"; echo "<tr><th>会社名</th><td>" . $row['shop_name'] . "</td></tr>\n"; echo "<tr><th>住所</th><td>" . $row['shop_area'] . $row['shop_address'] . "</td></tr>\n"; echo "<tr><th>電話番号</th><td>" . $row['shop_tel'] . "</td></tr>\n"; echo "<tr><th>E-mail</th><td>" . $row['shop_mail'] . "</td></tr>\n"; echo "<tr><th>営業時間</th><td>" . $row['shop_time_am'] . "~" . $row['shop_time_pm'] . "</td></tr>\n"; echo "<tr><th>定休日</th><td>" . $row['shop_holiday'] . "</td></tr>\n"; echo "<tr><th>ID</th><td>" . $row['shop_id'] . "</td></tr>\n"; echo "<tr><td colspan='2' align='right'>\n"; echo "<img src='../images/edit-page-blue.gif'> <a href='shop_syuusei.php?shop_id="; echo $row['shop_id']; echo "'>ショップ情報を修正</a>\n"; echo " <img src='../images/delete-page-red.gif'> <a href='shop_sakujyo.php?shop_id="; echo $row['shop_id']; echo "'>ショップ情報を削除</a>\n"; echo " <img src='../images/edit-yellow.gif'> <a href='car_entry.php?car_id=\n"; echo $row['shop_id']; echo "'>在庫情報を登録</a></td></tr>\n"; } echo "</table>\n"; mysql_close($db) exit(); } ?> と記述しました。 このレコードを削除するには、上記のリンク部分 <a href='shop_sakujyo.php?shop_id="; echo $row['shop_id']; から、shop_sakujyo.phpという名前のファイルに <?php extract($_POST); extract($_GET); mysql_connect("localhost","*****","*****"); mysql_select_db("*******"); mysql_query("set names utf8"); //情報を削除 if($kakunin=="確認"){ $sql = "delete from mobile_shop_entry where shop_id = $shop_id "; mysql_query($sql); echo "<h1 class='message_red'>レコードの削除が完了しました。</h1>\n"; exit; } ?> 表示は削除が完了しました。と表示されるのですが、実際のデータは削除されていません。 どこが間違っているのかご存じのかたはいらっしゃいますでしょうか。。。 phpは5.0を使っています。

    • ベストアンサー
    • MySQL
  • MySQLでデータ表示

    MySQLでデータの表示を行っています 10件ずつ表示し、11件からは2ページ目に表示したいです サイトや本を見ながらデータ表示と次の10件のリンクは表示されるよう自力で頑張ったのですが 次の10件を押してもデータが変わらず1件目から10件目のままです どこが違うか教えてもらえますか。 どうコードを入力するか教えてくれたらありがたいです 一覧 ta2.phpです <html> <body> <form action = "ta2.php" method="GET"> <input type="hidden" name="page" value="0"> </form> <?php //データベースに接続 if (!$con = mysql_connect("localhost", "root", "admin")) { echo "接続エラー" ; exit ; } //データベースを選択 if (!mysql_select_db("db_test", $con)) { echo "データベース選択エラー" ; exit ; } //LIMITを使ったSELECT文を作成 $sql = "select * from tbl_test" ; $sql.= " limit " . $page*10 . ", 10" ; //SQL実行 if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } //検索結果表示 echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> <th>操作</th> </tr>"; while($row = mysql_fetch_array($res)) { $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); echo "<tr> <td>$ID</td> <td>$NAME</td> <td>$ADDR</td> <td><a href='edit.php?番号=$ID'>修正</a> <a href='delete.php?番号=$ID'>削除</a></td></tr>"; header('content-type: text/html; charset="utf-8"'); if ($_GET) { // データがGETされていたら $page = isset($_GET['page']) ? $_GET['page'] : ''; // 取得 } } $sql = "select count(*) from tbl_test " ; if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } $row = mysql_fetch_array($res) ; $cnt = $row[0] ; //ページ表示 if(!$cnt > 10) echo ceil($cnt / 10), "ページの中の", $page + 1, "ページ目を表示<br>" ; //前の10件 if ($page != 0) { echo "<a href = ta2.php?page= $page>" ; echo "&lt 前の10件" ; } //次の10件 if (($page + 1)*10 < $cnt) { echo "<a href = ta2.php?page= $page>" ; echo " 次の10件 " ; } //結果セットの開放 mysql_free_result ($res) ; //データベースから切断 mysql_close($con) ; ?> </table> </body> </html>

    • ベストアンサー
    • MySQL
  • FORM1つでリンク

    いつもお世話になっております。 既にある質問も調べてみたのですが <form name="top" method="post" action="xxx.cgi"> <input type = "hidden" name="data" value="open"> <a href="#" onClick="submit();">オープン</a> <input type = "hidden" name="data" value="close"> <a href="#" onClick="submit();">クローズ</a> </form> FORMを1つで、hrefのリンクみたいにして違う値を 送信したいのですが、上記だと 二つ目のリンクが上手く出来ません。 どなたかお知恵をお貸し下さい