2014-02-24 32 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