使用MSSQL和PHP,我正在编写一个日历表单,列出用户日程表中的时间,让他输入他是否忙,可用等等。
用户提交信息后,会将其保存到数据库中。
如果用户返回表单,他应该看到表单字段默认为他已经输入的值。
好的,所以我可以查询数据库中的每一天和每个时间段,并使用结果来确定表单上显示的内容......但这是对数据库的145次调用,因为这是用户可以拥有的时隙数一个星期。
似乎应该有一种方法可以查询数据库一次,将145个结果存储在一个数组中,然后按日期和时间查询每个字段的数组。
所以我得到了:
$sql="SELECT * FROM committee_employee_schedules WHERE fac_id = $user_id";
$result= mssql_query($sql,$conn);
但是从那里我不想进入mssql_fetch_array()的while循环...我将如何进行查询结果集呢?感谢。
这是一些示例代码,因为我似乎无法沟通:
<form>
<label for="7:30AM">7:30AM</label>
<select name="7:30AM">
<option>Available</option>
<option>Class</option>
<option>Office Hours</option>
</select>
<label for="8:00AM">8:00AM</label>
<select name="8:00AM">
<option>Available</option>
<option>Class</option>
<option>Office Hours</option>
</select>
<label for="8:30AM">8:30AM</label>
<select name="8:30AM">
<option>Available</option>
<option>Class</option>
<option>Office Hours</option>
</select>
</form>
......周一至周五晚上9:30,共有145个下拉字段。
每个字段需要知道如果该时间段中存在表中的行,如果存在,则选择适当的活动。
我可以使用上面的代码获取用户的所有记录,但是我是否必须为表单上的每个字段循环这145行?难道没有办法将记录粘贴到一个数组并用结果['Monday'] ['7:30'] [活动]或其他东西引用它?
答案 0 :(得分:1)
因此,您将从数据库中获取145条记录。 SELECT查询的结果将存储在一个数组中,您将不得不使用循环遍历它们。此循环可以从记录中读取日期和时间段,并将其存储到适当的数组中。之后,您可以按照您想要的方式引用该新数组。我将尝试在下面汇总一个近似的例子。
<?php
slotData = array();//Store your results here the way you want to, see down below
$sql="SELECT * FROM committee_employee_schedules WHERE fac_id = $user_id";
$result= mssql_query($sql,$conn);
while($row = mssql_fetch_row($result)) {
$day = $row['day'];//Guessing your column name here
$time = $row['time_of_day'];//again, guessing your time here
$slotData[$day][$time] = $row;
//this all assumes "$day" looks like "monday", "tuesday", etc.
//also assumes "$time" looks like "8:00AM", "9:30PM", etc.
}
//now that data is in array the way you want, reference it later
//Assume you are currently trying to populate Monday at 8am position in calendar...
$curDay = 'monday';
$curTime = '8:00AM';
$data = $slotData[$curDay][$curTime];
//Yeay! "$data" now has all of the information for Monday at 8am.
?>
最重要的是,遍历数据库结果集并将数据移动到不同数组的相应插槽中,具体取决于它应该去的位置。然后,根据您的喜好引用不同的数组,而不必担心每次迭代所有原始记录。解决。