我在一個名爲「ihn_2_frm_item_metas」的WordPress多站點上有一個自定義WordPress表格,用於表單條目。
截圖數據庫表的是在這裏:https://www.dropbox.com/s/ex54qxxohkexg5t/mysql.png
現在,有兩個條目。每個條目都有自己獨特的「item_id」(在這種情況下,Bob Marley的條目的ID爲10,Molly Dolly的條目的ID爲9)。這些條目也對應於實際的WordPress用戶(他們的用戶名是他們的電子郵件地址,他們的密碼是「測試」)。條目ID與其WordPress用戶標識號不同。
我已經使用密碼「test」以「[email protected]」身份登錄。
在博客的主頁上,我希望僅顯示當前登錄用戶的「meta_value」列中的所有項目。
我想這樣做的兩個步驟:
- 找到在當前登錄用戶(「[email protected]」)的電子郵件地址。
- 找到位於匹配電子郵件地址的同一行上的該用戶的表單條目(10)的「item_id」。
下面是代碼我想出了:
global $wpdb;
global $current_user;
get_currentuserinfo();
$email = $current_user->user_email;
$id = $wpdb->get_var(" SELECT item_id FROM ihn_2_frm_item_metas WHERE meta_value = $email ");
$client_meta = $wpdb->get_results(" SELECT * FROM ihn_2_frm_item_metas WHERE item_id = $id ");
echo '<p> $email is a ' . gettype($email) . '</p>';
echo '<p> $id is a ' . gettype($id) . '</p>';
echo '<p>The current logged in user is ' . $email . '.</p>';
echo '<p>The current form entry id is ' . $id . '.</p>';
echo "<ul>";
foreach ($client_meta as $value) {
echo '<li>' . $value->meta_value . '</li>';
}
echo "</ul>";
我只是在二階gettype()
聲明,以確認我的兩個varables,$email
和$id
是字符串。
這裏是我的代碼的輸出:
$電子郵件是一個字符串。
$ id是一個NULL。
當前登錄的用戶是[email protected]。
當前表單條目標識爲。
請注意,$id
是NULL
。是什麼讓我困惑的是,當我改變$id
變量這(與「[email protected]」替換變量$email
):
$id = $wpdb->get_var(" SELECT item_id FROM ihn_2_frm_item_metas WHERE meta_value = '[email protected]' ");
我的輸出正是我需要的:
$郵件是一個字符串。
$ id是一個字符串。
當前登錄的用戶是[email protected]。
當前表單條目標識爲10。
- 鮑勃
- 馬利
- [email protected]
- 測試
我在哪裏出了錯?
解決了問題完美。非常感謝你! – tatemz