アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。宜しくお願いします。

仕組みはこうです。
・・・
<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);

?>

ご教授よろしくお願いします。

A 回答 (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直打ちなどの不正行為は正しく防がないといけないけど。

この回答への補足

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

補足日時:2010/02/17 01:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!