2012-07-28 77 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

相关问题