如果我的问题看起来很愚蠢,但我的解释就用完了。 我正在尝试设置一个包含一些新闻的页面。我拥有包含News_id,news_header,newsbody等属性的数据库。
我有2页第一页给出了按钮的简要说明列表,该按钮允许用户在其上阅读更多特定新闻。如果单击它,它会将相应的news_id值传递给第2页,该页面取出News_Id Value,从数据库值中查询相应的值并输出内容。
问题在于,我点击第1页的列表中没有哪个按钮看到新闻,页面2总是在林 * e中首先收到新闻的news_id值* 。这是代码
PAGE ONE(列表)
<form name='NewsLineSelection' method='post' action='news.php'>
<?php
$News_Query = "Select * from news order by Date_Posted Desc;";
$GetNews = mysql_query( $News_Query, $IVE_Connection ) or die("ERROR: ".mysql_error());
while ( $News_Database = mysql_fetch_array( $GetNews ) ){
?>
<tr><td ><?php echo $News_Database[1]; ?></td>//header
<tr><td ><?php echo $News_Database[2]; ?></td>//news body
...etc
<tr><td class="maintext">
<input type='hidden' name='NewsToRead' value='<?php echo $News_Database[0]; ?>'>//News_ID is here
<input type='submit' name='AddNews' value='Read More...' >
</td></tr>
}//end of the loop
第2页(包含信息详情)
$News_id = addslashes($_POST['NewsToRead']);
$News_Query = "Select * from news where news_id = ".$News_id.";";
$GetNews = mysql_query( $News_Query, $Connection ) or die("ERROR: ".mysql_error());
$News_Database = mysql_fetch_row( $GetNews );
//Then output the query's content
它看起来很完美。但是我真的不明白为什么如果在第1页的列表中有10个新闻,例如,无论我点击第2页中的$ News_id的值,将始终是列表中第一个新闻的ID第1页。
可能是我看不到的东西。它假设工作正常,但事实并非如此。
感谢您提供任何帮助或建议。
答案 0 :(得分:5)
那是因为您有多个具有相同名称的输入。你看错了。
您正在获取(获取)数据,您应该使用GET请求,而不是POST请求。
我的建议是,每个新闻标题都会包含在这样的链接中:
<h1>
<a href="news.php?id=<?php //Code to output the correct ID here ?>"><?php //Code to output the correct headline here ?>
</a>
</h1>
<h1>
用于重要标题,<h2>
用于不太重要的标题,<p>
用于段落,等等。)mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。