0

我有一个从 mysql 表中获取数据并将其转换为 pdf 文档的代码,该代码工作正常,只是它跳过了第 1 行。

这是我从中删除 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);
    }
?>
4

1 回答 1

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
    }
}
于 2012-12-08T22:06:58.437 回答