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

时间:2016-06-05 09:27:35

标签: php html mysql arrays wordpress

stackoverflow上的第一篇文章。我一直关注这个网站很长一段时间,通常会找到我正在寻找的东西。但这让我很困惑。

让我踏上舞台。我正在开发一个Web驱动程序。我有Wordpress,Divi主题来自Elegant Themes。我正在使用短代码插入模块。我是新手(这说明了一切。)

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

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

当我对此进行讨论时,我得到以下内容。

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

所以说,我知道查询工作正常。我知道我收到了这些信息。在我的生活中我无法弄清楚的是,如何将每列的结果转换为单个变量,以便我可以在整个页面中随机插入每个变量。

到目前为止,我尝试过8种不同的方法。我希望你们能帮忙!感谢!!!

2 个答案:

答案 0 :(得分:1)

您可以遍历结果:

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

答案 1 :(得分:1)

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

$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   

如果你总是期望只获得一行,那么@ nanodanger的回答中没有get_resultsforeach所示