2014-10-01 111 views
1

我用準備好的發言的其他表得到列,我需要這兩個爲「選擇」其他表,分開,以獲得數據,但我得到這個:PHP的MySQL選擇的東西,從

Fatal error: Call to a member function bind_param() on a non-object in C:\xampp\htdocs\views\user\referral.php on line 16 

如果我加入選擇table1。*,表。*「theothertable。*」

$stmt = $mysqli->prepare("SELECT friends.*, rc_usuario.* // or just * 
    FROM friends 
    INNER JOIN rc_usuario ON rc_usuario.id = friends.friendID 
    WHERE friends.userID = ?"); 

$stmt->bind_param('s', $connectedUserID); 

這是工作的罰款,我得到了我所需要的,但我也需要從另一個表中的數據,我不能使其他選擇,因爲我需要它在一段時間內打印所有的數據在一起。

問題是,我可以從2表中選擇類似的東西,也可以從其他表/ s中獲取數據嗎?

謝謝!

編輯:添加新的語句:

if ($stmt = $mysqli->prepare("SELECT friends.*, members.*, account_type.* 
    FROM friends 
    INNER JOIN members ON members.id = friends.friendID 
    INNER JOIN account_type ON account_type.name = members.acc_type 
    WHERE friends.userID = ? AND members.acc_type = ?")) { 

    $stmt->bind_param('is', $connectedUserID, $connectedAcc_type); 
    $stmt->execute(); 
    } else echo $mysqli->error; 

回答

0

您可以通過其他INNER JOIN,像如下加入多個表;

INNER JOIN rc_usuario ON rc_usuario.id = friends.friendID 
INNER JOIN rc_another ON rc_another.col = friends.coljoin 

只要確保在連接的表中選擇了所需的所有列。

它也可能有助於在if中運行你的準備語句,就像這樣;

if($stmt = $mysqli->prepare("SELECT ...")) { // ... where the rest of your query is 
    $stmt->bind_param('s', $connectedUserID); 
    $stmt->execute(); 
} 
else { 
    echo $mysqli->error; 
} 

這將給你一個關於SQL語法的任何問題的想法。

希望這會有所幫助。

+0

感謝您的快速響應!我添加了if和else並給了我這個錯誤:不是唯一表/別名:'members' 致命錯誤:調用成員函數get_result()在C:\ xampp \ htdocs \ views \ user中的非對象上\第25行的referral.php – 2014-10-01 03:55:07

+0

在你編輯你的問題的地方,不要說'從朋友,成員',只要說'從朋友',然後你加入成員。第二個錯誤是因爲由於SQL中的錯誤而沒有結果。 – worldofjr 2014-10-01 03:57:32

+0

好的謝謝,我也重複在哪裏:P – 2014-10-01 04:02:35