我有一个带有一些“加热配置文件”的MySQL数据库,每个配置文件都在其自己的表中,并且有一个单独的表来跟踪每个配置文件的名称。
因为我的jQuery Mobile / Cordova HTML 5页面是根据配置文件的数量及其要显示给用户的内容动态加载的,所以我避免了名称等的任何硬编码。这是PHP:
$con = mysqli_connect($server, $username, $password);
mysqli_select_db($con, $database);
$result = mysqli_query($con, "SELECT * FROM PROFILENAMES")
or die ("Query error: " . mysqli_error($con));
while($row = mysqli_fetch_assoc($result)) {
$string = $row['profileNames'];
$data[] = $string;
$string = str_replace(' ', '', $string);
$profileNames[] = $string;
}
foreach($profileNames as $secondstring){
$secondstring;
$secondresult = mysqli_query($con, "SELECT * FROM $secondstring ORDER BY startTime ASC")
or die ("Query error: " . mysqli_error($con));
while($secondrow = mysqli_fetch_assoc($secondresult)) {
$data[$secondstring] = $secondrow;
}
}
mysqli_close($con);
echo $_REQUEST['jsoncallback'] . '(' . json_encode($data) . ');';
理论上,如果概要文件“ SELECT *”中有多行,并且有一个“ while”循环应将每行附加到键$ secondstring处的数组$ data中。但是无论我尝试什么,都只将一行返回到JSON中,我已经执行了echo等,以确保正在检索数据,并且$ secondrow包含了所有行,但是将第一行追加到了数组似乎停止了。
该代码的当前输出为:
({"0":"Weekday","1":"Weekend","2":"Different","Weekday":{"setTemp":"26","startTime":"17:00:00","endTime":"19:00:00"},"Weekend":{"setTemp":"900","startTime":"12:00:00","endTime":"13:00:00"},"Different":{"setTemp":"666","startTime":"23:00:00","endTime":"02:00:00"}});
有什么办法可以强制将其他行追加到该特定数组键?
在每行中使用递增或唯一键值会使在另一侧用javascript解析此数据并将其插入HTML元素变得更加困难。
任何帮助,将不胜感激!抱歉,格式化不知道那里发生了什么。
只需构建一个数组:
while($secondrow = mysqli_fetch_assoc($secondresult)) {
$data[$secondstring][] = $secondrow;
^^---- add this
}
每个新的“第二行”将被压入该子数组。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句