php 从wp_usermeta表中提取数据以在< select>标记[已关闭]内使用

nnsrf1az  于 2023-01-24  发布在  PHP
关注(0)|答案(1)|浏览(107)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
16小时前关门了。
Improve this question
我试图通过使用以下代码获取一些由自定义字段插入到WordPress MySQL表wp_usermeta中的数据:

<?php

                global $wpdb;
                $meta_key = 'city_field';
                $results = $wpdb->get_results(
                    $wpdb->prepare("SELECT meta_value 
                                    FROM $wpdb->usermeta 
                                    WHERE meta_key = %s", $meta_key)
                );
                print_r($results);

print_r($results)返回以下内容:

Array(

[0] => stdClass Object
    (
        [meta_value] => City 1
    )

[1] => stdClass Object
    (
        [meta_value] => City 2
    )


这个print_r($results)返回一个包含数据的对象数组,其中city_field是自定义字段的名称,我需要meta_value(City 1,City 2),这样我就可以使用下面的代码循环并显示结果:

if (!empty($results)) {
                    echo "<select name='cidade' class='options'>";
                    foreach ($results as $result) {
                        $city = $result->meta_value;
                        echo '<option value="' . $city . '"></option>';
                    }
                    echo "</select>";
                }
                ?>

问题是:这段代码会返回一个警告,告诉你我正在试图访问一个对象数组中的数据。
我已经尝试过使用extract(get_object_vars()),但它不起作用,现在我不知道如何分离数组/对象,以便使用存储在表中的字符串。

brccelvz

brccelvz1#

Results是一个对象数组,而您试图直接访问对象的 meta_value属性,而不是先访问对象本身。

foreach ($results as $result) {
    $city = $result->meta_value;
    echo '<option value="' . $city . '"></option>';
}

相关问题