Php 将数据从函数打印到while循环中
我创建了一个从表中获取数据的函数 现在我想使用while循环将返回的数据打印到表中。Php 将数据从函数打印到while循环中,php,Php,我创建了一个从表中获取数据的函数 现在我想使用while循环将返回的数据打印到表中。 几乎一切正常,但当我调用该函数时,它将只打印第一行 $usr = $_SESSION['MM_UID']; function getData($leavetype,$eo, $usr) { $get = "SELECT * FROM `leaveregister` WHERE employee = '$usr' AND `leaveType`='$leavetype' "; $getdata =
几乎一切正常,但当我调用该函数时,它将只打印第一行
$usr = $_SESSION['MM_UID'];
function getData($leavetype,$eo, $usr)
{
$get = "SELECT * FROM `leaveregister` WHERE employee = '$usr' AND `leaveType`='$leavetype' ";
$getdata = mysqli_query($eo, $get);
while($geta = mysqli_fetch_assoc($getdata))
{
return($geta);
}
}
echo '<strong>Annual Leaves</strong>';
echo '<table class="table basicTable"><thead><th>Leave Duration</th><th>Start Date</th><th>End Date</th></thead>';
echo '<tbody>';
$getb = getData('annual',$eo,$usr);
echo '<tr><td>'.$getb['leaveDays'].'</td><td>'.$getb['startDate'].'</td><td>'.$getb['endDate'].'</td><td>'.$getb['remarks'].'</td></tr>';
echo '<tr><strong></tr>';
echo '</tbody></table>';
$usr=$\u会话['MM\u UID'];
函数getData($leavetype、$eo、$usr)
{
$get=“从'leaveregister'中选择*,其中employee='$usr'和'leaveType`='$leaveType'”;
$getdata=mysqli_查询($eo,$get);
而($geta=mysqli\u fetch\u assoc($getdata))
{
报税表(港币);;
}
}
回声'一年生叶子'/strong>';
回显“休假持续时间开始日期结束日期”;
回声';
$getb=getData('年度',$eo,$usr);
回显'.$getb['leaveDays'].'.$getb['startDate'.'.'.'.$getb['endDate'.'.'.'.'.$getb['备注'.''.''.';
回声“”;
回声';
请注意:
$eo
是数据库连接。尝试使用foreach
:
function getData($leavetype,$eo, $usr)
{
$get = "SELECT * FROM `leaveregister` WHERE employee = '$usr' AND `leaveType`='$leavetype' ";
$getdata = mysqli_query($eo, $get);
return $geta = mysqli_fetch_assoc($getdata))
}
$getb = getData('annual',$eo,$usr);
$table = '';
foreach($getb as $b){
$table .='<tr><td>'.$b['leaveDays'].'</td><td>';
$table .=$b['startDate'].'</td><td>'.$b['endDate'].'</td>';
$table .='<td>'.$b['remarks'].'</td></tr>';
}
echo $table;
函数getData($leavetype、$eo、$usr)
{
$get=“从'leaveregister'中选择*,其中employee='$usr'和'leaveType`='$leaveType'”;
$getdata=mysqli_查询($eo,$get);
return$geta=mysqli\u fetch\u assoc($getdata))
}
$getb=getData('年度',$eo,$usr);
$table='';
foreach($getb为$b){
$table.=''.$b['leaveDays'].';
$table.=$b['startDate'].'.$b['endDate'].';
$table.=''.$b[“备注].';
}
echo$表;
问题就在这里
while($geta = mysqli_fetch_assoc($getdata))
{
return($geta);
}
//return here enter code here
尝试收集某些数据结构(例如数组)中的所有数据,并在最后一次迭代后返回变量 您可以在循环时使用
:
以下是示例代码:
$usr = $_SESSION['MM_UID'];
function getData($leavetype,$eo, $usr)
{
$get = "SELECT * FROM `leaveregister` WHERE employee = '$usr' AND `leaveType`='$leavetype' ";
$getdata = mysqli_query($eo, $get);
return($getdata);
}
echo '<strong>Annual Leaves</strong>';
echo '<table class="table basicTable"><thead><th>Leave Duration</th><th>Start Date</th><th>End Date</th></thead>';
echo '<tbody>';
$getc = getData('annual',$eo,$usr);
while($getb = mysqli_fetch_assoc($getc)){
echo '<tr><td>'.$getb['leaveDays'].'</td><td>'.$getb['startDate'].'</td><td>'.$getb['endDate'].'</td><td>'.$getb['remarks'].'</td></tr>';
}
echo '<tr><strong></tr>';
echo '</tbody></table>';
$usr=$\u会话['MM\u UID'];
函数getData($leavetype、$eo、$usr)
{
$get=“从'leaveregister'中选择*,其中employee='$usr'和'leaveType`='$leaveType'”;
$getdata=mysqli_查询($eo,$get);
返回($getdata);
}
回声'一年生叶子'/strong>';
回显“休假持续时间开始日期结束日期”;
回声';
$getc=getData('年度',$eo,$usr);
而($getb=mysqli\u fetch\u assoc($getc)){
回显'.$getb['leaveDays'].'.$getb['startDate'.'.'.'.$getb['endDate'.'.'.'.'.$getb['备注'.''.''.';
}
回声“”;
回声';
问题在于getData
返回单个结果。让我们解决这个问题:
function getData($leavetype,$eo, $usr)
{
$get = "SELECT * FROM `leaveregister` WHERE employee = '$usr' AND `leaveType`='$leavetype' ";
$getdata = mysqli_query($eo, $get);
$result = array();
while($geta = mysqli_fetch_assoc($getdata))
{
$result[] = $geta;
}
return $result;
}
现在,您可以调用它并在其中循环以填充表
$results = getData('annual',$eo,$usr);
?>
<strong>Annual Leaves</strong>
<table class="table basicTable">
<thead>
<th>Leave Duration</th>
<th>Start Date</th>
<th>End Date</th>
</thead>
<tbody>
<?php foreach($results as $getb) {
echo '<tr><td>'.$getb['leaveDays'].'</td><td>'.$getb['startDate'].'</td>
<td>'.$getb['endDate'].'</td><td>'.$getb['remarks'].'</td></tr>';
}
echo '<tr><strong></tr>';
echo '</tbody></table>';
?>
$results=getData('annual',$eo,$usr);
?>
一年生树叶
休假期限
开始日期
结束日期
返回结果时不检索所有数据。改变你的while语句,你的问题就会解决
$get = "SELECT * FROM `leaveregister` WHERE employee = '$usr' AND `leaveType`='$leavetype' ";
$result = array();
$getdata = mysqli_query($eo, $get);
while($geta = mysqli_fetch_assoc($getdata))
{
$result[] = $geta;
}
return $result;
我该怎么办?