2014-02-24 40 views
1

這段代碼有什麼問題?當我點擊'下一步'按鈕時,它顯示空白頁面,並打破了我的網頁設計?我試圖弄清楚整天但沒有運氣。這個分頁有什麼問題?

  <?php 
     if(isset($_GET['joke_id'])){ 
      $joke_id = $_GET['joke_id']; 
      $qry = "SELECT * FROM joke WHERE joke_cat = '$joke_id'"; 
      $result = mysqli_query($con, $qry) or die("Query failed: " . mysqli_errno($con)); 

      $line = mysqli_fetch_array($result, MYSQL_BOTH); 
      if (!$line) echo ''; 
      $previd = -1; 
      $currid = $line[0]; 
      if (isset($_GET['id'])) { 
       $previous_ids = array(); 
       do { 
        $previous_ids[] = $line[0]; 
        $currid = $line[0]; 
        if ($currid == $_GET['id']) break; 
        $previd = end($previous_ids); 
        $line = mysqli_fetch_array($result, MYSQL_BOTH); 
       } while ($line); 
      } 

      if ($line) { 
       echo "<div id=\"box\">"; 
       echo nl2br($line['text']) . "<br /><br />"; 
       echo "</div>"; 
      } 
      else echo 'Is empty<br/>'; **<------ HERE** 


      if ($previd > -1) 
       echo '<a href="cat_vic.php?cat_id='.$joke_id.'?id='.$previd.'" class="prev_pic"><span>Prev</span></a>'; 
      echo str_repeat('&nbsp;', 5); 

      $line = mysqli_fetch_array($result, MYSQL_BOTH); 

      $query = "select * from joke WHERE joke_cat = '$joke_id' order by RAND() LIMIT 1"; 
      $result = mysqli_query($con, $query) or die("Query failed: " . mysqli_errno($con)); 
      while ($row = mysqli_fetch_array($result, MYSQL_BOTH)){ 
       echo '<a href="cat_vic.php?cat_id='.$joke_id.'?id='.$row['id'].'"class="random">Random</a>'; 
      } 
      echo str_repeat('&nbsp;', 5); 
      if ($line) echo '<a href="cat_vic.php?cat_id='.$joke_id.'?id='.$line[0].'" class="next_pic"><span>Next</span></a><br /><br />'; 
      echo "</div>\r"; 
     } 
     ?> 

而且上線else echo 'Is empty<br/>';如果有什麼沒關係..總是顯示我 '爲空' ..

UPDATE: 數據庫是: 笑話

id 
text 
date 
joke_cat 

cat_joke

joke_id 
joke_name 
+0

你用的var_dump($線)看,,,只是櫃面嘗試添加和開放如果條件爲 – Vishnu

+0

var_dump($ line)返回空和破碎的頁面。 – user3346678

回答

1

改變這一行:

echo '<a href="cat_vic.php?cat_id='.$joke_id.'?id='.$row['id'].'"class="random">Random</a>'; 

要:沒有? cat_id ='。$ joke_id。'後的您需要更改&

echo '<a href="cat_vic.php?cat_id='.$joke_id.'&id='.$row['id'].'"class="random">Random</a>'; 

注:旁邊還改變和prev代碼也...

+0

同樣的事情..空白頁面 – user3346678

+0

你在cat_id = $ joke_id中傳遞url但是joke_id ='$ joke_id'然後只有分頁符才能執行條件... – Mani

+0

奇怪...之前問這裏我試過' cat_vic.php?joke_id ='。$ joke_id.''並且不起作用。現在正在工作。 – user3346678

0

$line的最後一個分配是null。因此,您應該檢查您的if而不是$line,而是$previous_ids[]$currid或其他。

+0

但是如何可能爲null ..我確定表中有數據? – user3346678

+0

您正在提取數據並分配給其他變量。你在做什麼是你正在抓取,直到沒有收到任何結果。在這種情況下,**查詢的最後一個**結果在你最後一次賦值給'$ line'的地方是null。 – alalp

+0

更清楚的是,你的do while循環獲取數據直到'$ line = null'這意味着沒有更多的行可以檢索。所以最後,'$ line'是'null'。 – alalp