php - 从 wpdb 填充下拉列表
问题描述
我正在尝试从我的 wpdb 中检索一个列表并填充一个下拉列表,但似乎我做错了,因为下拉列表中有 2 个空值(我返回了 2 个结果)。
<?php
global $wpdb;
global $results;
$results = $wpdb->get_results ( "SELECT Firstname from Professionals" );
?>
<div class="wrap">
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php get_search_form(); ?>
<select class="dropdown" id="mydropdown" name="mydropdown" title="My Dropdown">
<?php
foreach ($results as $value) {
echo '<option value="' .$value. '">' .$value. '</option>';
}
?>
解决方案
该方法get_results()
返回一个对象数组或数组,但是您将其视为字符串数组。
你有几种方法可以解决这个问题。
切换到get_col()
此方法将按照您的预期返回一个字符串数组。
$results = $wpdb->get_col("SELECT Firstname from Professionals" );
使用对象索引
默认返回的get_results()
是一个数组 ob 对象,其中列作为对象的属性。这不适用于所有列名,但应该适用于您的列名。
foreach ($results as $value) {
echo '<option value="' .$value->Firstname. '">' .$value->Firstname. '</option>';
}
使用数组表示法
您需要为get_results()
函数 ARRAY_A 提供第二个参数:
$results = $wpdb->get_results ( "SELECT Firstname from Professionals", OBJECT );
foreach ($results as $value) {
echo '<option value="' . $value['Firstname'] . '">' .$value['Firstname'] . '</option>';
}
推荐阅读
- android-studio - Android Studio 中 ProgressBar 的边界
- javascript - 这是最佳实践吗?检查变量是否已定义或分配 null
- c# - 如何在 WPF 中使用 Xbim 以 3D 形式可视化 .IFC
- curl - 将 Postman“获取新的授权令牌”转换为 curl 命令
- c# - 如何允许将 XAML 中的事件处理程序分配给 UserControl 内的按钮?
- react-native - React Native Expo 中未加载字体
- php - 如何在sql中将“WHERE”/“LIKE”/CONCAT与count和group by结合起来?
- c# - 某些字符的文件损坏 - 将 ASCII 代码增加或减少 2
- mediawiki-api - clientlogin to wikidata through API 给出了模棱两可的错误信息
- c# - 如果对具有 IEnumerable 结果的方法添加 AsQueryable(),则 AsNoTracking() 不起作用