首先,我首先尝试自己解决这个问题几个小时,并花了很多时间试图找到一个答案,但无济于事..无论如何,任何帮助都会非常感激,非常适合大学! :)
当有人在登录页面上输入他们的id时,我存储了一个“custID”的会话变量。 在我的mysql数据库中,customer表的行包含“custID”和“clientID”。我想要做的是使用链接到该客户ID的客户端ID在表中显示该客户端的详细信息(clientCompany是另一个包含“clientID”的表。所有主键/外键都正常工作)。 $ refclient似乎正在工作。我回应了结果,它给了我“2001”这就是我想要的。
$refclient = mysql_query("SELECT clientID FROM Customer WHERE custID='$_SESSION[custID]'");
echo mysql_result($refclient, 0); // outputs "2001" which is the client ID. this works
但是我现在希望在where子句中的$ client语句中使用该数字。
$client = mysql_query("SELECT * FROM clientCompany WHERE clientID = '$refclient'");
这不工作......我明白$ refclient给出了“资源ID#”,但我如何将其转换为数字,以便where子句有效地说“WHERE clientID = 2001”?我不知道如何使用连接语句(即时通讯!) 我做了一个快速计数功能,显示它没有从表中获取数据(它连接到服务器确定)
$count2=mysql_num_rows($client);
if($count2==1)
{
echo "working"; // 1 row is all that it should create
}
else
{
echo "not working"; //this is what always shows
}
我在这里有一些表格标题,我遗漏了以缩短我的问题。所有if语句,表格工作正常,所有括号都关闭,类似的东西:)
这是应该输出的内容:
while($row = mysql_fetch_array($client))
{
echo "<tr>";
echo "<td>" .$row['clientID']. "</td>";
echo "<td>" .$row['compName']. "</td>";
echo "<td>" .$row['compAddress']. "</td>";
echo "<td>" .$row['contactPersonForCompany']. "</td>";
echo "<td>" .$row['compEmail']. "</td>";
echo "<td>" .$row['compPhoneNum']. "</td>";
echo "</tr>";
}
基本上我应该在我的“$ client”选择语句中使用什么而不是'$ refclient'? 当我输入'2001'而不是'$ refclient'时它完美地工作但显然我需要将它链接到输入的custID,因此无法做到这一点。客户也无法知道clientID所以我无法让他们输入/存储在会话变量中..
$client = mysql_query("SELECT * FROM clientCompany WHERE clientID = '$refclient'");
PS抱歉回答一个问题的文章!只想提供尽可能多的细节=)提前感谢!
答案 0 :(得分:1)
您应该将值保存到变量中,如下所示:
$refclient = mysql_query("SELECT clientID FROM Customer WHERE custID='$_SESSION[custID]'");
$client_num = mysql_result($refclient, 0);
$client = mysql_query("SELECT * FROM clientCompany WHERE clientID = '$client_num'");
答案 1 :(得分:1)
SELECT clientCompany.* FROM Customer, clientCompany WHERE clientCompany.ClientID = Customer.ClientID AND Customer.custID = "jim"
这应该从clientCompany中选择所有内容,它等于客户ID中的clientID,其中custID等于您设置的内容。
答案 2 :(得分:0)
你真是太近了。您需要将结果转换为数字,然后将其传递给第二个查询:
$refclient = mysql_query("SELECT clientID FROM Customer WHERE custID='{$_SESSION['custID']}'");
$numeric_refclient = mysql_result($refclient, 0);
$client = mysql_query("SELECT * FROM clientCompany WHERE clientID = '$numeric_refclient'");
但是,这也可以通过一步加入或子查询来完成:
$client = mysql_query(
"SELECT * FROM clientCompany WHERE
clientID IN (
SELECT clientID FROM Customer WHERE custID='{$_SESSION[custID]}'
)"
);