2016-06-13 99 views
1

所以我有一个数据库程序运行良好的连接和所有除了一件事我试图让我的数据库中定义的“forum_name”并将其设置为我的标题。很多时候,如果我点击链接,它会将我带到该帖子或论坛页面,它将获得forum_name下的内容并将其作为标题打印出来。使用PHP和MySql数据库设置网页标题

这是db_connect.php

<?php 
$db = new mysqli("localhost", "root", "","forum") or die("ERROR: With Connecetion"); 
?> 

这是复位:

<?php 
session_start(); 
require"db_connect.php"; 
//get the page id 
if(isset($_GET['id']) &&is_numeric($_GET['id'])){ 
    $id = $_GET['id']; 
}else{ 
    die("Error! Does not exist!"); 
} 
//check if Valid Id 
$idCheck = $db->query("SELECT * FROM forum_tabl WHERE forum_id = 'id'"); 
if($idCheck->num_rows !==0){ 
    die("error"); 
} 
$row = $idCheck->fetch_object(); 
$sql = "SELECT post_id, post_title FROM forum_post WHERE forum_id? AND type= 'o'"; 
if($query = $db->prepare($sql)){ 
    $query->bind_params('s', $id); 
    $query->bind_result($post_id, $post_title); 
    $query->execute(); 
    $query->store_result(); 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title><?= $row->forum_name?></title> 
</head> 

<body> 

<div id="container"> 
    <!-- Theres content that will go here --> 
</div> 

</body> 
</html> 
+0

'<?='快捷键在某些服务器上不起作用。试试'<?php echo $ row-> forum_name; ?>' – developerwjk

+0

不行仍然不起作用。 @developerwjk我知道快捷方式在我的服务器上工作,但雅我收到错误通知:试图获得标题线上的非对象的属性。 –

+0

标题应该来自第一个还是第二个查询?在第一个查询中,你有'id ='id''这可能是不正确的,因为id可能应该是一个数字,对吧? – developerwjk

回答

0

我认为这个问题是在这条线。

$idCheck = $db->query("SELECT * FROM forum_tabl WHERE forum_id = 'id'"); 

您必须将其替换如下。

$idCheck = $db->query("SELECT * FROM forum_tabl WHERE forum_id = '$id'"); 
+0

谢谢,但我也必须改变if语句 –

+0

是的。在这种情况下,您必须更改if语句$ idCheck-> num_rows == 0而不是$ idCheck-> num_rows!== 0 –

+0

这应该是'WHERE forum_id =?'不是这个。 'bind_param'调用是正确的,可以在这里重复以解决问题。 – tadman

0
<?php 
session_start(); 
require"db_connect.php"; 
//get the page id 
if(isset($_GET['id']) &&is_numeric($_GET['id'])){ 
    $id = $_GET['id']; 
}else{ 
    die("Error! Does not exist!"); 
} 
//check if Valid Id 
$idCheck = $db->query("SELECT * FROM forum_tabl WHERE forum_id = " . $id); 
if($idCheck->num_rows !==0){ 
    die("error"); 
} 
$row = $idCheck->fetch_object(); 
$sql = "SELECT post_id, post_title FROM forum_post WHERE forum_id? AND type= 'o'"; 
if($query = $db->prepare($sql)){ 
    $query->bind_params('s', $id); 
    $query->bind_result($post_id, $post_title); 
    $query->execute(); 
    $query->store_result(); 
} 
?> 

的“$ ID);是你在找什么来得到这个工作,你可能想通过和双重检查一切如。‘forum_tabl’,并确保一切正确如果你还没有这样做的话。

还仔细检查了以下额外的?可能搞乱东西,以及根据您的数据库设置。

$sql = "SELECT post_id, post_title FROM forum_post WHERE forum_id? AND type= 'o'"; 

好运!