我想用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);
答案 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();