- 締切済み
リンクを押すして該当データを呼び出す?
こんにちは。宜しくお願いします。 仕組みはこうです。 ・・・ <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); ?> ご教授よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- anmochi
- ベストアンサー率65% (1332/2045)
今回の問題は、単に文字列の結合を行うにはどうするかというだけで、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直打ちなどの不正行為は正しく防がないといけないけど。
補足
anmochi様、ご回答ありがとうございます。 初心者のレベルでは、理解しにくいです。 今、日々勉強していますが、、、