dポイントプレゼントキャンペーン実施中!

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がくるようにしたいですが、どのようにしたらいいでしょうか?

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

A 回答 (4件)

index.phpからindex.phpを再帰的に処理するならdoglist.phpは


includeしてやるのが妥当ですね。
ちなみに$_GETは汚染されている可能性が高いので、
きちんとバリデートしてやらないと痛い目にあいます。
以下サンプル

//inde.php
<a href="?dog=1">1</a>
<a href="?dog=2">2</a>
<a href="?dog=3">3</a>
<a href="?dog[]=1&dog[]=3">1と3を配列でわたす</a>
<a href="?dog=hoge">文字列</a>
<?
include "doglist.php";
print $sql;
?>

//doglist.php
<?php
$dog=$_GET["dog"]?$_GET["dog"]:0;
if(is_array($dog)) $dog=array_shift($dog);
if(preg_match("/[^0-9]/",$dog)) $dog=0;
$sql = "select name,sumai,birthady from mydog where tosi='$dog'";
?>

この回答への補足

yambejp様、ご回答ありがとうございます。

ご教授いただいた通りにやりましたが、
やっぱり、doglist.php側$dogが数字を受け取れません。

ここまで、来てあきらめたくないし、、本当に困っております。
ぜひ、解決方法をよろしくお願いします。

補足日時:2010/02/22 15:04
    • good
    • 0

>doglist.php側$dogが数字を受け取れません。



なんか言っていることが変???
うけとるのはあくまでもindex.phpですよね?
doglist.phpはインクルードしているだけなので
doglist.phpにリンクで飛んでも★は当然未設定です

index.phpで値を設定した後にdoglist.phpでそれを参照したいと
いうことであればセッションをつかうか、クッキーをつかうか、
サーバー上のファイルやsqlをつかうかのいずれかが一般的です。
    • good
    • 0

> $age = $_GET[dog];


> $sql = "select name,sumai,birthady from mydog where tosi=$age";

とりあえず、これは これで OK なはずです。

> 例え、<a href=http://XXXXX.index.php?dog=3>XXX</a>リンクをクックした際に

これの URL 部分なんですが、俺 勝手に

http://xxxxx/doglist.php?dog=3

と、脳内変換して 読んでしまいましたが、 index.php で 正しいって事ですね。
だとしたら、 index.php に $age = $_GET[dog]; を書かないといけません。

index.php から doglist.php には どうやって 数値を渡してるか分かりませんが、
いずれにせよ index.php で 受け取った dog を doglist.php に 渡す必要もあります。
    • good
    • 0

相変わらず がんばってますな~。


俺、FLASHの動作環境がないので、FLASH絡みのには 答えれなくてすみません。

俺が 前回書いたのって、$age = $_POST[age]; って、POST使ってましたもんね。
今回の場合は、$_GETです。

$age = $_GET[dog];

★には $age を入れてください。

この回答への補足

bm_hiro様、ご回答ありがとうございます。
doglist.php
<?php
$age = $_GET[dog];
$sql = "select name,sumai,birthady from mydog where tosi=$age";
...省略
?>
こんな感じでしょうか?
実際こうやってやると、どうやらtosi=$ageに値がこないぽいです。


index.php
側には何も書く必要がないですか?

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

補足日時:2010/02/18 05:14
    • good
    • 0

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