Php foreach循环,循环遍历要在单独表中显示的日期数组
我正在尝试构造foreach循环,以循环遍历时间戳数组中的所有日期,以便可以在5个单独的表中显示每个日期的结果 这是我从数据库获取信息的功能Php foreach循环,循环遍历要在单独表中显示的日期数组,php,html,Php,Html,我正在尝试构造foreach循环,以循环遍历时间戳数组中的所有日期,以便可以在5个单独的表中显示每个日期的结果 这是我从数据库获取信息的功能 $users_site = "London"; $timeStampFrom = ( [0] => 1596655740 [1] => 1596745740 [2] => 1596828540 [3] => 1597087740 [4] => 1597177800 ); $timeStampTo = (
$users_site = "London";
$timeStampFrom = ( [0] => 1596655740 [1] => 1596745740 [2] => 1596828540 [3] => 1597087740 [4] => 1597177800 );
$timeStampTo = ( [0] => 1596659340 [1] => 1596749340 [2] => 1596832140 [3] => 1597095000 [4] => 1597181400 );
function show_available_equipment($users_site, $timeStampFrom, $timeStampTo){
// defines db from instialize page as a global variable
foreach ($timeStampFrom as $timeStampStart=>$timeStampTo) {
global $db;
//SQL statement to query the database for available gear
$sql= "SELECT av_inventory.ID AS equipID, av_equipment_type.equipment, "
. "av_inventory.product, av_inventory.serial, av_inventory.current_location, "
. "av_inventory.site, av_inventory.status, av_products.product, av_buildings.building FROM av_inventory JOIN "
. "av_equipment_type ON av_inventory.equipment =av_equipment_type.ID "
. "JOIN av_products ON av_inventory.product = av_products.ID JOIN "
. "av_buildings ON av_inventory.current_location = av_buildings.ID WHERE "
. "av_inventory.site =? AND av_inventory.ID NOT IN (SELECT av_bookings.av_inventory_id FROM "
. "av_bookings WHERE date_time_from <= ? and date_time_to >= ?) GROUP BY av_inventory.ID;";
// prepares our sql statement
$stmt = mysqli_stmt_init($db);
//if there is a SQL error exit
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: book_gear.php?error=sqlerror123");
exit();
}
// otherwise go ahead
else {
/* binding those variables to the question marks in SQl statement
* above variables need to be prepared and binded like this in php
* and cannot just be inserted into statements
*/
mysqli_stmt_bind_param($stmt, "sss", $users_site, $timeStampStart, $timeStampTo);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
return $result;
}}}
在这里,我尝试根据给定的5个日期显示信息。
每天一张桌子。
目前我只得到了第一天的信息,这让我觉得我的函数循环是不正确的
<?php $equipments[] = book_equip_idle($users_site, $timeStampFrom, $timeStampTo); ?>
<?php foreach ($equipments as $equipment) { ;?>
<table id="schedule_table_new" class="schedule_list">
<tr>
<caption class="sched_label">Event Name</caption>
<th onclick="sortTable(0)">Equipment Type</th>
<th onclick="sortTable(1)">Product No.</th>
<th onclick="sortTable(2)">Serial No.</th>
<th onclick="sortTable(3)">Current Location</th>
<th onclick="sortTable(5)">Book Item</th>
</tr>
<br/><br/>
<?php
while ($av_inventory = mysqli_fetch_assoc($equipment)) { ?>
<tr>
<td><?php echo h($av_inventory['equipment']); ?></td>
<td><?php echo h($av_inventory['product']); ?></td>
<td><?php echo h($av_inventory['serial']); ?></td>
<td><?php echo h($av_inventory['building']); ?></td>
<!--Checkbox sends two pieces of data equipment name to events SQL
table and serial number to bookings SQL table -->
<td><input name='event[<?php echo $key ;?>][equipment][]' type='checkbox' value="<?php echo $av_inventory['equipID'];?>"></td>
</tr>
<?php } } ?>
</table>
在获取SQL数据的函数中,在第一个循环之后返回结果:
function show_available_equipment($users_site, $timeStampFrom, $timeStampTo){
// defines db from instialize page as a global variable
foreach ($timeStampFrom as $timeStampStart=>$timeStampTo) { // <----- Only runs once
........................
//if there is a SQL error exit
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: book_gear.php?error=sqlerror123");
exit();
}
// otherwise go ahead
else {
...........................
$result = mysqli_stmt_get_result($stmt);
return $result; // <---------- Returns after first loop
}
}
}
在从数据库检索到每个结果后,需要将其添加到某种$all_results变量中。循环完成后,返回$all_结果