2012-07-28 157 views
0

更新與別人的建議,但似乎仍然卡住。創建一個頁面,顯示模板上的ID信息

我在這裏使用這個php代碼來顯示來自我的數據庫使用ID的信息。我在我的主頁上創建了一個如下所示的鏈接。

<h1><a href="fetch.php?id=<?php echo $row_getDisplay['post_id']; ?>"><?php echo $row_getDisplay['title']; ?></a></a></h1> 

我有那麼當他們點擊,它需要他們我的PHP FIEL我叫fetch.php和下面的代碼是什麼在那裏文章的標題。我已經圍繞着別人的工作建立了它。出於某種原因,我無法通過第一個「其他」聲明。所以我一直得到「你必須選擇一個有效的位置」我對PHP相當新,所以我不明白爲什麼代碼失敗。

<?php require_once('Connections/XXXXXX.php'); ?> 
<?php 
if (isset($_GET['id']) == false) // check if id has been set 
{ 
echo "You must select a location"; // if not, display this error 
exit; 
} else { 
$id = (int) $_GET['id']; 
if (is_numeric($id) == false) 
**{ 
echo "You must select a valid location."; 
} else {** 

mysql_select_db($database_XXXXXX, $XXXXXX); 
$query = MYSQL_QUERY("SELECT * FROM news WHERE post_id "); 

if (MYSQL_NUM_ROWS($query) == "1") 

{ 
$fetch = MYSQL_FETCH_ARRAY($query); // set $fetch to have the values from the table 
echo "Title: " . $fetch['title'] . "<BR>"; // output the info 
echo "Blog: " . $fetch['blog_entry'] . "<BR>"; // etc... 
echo "Author: " . $fetch['author'] . "<BR>"; // etc... 
} else { 
echo "No match in database found."; // if no match is found, display this error 
} 
} 
} 

任何幫助表示讚賞。如果你能爲我找到一個更好的解決方案,那就太好了。

+1

停止使用舊的'MYSQL_QUERY'並開始使用'PDO',因爲不再維護古老的mysql_ *函數並且社區已經開始棄用過程。 – 2012-07-28 17:25:03

+0

同上blasterfield說。不過,鑑於你提到你維護一個較舊的代碼庫,你很可能無法在很短的時間內進行開發。 – prodigitalson 2012-07-28 18:04:50

+0

我沒有意識到自從11年前我正在學習一個老教程。 – user1557936 2012-07-28 18:47:14

回答

2

你不應該使用$HTTP_GET_VARS它的棄用,除非它打開它不會被填充。改爲使用$_GET

if (isset($_GET['id']) == false)

+0

爲什麼PHP允許MYSQL_FETCH_ARRAY? – codingbiz 2012-07-28 16:41:54

+0

不,函數和方法不區分大小寫,雖然它總是很好地對待它們,因爲它們會導致一些使用動態方法或函數調用的庫區分大小寫 - Doctrine是一個這是一個很好的例子。 – prodigitalson 2012-07-28 18:04:02

+0

酷!感謝那 – codingbiz 2012-07-28 18:10:11

0

使用$_GET您的if語句:

if (isset($_GET['id']) == false) 

此外,您需要將您$_GET值轉換爲整數,因爲它是目前一個字符串。

緊接着,如果上述說法,在else,把這個:

$id = (int) $_GET['id']; 

這樣,你的is_numeric()將正常工作。

0

試試這個;

<?php 
require_once('Connections/XXXXXX.php'); 

if (isset($_GET['id'])) // check if id has been set 
{ 
$id = $_GET['id']; 
if (is_numeric($id) == false) 
{ 
echo "You must select a valid location."; 
} else { 

mysql_select_db($database_XXXXXX, $XXXXXX); 
$query = MYSQL_QUERY("SELECT * FROM news WHERE locationid = 'news.post_id' "); 

if (MYSQL_NUM_ROWS($query) == "1") 

{ 
$fetch = MYSQL_FETCH_ARRAY($query); // set $fetch to have the values from the table 
echo "Title: " . $fetch['title'] . "<BR>"; // output the info 
echo "Blog: " . $fetch['blog_entry'] . "<BR>"; // etc... 
echo "Author: " . $fetch['author'] . "<BR>"; // etc... 
} else { 
echo "No match in database found."; // if no match is found, display this error 
} 
} 
} 
else{ 
echo "You must select a location"; // if not, display this error 
exit; 
} 
?> 

此外,我需要一個關於news.post_id的澄清,從哪裏抓住這個?

+0

我的主鍵被命名爲post_id。我認爲填寫該位置與我的主頁是如何進行糾正的。我已經遵循了你所寫的內容,並且通過了第一條If語句只是爲了「你必須選擇一個有效的位置」。我試圖改變ID到post_id不知道他們是否會幫助。它沒有。 – user1557936 2012-07-28 18:45:40

相關問題