2014-10-01 87 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