在WordPress中显示SQL数据库中的数据

时间:2018-11-20 20:47:54

标签: php mysql wordpress

我是WordPress的新手,因此我需要显示数据库中的一些数据到WordPress php页面。

我将此代码添加到我的functions.php中(已安装主题的内部)

function ws_count_completed_courses() {
$ws_current_user = get_current_user_id();
global $wpdb;

//Count completed courses for logged user.
$ws_completed_courses = $wpdb->get_results("SELECT COUNT(item_id) FROM 
$wpdb->user_items WHERE status = 'completed' AND used_id = 
$ws_current_user");
}

然后在我的dashboard.php中添加下一个代码...

<p>The user has been finished <?php echo $ws_completed_courses ; ?> courses</p>

但是我只在网站上看到用户已经完成课程

我的错误在哪里以及如何解决该问题?

谢谢!

更新18年11月21日

function.php

function ws_count_completed_courses() {
$ws_current_user = get_current_user_id();
var_dump($ws_current_user);
global $wpdb;    

$ws_completed_courses = $wpdb->get_results( "SELECT COUNT(item_id) FROM 
$wpdb->user_items WHERE status = 'completed' AND user_id = 
$ws_current_user" );

foreach ($ws_completed_courses as $course) {
$completedCourseCount = $course->user_item_id;
}
return $completedCourseCount;   
}

dashboard.php

<p>The user has been finished <?php echo ws_count_completed_courses(); ?> courses</p>

2 个答案:

答案 0 :(得分:0)

您可以用$wpdb tutorials谷歌搜索;但是,以下是概念性概述,可能有助于您入门:

  1. 在SQL提示符下,确保查询有效。然后找出如何修改SQL以在PHP代码中使用程序变量。

  2. 看看从查询中获得的结构:

    var_dump($ws_current_user);

  3. 有很多方法可以从返回的结构中提取数据,但是最常见的方法是这样的:

    foreach ($ws_completed_courses as $course) { $completedCourseCount = $course->colum_you_want; }

  4. 返回您提取的值作为函数的最后一行:

    return $completedCourseCount;

  5. 像这样调用函数:

    echo ws_count_completed_courses();

答案 1 :(得分:0)

$wpdb->get_results返回数组或对象。因此,请尝试以下方法之一:

echo $ws_completed_courses['COUNT(item_id)'];
echo $ws_completed_courses->COUNT(item_id);

编辑:确定,然后尝试以下操作:

function ws_count_completed_courses() {
 $ws_current_user = get_current_user_id();
 global $wpdb;    

 $ws_completed_courses = $wpdb->get_results( "SELECT COUNT(item_id) as user_item_id FROM $wpdb->user_items WHERE status = 'completed' AND user_id = $ws_current_user" );

 foreach ($ws_completed_courses as $course) {
   $completedCourseCount = $course->user_item_id;
 }
return $completedCourseCount;   
}