2016-05-02 87 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