2013-04-19 29 views
-1

,因爲我與測試用戶在條款將不執行,他們org_id列的值是「student_life」PHP:凡採用可變

我想有這個功能顯示任何行具有student_life柱= 1 (所以是有一列student_life這是一個布爾值,然後我也有一個單獨的列名爲org_id,在這種情況下有值student_life)

我很確定有一個語法錯誤,但我不能確定出來。

function org_id_users_table() 
{ 
$org_id = mysql_real_escape_string($_POST["org_id"]); 

$sql = $this->query("SELECT * FROM ".DBTBLE." WHERE '$org_id' = '1'"); 
$result = $sql['sql']; 
$num_rows = $sql['num_rows']; 
$this->create_table($result, $num_rows); 
} 

(當我更換$ org_id在 「$ SQL = ...」 符合student_life代碼工作。

+0

因此'$ org_id'包含您在表格中搜索值爲'1'的列名稱 –

+0

如果將'$ org_id ='student_life'''它的工作原理,但目前的代碼不起作用。 – user2296393

回答

1

你在引用列名,這使MySQL認爲它是一個字符串。

$sql = $this->query("SELECT * FROM ".DBTBLE." WHERE $org_id = '1'"); 

編輯:

根據您的意見,我想你真正想要的是這樣的:

$sql = $this->query("SELECT * FROM ".DBTBLE." WHERE org_id = '$org_id'"); 
+0

這些都不適合我,還有什麼建議嗎? – user2296393

+0

這將使查詢按預期運行(假設'DBTBLE'已定義,'$ org_id'具有預期值)。那個函數實際返回的將取決於'$ this'是什麼。你看到任何錯誤?當你說它不起作用時,這到底意味着什麼?哪部分不起作用? –

+0

我已經將問題縮小到第一部分,我給'$ org_id'一個值。對於我登錄的用戶,mysql中的org_id列是student_life。當我手動輸入'$ org_id ='student_life''時,它可以工作。 – user2296393

0

這是哪裏來的? $ _POST [「org_id」]

你在頁面上發佈了一個表單嗎?或者你只是試圖從數據庫中獲取?如果是這樣,你不需要另一個查詢來獲得第一個?

$ row_MyFirstQuery [ 'org_id']

否則,如果它是$ _ POST [ 「org_id」],不會是單引號不是雙? $ _POST ['org_id']