2010-06-01 56 views
1

我無法通過谷歌搜索正確的方式來逃避URL中的變量真正找到好的指導方針。基本上,我在表格中打印出一大堆MySQL查詢的結果,並且我希望每行中的一個條目成爲該結果頁面的鏈接。我認爲這很容易,我只是在某處丟失了一個撇號或反斜槓,但我無法弄清楚。下面是這是造成該錯誤的行:用PHP發送URL中的變量與回聲

echo "<a href = \"movies.php/?movie_id='$row['movie_id']'\"> Who Owns It? </a> "; 

,這是我得到的錯誤:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING 

如何解決這個問題?

此外,在URL中使用echo和變量的一些通用指導原則是什麼?

+0

感謝大家的快速回復。我測試了下面的所有答案,並且它們都可以工作(對於那些將來查看的答案)。這似乎主要是一個偏好/可讀性的問題。 – alexpelan 2010-06-01 18:21:21

回答

2
echo "<a href = \"movies.php/?movie_id='$row['movie_id']'\"> Who Owns It? </a> "; 

這裏有兩件事情應該改變。有一件事不應該在movies.php之後。第二個是,沒有任何圍繞url變量的可能。它應該是movie_id = $ row ['movie_id']。每當我使用一個php變量,我通常concatonate它,而不是嵌入到引用。所以,最後我會做這樣的事情:

echo "<a href=\"movies.php?movie_id=" . $row['movie_id'] . "\"> Who Owns It? </a>"; 
0

$row['movie_id']裏面的雙引號字符串是不允許的(特別是單引號)。無論是寫不',或者使用大括號語法:

echo "<a href = \"movies.php/?movie_id='$row[movie_id]'\"> Who Owns It? </a> "; 
echo "<a href = \"movies.php/?movie_id='{$row['movie_id']}'\"> Who Owns It? </a> "; 

進一步的信息,請參閱variable parsing

0

這是一個更好的辦法:

$movie_id = urlencode($row["movie_id"]); 
echo '<a href="movies.php/?movie_id=', $movie_id, '"> Who Owns It? </a> '; 

祝你好運!

0

這是一個更好的(ER)的方式:

$movie_id = urlencode($row["movie_id"]); 
echo "<a href=\"movies.php?movie_id={$movie_id}\"> Who Owns It? </a> "; 

更容易閱讀。除了單引號和雙引號速度之外,再也沒有什麼問題了。