簡體   English   中英

將多個返回的MySQL行添加到PHP中的同一數組鍵元素

[英]Adding multiple returned MySQL rows to the same array key element in PHP

我有一個帶有一些“加熱配置文件”的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
    }

每個新的“第二行”將被壓入該子數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM