- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在构建一个 rota/calendar 系统,由于缺乏 PHP 数组知识,我在某个时候遇到了困难。
对于这个特定问题,我有两个日期单元格,17/08/2017 和 18/08/2017,在那些日子里,有 2 名员工轮值,我希望能够回应这两个日期这些人的姓名首字母并将值转移到相关单元格中。
下面是查询,以及我目前正在做什么
$query_show_rota='SELECT * FROM `rota` INNER JOIN users ON users.uid=rota.staffmember WHERE "'.$this->currentDate.'" >= `rotastart` AND "'.$this->currentDate.'" <= `rotaend`';
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
$result=mysqli_query($db,$query_show_rota);
if (!$result) {
printf("Error: %s\n", mysqli_error($db));
exit();
}
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
$rota_initials_loop_array = array();
array_push($rota_initials_loop_array, $row['initials']);
print_r($rota_initials_loop_array);
echo $this->currentDate . " - ";
echo $row['initials'] . " ";
echo $row['shift'] . "<br />";
}
(上面的一些,比如while循环中的echo,是为了测试)
这导致了从 MySQL 返回的以下数据(为了便于查看,删除了一些字段):
| rid | staffmember | initials | rotastart | rotaend | shift |
| 6 | 1 | DB | 2017-08-17 | 2017-08-18| 1430 |
| 7 | 6 | LG | 2017-08-17 | 2017-08-18| 0800 |
(每位员工 2 天,两位员工都轮类)
在浏览器中,在日历日单元格之外,我可以看到:
Array ( [0] => DB ) 2017-08-17 - DB 1430
Array ( [0] => LG ) 2017-08-17 - LG 0800
Array ( [0] => DB ) 2017-08-18 - DB 1430
Array ( [0] => LG ) 2017-08-18 - LG 0800
(在我上面的代码中测试 print_r 和 echo 的结果)
我不会用每个日历日的循环和单元格生成代码来打扰您,但在其中,我有以下内容:
<?php
foreach($rota_initials_loop_array as $initials_value):
echo $initials_value
endforeach;
}
?>
但我绝对没有在每一天的单元格中打印任何数据。我不太清楚为什么。主要是因为这是我第一次接触 PHP 中的数组。我什至不知道我是否应该为此使用数组?我让它完美地工作,只返回 1 行,那是在我将 $row 变成 while 循环等之前。
我愿意听取其他方面的建议吗?本质上,我想在每一天的单元格中得到 2x div,其中包含每个工作人员的首字母和轮类,所以 “DB - 1430” 在第 X 天的一个 div 和 “LG - 0800" 在同一天 X 的下面的另一个 div 中。然后 Y 天也一样。
最佳答案
Essentially I want to end up with 2x div's in each day cell, that contain intials and shift of each staff member, so "DB - 1430" in one div in day X and "LG - 0800" in another div below it in the same day X. Then the same for day Y.
因此,您需要生成以日期为键的数组。类似这样的东西:
$data = [
'day-x' => [
['DB', '1430'],
['LG', '0800'],
],
'day-y' => [
...
]
];
即使您已尝试彻底解释现有代码,但我不能说我可以将数据结构可视化,因此必须调整下面的 while 循环以适应您的数据。
假设您以某种方式获取每一行中数据的所有树组件(日期、初始值、类次),您可以获得的数组形状与我在上面给出的类似:
$data = [];
while($row=mysqli_fetch_assoc($result)) {
if(!array_key_exists($row['date'], $data)) {
$data[$row['date']] = [];
}
$data[$row['date']][] = [$row['initials'], $row['shift']];
}
在这一点上,如果您进行 json_encode 并将数据发送到浏览器,您会过得更好。这虽然需要进行重大更改(使用 ajax 获取日历数据并使用 javascript 呈现)。如果你想继续在 PHP 中生成 html,下面是你如何使用 $data
数组:
$html = '';
foreach($data as $date => $events) {
$html .= '<div class="day">
<span class="day-number">' . $date . '</span>';
foreach($events as $event) {
$html .= '<span class="event">' . $event[0] . ' - ' . $event[1] . '</span>';
}
$html .= '</div>';
}
关于PHP数组循环+MySQL数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45654201/
我在 JavaScript 文件中运行 PHP,例如...... var = '';). 我需要使用 JavaScript 来扫描字符串中的 PHP 定界符(打开和关闭 PHP 的 )。 我已经知道使
我希望能够做这样的事情: php --determine-oldest-supported-php-version test.php 并得到这个输出: 7.2 也就是说,php 二进制检查 test.
我正在开发一个目前不使用任何框架的大型 php 站点。我的大问题是,随着时间的推移慢慢尝试将框架融入应用程序是否可取,例如在创建的新部件和更新的旧部件中? 比如所有的页面都是直接通过url服务的,有几
下面是我的源代码,我想在同一页面顶部的另一个 php 脚本中使用位于底部 php 脚本的变量 $r1。我需要一个简单的解决方案来解决这个问题。我想在代码中存在的更新查询中使用该变量。 $name)
我正在制作一个网站,根据不同的情况进行大量 PHP 重定向。就像这样...... header("Location: somesite.com/redirectedpage.php"); 为了安全起见
我有一个旧网站,我的 php 标签从 因为短标签已经显示出安全问题,并且在未来的版本中将不被支持。 关于php - 如何避免在 php 文件中写入
我有一个用 PHP 编写的配置文件,如下所示, 所以我想用PHP开发一个接口(interface),它可以编辑文件值,如$WEBPATH , $ACCOUNTPATH和 const值(value)观
我试图制作一个登录页面来学习基本的PHP,首先我希望我的独立PHP文件存储HTML文件的输入(带有表单),但是当我按下按钮时(触发POST到PHP脚本) )我一直收到令人不愉快的错误。 我已经搜索了S
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is the max key size for an array in PHP? 正如标题所说,我想知道
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我在 MySQL 数据库中有一个表,其中存储餐厅在每个工作日和时段提供的菜单。 表结构如下: i_type i_name i_cost i_day i_start i_
我有两页。 test1.php 和 test2.php。 我想做的就是在 test1.php 上点击提交,并将 test2.php 显示在 div 中。这实际上工作正常,但我需要向 test2.php
我得到了这个代码。我想通过textarea更新mysql。我在textarea中回显我的MySQL,但我不知道如何更新它,我应该把所有东西都放进去吗,因为_GET模式没有给我任何东西,我也尝试_GET
首先,我是 php 的新手,所以我仍在努力学习。我在 Wordpress 上创建了一个表单,我想将值插入一个表(data_test 表,我已经管理了),然后从 data_test 表中获取所有列(id
我有以下函数可以清理用户或网址的输入: function SanitizeString($var) { $var=stripslashes($var); $va
我有一个 html 页面,它使用 php 文件查询数据库,然后让用户登录,否则拒绝访问。我遇到的问题是它只是重定向到 php 文件的 url,并且从不对发生的事情提供反馈。这是我第一次使用 html、
我有一个页面充满了指向 pdf 的链接,我想跟踪哪些链接被单击。我以为我可以做如下的事情,但遇到了问题: query($sql); if($result){
我正在使用 从外部文本文件加载 HTML/PHP 代码 $f = fopen($filename, "r"); while ($line = fgets($f, 4096)) { print $l
我是一名优秀的程序员,十分优秀!