2016-05-02 47 views
-4

我正在创建一个链接到我的Facebook帐户的博客网站,我希望允许用户查看较早的博客。因此,我创建了一个循环,根据标题输出url,然后根据blog_id动态生成一个新页面。但是我有两个问题。创建URL和未定义索引ID

  1. 我只输出一个超链接,因此不循环通过正确
  2. 没有什么是title.php页面上生成,并通过URL提交数据时,我得到了一个未定义指数blog_id

==============================

$query="SELECT title FROM admin WHERE blog_id = $blog_id"; 
$result=mysqli_query($conn, $query) or die(mysqli_error()); 
$rstitle=mysqli_fetch_assoc($result); 


mysqli_close($conn); 


do { ?> 
<a href="title.php?blog_id= <?php echo $rstitle['blog_id']; ?> "> 
<ul> 
<li id = "title"> <?php echo $rstitle['title']; ?> </li><br /> 
</ul> 
</a> 

<?php } while ($rstitle=mysqli_fetch_assoc($result)) ?> 

哪些链接到title.php页面

<?php 
$servername = "localhost"; 
$dbusername = "root"; 
$dbpassword = ""; 
$dbname = "blog"; 

// create connection 
$conn = mysqli_connect($servername, $dbusername, $dbpassword, $dbname); 

// check connection 
if (!$conn) 
{ 
    die("Connection failed: " . mysqli_connect_error()); 
} 
// we get here the connection to the database was successful 



$query="SELECT blog FROM admin WHERE blog_id = $blog_id"; 
$result=mysqli_query($conn, $query)or die(mysql_error()); 
$rstitle=mysqli_fetch_assoc($result); 

if (mysqli_num_rows($result) > 0) 
{ 
    echo "<table border='0' style='width:50%'>"; 


    while($rstitle = mysqli_fetch_assoc($result)) 
    { 
     echo "<tr>"; 
     echo "<td>" . $rstitle['blog'] . "</td>"; 
     echo "</tr>"; 
    } 
    echo "</table>"; 
} 



mysqli_close($conn); 

?> 
+0

您只选择标题,所以在你的数组中只有'title'键。使用'SELECT blog_id,title' – fusion3k

+0

并且在* title.php *页面中,您不是使用'$ _GET'超全局捕捉博客ID。 –

回答

0

代码的第一部分有几个问题。这是,清理,与意见,以帮助您展示的变化:

// Add "blog_id" to the list of fields selected here, so available below 
$query="SELECT blog_id, title FROM admin WHERE blog_id = $blog_id"; 
$result=mysqli_query($conn, $query) or die(mysqli_error()); 
$rstitle=mysqli_fetch_assoc($result); 

// Use the "while() {}" construction - it's easier to read 
while ($rstitle = mysqli_fetch_assoc($result)) { 
// You had a space between blogid= and the ID - this will cause problems, so removed the space 
?> 
<a href="title.php?blog_id=<?php echo $rstitle['blog_id']; ?> "> 
<ul> 
<li id = "title"> <?php echo $rstitle['title']; ?> </li><br /> 
</ul> 
</a> 
<?php } 
// close your connection - (not necessary) - at the END of your code 
mysqli_close($conn); 
?> 

这应该解决您的问题Undefined Index在这一节中,并创建链接适当列表。

在您的title.php代码中,(仅复制下面的一部分),您不是设置$blog_id任何地方。

$servername = "localhost"; 
$dbusername = "root"; 
$dbpassword = ""; 
$dbname = "blog"; 

// create connection 
$conn = mysqli_connect($servername, $dbusername, $dbpassword, $dbname); 

// check connection 
if (! $conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

// Since the blog_id is being passed in the URL, get it. 
// And since you're NOT preparing your query, but passing it straight in, 
// we have to be sure to SANITIZE it: 
$blog_id = (isset($_GET['blog_id'])) ? (int)$_GET['blog_id'] : 0; 

// I would recommend defending against no blog_id! 
if (! $blog_id) { 
    echo 'Invalid blog id!'; 
    die(); 
} 

$query="SELECT blog FROM admin WHERE blog_id = $blog_id"; 
$result=mysqli_query($conn, $query)or die(mysql_error()); 
$rstitle=mysqli_fetch_assoc($result); 
+0

感谢修复,第一页上的问题是由错误的SELECT语句引起的,如果没有您的帮助,我将无法弄清楚我需要在传递ID时清理blog_id。 – Zlini