从mysql导出到php中的对象数组,然后导出javascript

im9ewurl  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(352)

下面的代码将数据从mysql传递到php数组:

while ( $row = $result->fetch_assoc() ) {
    $profile[] = array(
        "id" => $row[ "id" ],
        "first" => $row[ "first" ],
        "last" => $row[ "last" ],
        "cell" => $row[ "cell" ],
        "email" => $row[ "email" ],
        "kids" => $row[ "kids" ]
    );
}

然后我将其编码为javascript,如下所示:

var userprofile = <?php echo json_encode($profile); ?>;

其输出为

要得到一个参数,我必须 userprofile[0].cell 我只想去哪里 userprofile.cell 我需要改变什么才能得到想要的结果?
只有一个结果

ig9co6j1

ig9co6j11#

根据这条线:

var userprofile = <?php echo json_encode($profile); ?>;

看起来您运行了一个查询来获取一行包含单个用户的配置文件数据。
但是你拿它的方式

while ( $row = $result->fetch_assoc() ) {
    $profile[] = array(...

如果要返回多个用户配置文件,您将如何设置它。
我认为你需要的只是:

$profile = $result->fetch_assoc();

如果配置文件中还有其他列不想发送,则可以在查询中指定所需的列( SELECT id, first, last, etc. 而不是 SELECT * .)

quhf5bfb

quhf5bfb2#

也许这会有帮助:

var single = {"foo": 1, "bar": 2};
//PHP would be array('foo' => 1, 'bar' => 2);

var list = [{"foo": 1, "bar": 2}];
//PHP would be array(array('foo' => 1, 'bar' => 2)); ... what you do with []... array_push.

console.log(list[0].foo);

console.log(single.foo);

你是在创建一个“对象”,还是一个对象数组?如果是后者,则需要在适当的偏移处引用对象。显然,当声明,希望代码将使它变得明显。

相关问题