将显示一行的 wpdb 查询结果转换为单个变量(如果重要,请使用简码)

Posted

技术标签:

【中文标题】将显示一行的 wpdb 查询结果转换为单个变量(如果重要,请使用简码)【英文标题】:Turn a wpdb query result that reveals one row into individual variables (using shortcodes if that matters) 【发布时间】:2016-10-05 01:18:35 【问题描述】:

关于 *** 的第一篇文章。我关注这个网站很长时间了,通常都能找到我要找的东西。但这让我很困惑。

让我来设置舞台。我正在开发一个网络驱动程序。我有 Wordpress,带有来自优雅主题的 Divi 主题。我正在使用简码插入模块。我是新手(这说明了一切。)

这是我的问题。我运行了一个返回单行结果的 wpdb 查询。

$editresult = $wpdb->get_results ("SELECT `serialnumber`, `batttype`, `cells`, `fullvolts` FROM listbattery WHERE serialnumber = '$serialnumber'", ARRAY_A);

当我对此进行 vardump 时,我得到以下信息。

array(1) [0]=>array(4) ["serialnumber"]=>string(10)"battery #2" ["batttype"]=>string(5) "NiCad" ["cells"]=>string(1) "8"["fullvolts"]=>string(6)"12.125"

话虽如此,我知道查询工作正常。我知道我正在接收信息。我一生都想不通的是如何将每列的结果转换为单独的变量,以便我可以在整个页面中随机插入每个变量。

到目前为止,我已经尝试了大约 8 种不同的方法。我希望你们能帮忙!谢谢!!!

【问题讨论】:

【参考方案1】:

你可以循环遍历结果:

foreach($editresult as $result) 
    $serialnumber = $result['serialnumber'];
    $batttype = $result['batttype'];
    $cells = $result['cells'];
    $fullvolts = $result['fullvolts'];

【讨论】:

【参考方案2】:

如果预计只返回一行,可以执行以下操作

$editresult = $wpdb->get_row("SELECT `serialnumber`, `batttype`, `cells`, `fullvolts` FROM listbattery WHERE serialnumber = '$serialnumber'", ARRAY_A);

然后您可以访问返回的值,例如

$editresult['serialnumber']
$editresult['batttype']
$editresult['cells']
$editresult['fullvolts']

或者如果您将ARRAY_A 更改为OBJECT,您将能够像这样访问这些值

$editresult->serialnumber
$editresult->batttype
$editresult->cells
$editresult->fullvolts   

get_resultsforeach 中没有必要,如 @nanodanger 的回答中所示,如果您总是希望只得到 1 行

【讨论】:

以上是关于将显示一行的 wpdb 查询结果转换为单个变量(如果重要,请使用简码)的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Sqlalchemy ORM 查询结果转换为包含关系的单个联接表?

SQL中逗号分隔的查询结果转换成单个字符串放到in语句里

使用python将mySql查询结果转换为json

如何使用SQL查询将总数量和消耗的数量转换为单个结果

如何将Oracle查询结果多行数据转成一行平铺显示?

如何将方程转换为单个变量的公式?