Php 如何查询未知变量?
我知道这听起来可能令人困惑,因此下面是详细的解释: 在一个表中,我有以下内容:customer\u id、agent\u id、brief\u is、added\u by 客户id是客户的id 代理id是服务代理 这是一个简短的描述 added_by保存添加它的客户或代理的id 现在,我可以通过查询客户id的添加方式获得结果,但现在我还想添加一个排序函数,该函数将显示添加方式为客户但由代理id添加的所有结果 我是否需要为添加的_设置另一个字段,或者是否有其他方式显示这些结果 查询示例:Php 如何查询未知变量?,php,mysql,Php,Mysql,我知道这听起来可能令人困惑,因此下面是详细的解释: 在一个表中,我有以下内容:customer\u id、agent\u id、brief\u is、added\u by 客户id是客户的id 代理id是服务代理 这是一个简短的描述 added_by保存添加它的客户或代理的id 现在,我可以通过查询客户id的添加方式获得结果,但现在我还想添加一个排序函数,该函数将显示添加方式为客户但由代理id添加的所有结果 我是否需要为添加的_设置另一个字段,或者是否有其他方式显示这些结果 查询示例:
/* Get data. */
$sql="SELECT brief_is, customer_id, agent_id, added_by FROM the_brief
WHERE dcustomer_id = '$id'";
$result=mysql_query($sql);
$query = mysql_query($sql) or die ("Error: ".mysql_error());
if ($result == "")
{
echo "";
}
echo "";
$rows = mysql_num_rows($result);
if($rows == 0)
{
print("");
}
elseif($rows > 0)
{
while($row = mysql_fetch_array($query))
{
$cust = $row['customer_id'];
$agent = $row['agent_id'];
$brief = $row['brief_is'];
print("");
}
}
以下查询将返回代理添加的特定客户的所有行:
SELECT customer_id, agent_id, brief_is, added_by
WHERE customer_id=<CUSTOMERID>
AND added_by IN (SELECT agent_id FROM agents)
如果我理解正确,您希望通过限制不将结果排序到由代理而不是客户添加了_简短条目的结果来改进您的查询。 如果是这样,那么您所要做的就是向查询中添加一个额外的验证:agent\u id=added\u by。 现在,您的查询将如下所示:
SELECT brief_is, customer_id, agent_id, added_by
FROM the_brief
WHERE customer_id = '$id'
AND agent_id = added_by
编辑:
您的评论将我引向以下代码。请告诉我它是否正确:
SELECT brief_is, customer_id, agent_id, added_by
FROM the_brief
WHERE customer_id = '$id'
AND agent_id != customer_id
你也可以用代替= 不太清楚,听起来你要求的是同一件事:
SELECT brief_is, customer_id, agent_id, added_by FROM the_brief
WHERE agent_id= '$id'";
你说“加”是什么意思?如果您必须保留两种信息:
是谁加的
布雷菲指的是谁
那么你必须提供更多的信息
如果客户或代理只为自己添加一个摘要,则您不需要其他字段。找到它。我所需要做的就是使用不等于客户id的,这将提供代理id显示一个查询客户id的示例。如果代理与客户具有相同的id怎么办?像这样的字段的双重目的很少是一个好主意。$id是会话而不是代理的id。好吧,sry,但这不是很清楚。我认为id代表客户idlets这样说。其中customer_id=$id,但added_by不等于id。类似的内容将显示客户的内容,但不是他们添加的内容。让我们这样说。其中customer_id=$id,但added_by不等于id。类似的内容将显示客户的内容,但不是他们添加的内容。