将两个mysql行放入一个php数组

idfiyjo8  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(309)

我正在为我的学校开发一个窄播系统,目前我正在使用javascript在主显示页面的iframe的url之间进行轮换。
我希望能够通过php的后端更改这些值。但是,我不知道如何将两行(module\uurl和module\u time)放入一个数组并将其回显到js。
浏览stackoverflow时,我尝试了多种代码,这一种很有效,只不过它会抛出url,例如:“ var arrayObjects = ["https:\/\/domain.eu\/dir\/page.php","https:\/\/domain.eu\/dir\/page.php"] ".
(我希望数组显示: var arrayObjects = ["https:\/\/domain.eu\/dir\/page.php", 20] ". 其中url表示新的iframe源,20表示显示页面的时间。)
所以我的主要问题是,如何将两行放入一个数组,以及如何确保数组显示正确的链接和模块时间。

<?php
   $mysqli = new mysqli('localhost', 'user', 'pw', 'db');
    if ($stmt = $mysqli->prepare("SELECT module_url FROM db")) {
        $stmt->bind_result($name);
        $OK = $stmt->execute();
    }
    //put all of the resulting names into a PHP array
    $result_array = Array();
    while($stmt->fetch()) {
        $result_array[] = $name;
    }
    //convert the PHP array into JSON format, so it works with javascript
    $json_array = json_encode($result_array);
?>

<script>
    //now put it into the javascript
    var arrayObjects = <?php echo $json_array; ?>
ALL OTHER JS CODE
</script>

编辑:模块\u时间目前没有添加到mysqli查询中。

nfeuvbwi

nfeuvbwi1#

首先,您的php数组应该是多维的,如:

$result_array[] = array($name, <time here>);

既然您已经使用了json_encode并将其分配给js array,那么它实际上已经是javascript中的一个数组了,也就是说您已经可以访问如下元素:

arrayObjects[0][0]; <---- first element URL
arrayObjects[0][1]; <---- first element time

将javascript数组打印到html将显示为文本,如:

http://www.google.com,20,http://www.google.com,30

另外,您可以使用json.stringify()打印实际的javascript数组,而不是文本,示例:

var array = JSON.stringify(<?php echo $json_array; ?>);
document.write(array);

将输出:

[["http://www.google.com",20],["http://www.google.com",30]]

相关问题