如何在链接中设置参数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在链接中设置参数?相关的知识,希望对你有一定的参考价值。
我从数据库中查询到我正在研究的论坛。由于某些原因,我无法获得ID出现在链接中。我一直在想弄清楚我的大脑。它可以在除此页面之外的所有其他页面上使用。这是我正在使用的代码:
$topicsql = "SELECT topic_id,topic_subject,topic_date,topic_cat FROM topics
WHERE topic_cat = " . $row['cat_id'] . "
ORDER BY topic_date DESC LIMIT 1";
$topicsresult = mysqli_query($con, $topicsql);
if(!$topicsresult)
{
echo 'Last topic could not be displayed.';
}
else
{
if(mysqli_num_rows($topicsresult) == 0)
{
echo 'no topics yet';
}
else
{
while($topicrow = mysqli_fetch_assoc($topicsresult))
//Limit the number of characters in the latest topic link
$subject= substr($topicrow['topic_subject'], 0, 25);
$topic=$topicrow['id'];
echo '<a href="topic.php?id=' . $topicrow['topic_id'] . '">' . $subject . '…</a><br> on ' . date('m-d-Y', strtotime($topicrow['topic_date']));
}
}
当您将鼠标悬停在链接上时,我只会得到topic.php?id=
,但我应该会看到topic.php?id=24
答案
尝试这种方法:
$query = "SELECT topic_id,topic_subject,topic_date,topic_cat FROM topics
WHERE topic_cat = ?
ORDER BY topic_date DESC LIMIT 1";
if ($stmt = mysqli_prepare($con, $query)) {
mysqli_stmt_bind_param($stmt,'i', $row['cat_id']);
/* execute prepared statement */
mysqli_stmt_execute($stmt);
/*bind the result*/
$stmt->store_result();
/*Count the rows*/
if( mysqli_stmt_num_rows($stmt) > 0){
while($row = mysqli_fetch_assoc($stmt)){
/*Limit the number of characters in the latest topic link*/
$link = '<a href="topic.php?id=' . $row['topic_id'] . '">';
$link .= substr($row['topic_subject'], 0, 25) . '…</a><br>';
$link .= 'on '.date('m-d-Y', strtotime($row['topic_date']));
echo $link;
}
}else{
echo 'Last topic could not be displayed.';
}
/* close statement */
mysqli_stmt_close($stmt);
}else{
printf("Errormessage: %s
", mysqli_error($con));
}
由于正在创建链接,这意味着您的查询找到了行,如果看到id为空,则表明列名不匹配。
[这时您只能说,我的建议是像上面那样重写代码,我只想指出准备语句,命名变量,减少数量变量,缩进,吃蔬菜的最佳实践...。所有这些都将帮助您避免错误,就像代码中令人困惑的部分一样:
首先查询:
SELECT topic_id ...
然后检索时:
$topic=$topicrow['id'];
打印查询:
echo '<a href="topic.php?id=' . $topicrow['topic_id']
因此,请仔细阅读代码,并注意细节。
以上是关于如何在链接中设置参数?的主要内容,如果未能解决你的问题,请参考以下文章