2012-12-08 51 views
0

我有一個從mysql表中提取數據並將其轉換爲pdf文檔的代碼,代碼工作正常,除了跳過第1行。mysql_fetch_array沒有獲取完整的數據?

這是我從中刪除pdf生成過程的代碼問題在於獲取數據的循環中。

請幫忙。

<?php 
    session_start(); 
if(isset($_SESSION['user'])) 
{ 
    $cr = $_POST['cour']; 
    $s = $_POST['sem']; 
    require('fpdf.php'); 
    include('../includes/connection.php'); 
    $sql = "SELECT * FROM `student` WHERE AppliedCourse ='$cr'"; 
    $rs = mysql_query($sql) or die($sql. "<br/>".mysql_error()); 
    if(!mysql_fetch_array($rs)) 
    { 
     $_SESSION['db_error'] = "<h2><font color = 'RED'>No such course found! Pease select again.</font></h2>"; 
     header('Location: prinrepo.php'); 
    } 
    else { 

    for($i = 0;$i <= $row = mysql_fetch_array($rs);$i++) 
    { 
      $formno[$i] = $row ['FormNo']; 
      $rno[$i] = $row ['rollno']; 
      $snm[$i] = $row ['StudentNm'];   
      $fnm[$i] = $row ['FathersNm']; 
      $mnm[$i] = $row ['MothersNm']; 
      $addr[$i] = $row['Address']; 
      $pic[$i] = $row['imagenm']; 
      $comm[$i] = $row['SocialCat']; 

     echo $formno[$i]."<br />"; 
     echo $rno[$i]."<br />"; 
     echo $snm[$i]."<br />"; 
     echo $fnm[$i]."<br />"; 
     echo $mnm[$i]."<br />"; 
     echo $addr[$i]."<br />"; 
     echo $pic[$i]."<br />"; 
     echo $comm[$i]."<br />"; 
     echo "<br />"; 
    } 
    } 
    mysql_close($con); 
    } 
?> 

回答

2

您正在獲取for()循環之外的第一行,然後您錯過了它。

mysql_query()之後,您應該使用mysql_num_rows()來檢查結果中是否有任何行,然後在for循環中獲取它們。

此處瞭解詳情:http://php.net/manual/fr/function.mysql-num-rows.php

您的代碼應該是這樣的:

$sql = "SELECT * FROM `student` WHERE AppliedCourse ='$cr'"; 
$rs = mysql_query($sql) or die($sql. "<br/>".mysql_error()); 
if(0 == mysql_num_rows($rs)) { 
    $_SESSION['db_error'] = "<h2><font color = 'RED'>No such course found! Pease select again.</font></h2>"; 
    header('Location: prinrepo.php'); 
} else { 
    for($i = 0;$i <= $row = mysql_fetch_array($rs);$i++) 
    { 
     // Your code 
    } 
} 
+0

太感謝你了......它的工作 – Ash