尝试使用PHP和Mysql计算表中的总行数

时间:2014-03-18 10:27:57

标签: php mysql mysqli

我想用PHP&计算表中存在的总行数。 Mysql.I需要将所有这些数据发送到另一个页面以供查看。

例如:

  id | fname | lname |
  1  |ak     | pk    |
  2  |aks    | pks   |
  3  |akss   | pkss  |
例如,上面的一个应该返回3.我不知道如何发送所有数据并在另一个页面上使用它并打印它。 下面是我试图运行但不起作用的代码。

$sql= $db->query("SELECT * from student");
        $row= $sql->fetch_array();
        $totalrow= mysqli_num_row($sql);

        for($i=0;$i<**??**;$i++)  // I don't know how to get the total rows 
        {
           $data[$i][0]= $row['id'];
           $data[$i][1]= $row['fname'];
           $data[$i][2]= $row['lname'];

          $row=$sql->fetch_array();
        }
        return ($data);  

2 个答案:

答案 0 :(得分:1)

$sql=$db->prepare('SELECT id FROM students');
$sql->execute();
$sql->store_results();
$total=$sql->num_rows();
$sql->close();
return$total;

返回行数据

function getStudents(){
    $sql=$db->prepare('SELECT id, fname, lname FROM students');
    $sql->execute();
    $sql->bind_result($id,$fname,lname);
    while($sql->fetch()){
        $students[]=array('id'=>$id,'fname'=>$fname,'lname'=>$lname);
    }
    $sql->close();
    return$students;
}
$students=getStudents();
//if you print $students it should look: Array([0]=>Array('id'=>1,'fname'=>'ak','lname'=>'pk')[1]=>Array('id'=>2,'fname'=>'aks','lname'=>'pks')[2]=>Array('id'=>3,'fname'=>'akss','lname'=>'pkss'))

使用此数组,您可以使用foreach。

echo"<table><th>ID</th><th>fname</th><th>lname</th>";
foreach($students as$student){
    //now the array students is 'split' into student. student is now Array('id'=>1,'fname'=>'ak','lname'=>'pk'); and so on.
    echo"<tr><td>".$student['id']."</td><td>".$student['fname']."</td><td>".$student['lname']."</td></tr>";
}
echo"</table>";

相同页面处理。

<?php 
    function getStudents(){
        $db=new mysqli('local','user','pass','database');//obviously put outside of function if used elsewhere
        $sql=$db->prepare('SELECT id, fname, lname FROM students');
        $sql->execute();
        $sql->bind_result($id,$fname,$lname);
        while($sql->fetch()){
            $students[]=Array('id'=>$id,'fname'=>$fname,'lname'=>$lname);
        }
        $sql->close();
        return$students;
    }
    $students=getStudents();
?>
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <!--other doc head stuff here-->
</head>
<body>
    <nav><ol><li><a href="">Home</a></li></ol></nav>
    <!-- more body stuff blahh blahh-->
    <table>
        <tr>
            <th>ID</th>
            <th>First name</th>
            <th>Last name</th>
        </tr>
        <?php
            foreach($students as $student){
                echo"<tr><td>".$student['id']."</td><td>".$student['fname']."</td><td>".$student['lname']."</td></tr>";
            }
        ?>
    </table>
</body>
</html>

现在它完全在一个页面内,你不必大惊小怪使用$_GET。希望这会有所帮助:)

请注意,mysql已经过折旧。 mysqli现在是使用的。

答案 1 :(得分:0)

 $totalrow= $sql->rowCount();