【发布时间】:2019-01-17 20:56:14
【问题描述】:
我在 MySQL 数据库中有一个自定义表,我正在尝试使用 global $wpdb 进行查询。我使用来自以下两个来源的信息定义了我的查询:
- https://codex.wordpress.org/Class_Reference/wpdb
- https://wordpress.stackexchange.com/questions/233021/display-data-on-word-press-site-posts-and-pages-from-mysql-table
phpMyAdmin中的数据是这样的:
查询似乎工作正常,因为它从我的自定义表中选择数据,但是除了表中可用的信息之外,输出似乎包含垃圾/不必要的信息。
我希望它显示为表格/类似于它在 phpMyAdmin 中的显示方式,我可以在其中关联 SrNo、Compound 等与表中的其他列:
add_shortcode('wpse_233031_shortcode', function(){
global $wpdb;
$myrows = $wpdb->get_results( "SELECT `SrNo`, `Compound` FROM PNaphtha");
//$results = $wpdb->get_results( "SELECT `SrNo`, `Compound` FROM PNaphtha" );
ob_start();
echo var_dump($myrows );
//return ob_get_clean();
});
我得到以下结果
array(10) {
[0]=> object(stdClass)#6275 (2) {
["SrNo"]=> string(1) "2"
["Compound"]=> string(12) "abietic acid"
}
[1]=> object(stdClass)#6274 (2) {
["SrNo"]=> string(1) "3"
["Compound"]=> string(12) "acenaphthene"
}
[2]=> object(stdClass)#6273 (2) {
["SrNo"]=> string(1) "4"
["Compound"]=> string(6) "acetal"
}
[3]=> object(stdClass)#6272 (2) {
["SrNo"]=> string(1) "5"
["Compound"]=> string(12) "acetaldehyde"
}
[4]=> object(stdClass)#6271 (2) {
["SrNo"]=> string(1) "6"
["Compound"]=> string(9) "acetamide"
}
[5]=> object(stdClass)#6270 (2) {
["SrNo"]=> string(1) "7"
["Compound"]=> string(11) "acetanilide"
}
[6]=> object(stdClass)#6269 (2) {
["SrNo"]=> string(1) "8"
["Compound"]=> string(11) "acetic acid"
}
[7]=> object(stdClass)#6268 (2) {
["SrNo"]=> string(1) "9"
["Compound"]=> string(16) "acetic anhydride"
}
[8]=> object(stdClass)#6267 (2) {
["SrNo"]=> string(2) "10"
["Compound"]=> string(7) "acetone"
}
[9]=> object(stdClass)#6266 (2) {
["SrNo"]=> string(2) "11"
["Compound"]=> string(19) "acetone cyanohydrin"
}
}
虽然我查询的所有信息都在这里,但也有很多不必要的信息。
我尝试了以下更改,但似乎都没有工作
$myrows = $wpdb->get_row( "SELECT `SrNo`, `Compound` FROM PNaphtha"); // get_row
output_type changed to ARRAY_A, ARRAY_N, OBJECT_K
echo var_dump changed to echo array
如果您能告知如何将结果格式化为表格或数组,我将不胜感激。另外,我已将上述代码放在我的主题的functions.php 文件中。有没有更好的方法来做到这一点?
【问题讨论】:
-
您的某个字段中是否有序列化数据?
-
那是什么垃圾?这就是 PHP 显示嵌套数据和对象的方式。
-
感谢您的回复。不,我没有序列化数据。我添加了显示在 phpMyAdmin 中的数据的屏幕截图。
-
该代码属于您的functions.php(除非您制作了插件),所以那里很好。你试过
echo '<pre>' . print_r( $myrows, TRUE ) . '</pre>;吗? -
感谢 disinfor。您的建议有所不同,它显示的结果有点“整齐”,就像换行一样,给人一种子弹般的感觉,但“垃圾”仍然在那里。
标签: php mysql wordpress serialization