我有两张桌子,"客户"和"用户"。
在customers表中,我有一个标题为" name"的列。这有所有客户名称。
在我的用户表中,我有一个标题为" manage"的列。这有一些客户名称。
我正在尝试显示内容,如果"管理"来自"名称" CONTAINS 任何客户。
这是一个例子......
"名称"包含客户" applebees"," johnny carinos"," pizza hut"。
用户瑞克是"管理" "的Applebees"和"披萨小屋"。在他的行/列中,它看起来像" applebees,pizza hut" (我正在使用implode函数,这就是为什么有一个")
所以,在我的客户页面上,我想要rick看到applebees和pizza hut。我不想让他看到johnny carinos,因为他没有管理它。
我该怎么做?我试过preg match& amp; strpos但悲惨地失败了。 (我仍然是php的新手)。这个单值很容易,所以我可以设置value = value。不幸的是,拥有多个值来管理"真让我烦恼!
希望这是有道理的。谢谢你的帮助!
这是我现在所拥有的(是的,我知道,可能是非常错误的。)
<?php
$sql = "SELECT * FROM customers";
$result = mysql_query($sql);
$thecust = $_SESSION['user']['managing'];
$thecustomers = htmlentities($row['name']);
$check = strprk(wing, $thecust);
if ($check) {
while ($row = mysql_fetch_array($result)) {
?>
<tr>
<td><?php echo "<a href='customer.php?id=" . $row['id'] . "'>" . $row['name'] . "</a>"?></td>
<td><?php echo htmlentities($row['contact_name'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlentities($row['contact_number'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlentities($row['contact_email'], ENT_QUOTES, 'UTF-8'); ?></td>
</tr>
<? } ?>
答案 0 :(得分:0)
答案在于您的数据库架构以及查询方式。你没有真正进入你的数据库表结构,但我建议你使用这样的东西
users
-------
user_id INT, autoincrement, PRIMARY KEY
user_name VARCHAR
[other user-specific fields]
users_to_customers
-------
user_id INT
customer_id INT
[compound primary key across both fields]
customers
-------
customer_id INT, autoincrement, PRIMARY KEY
customer_name VARCHAR
[other customer specific fields]
注意我这里有三张桌子。这允许您将任意数量的用户与任意数量的客户相关联。如果没有获得您正在寻找的信息,我们假设您知道查看客户页面的用户的user_id
。您的查询可能看起来像
SELECT c.customer_id, c.customer_name, [whatever other fields you need]
FROM users AS u
INNER JOIN users_to_customers AS uc
INNER JOIN customers AS c
WHERE u.user_id = ? [the user_id of the user viewing the page]
这将为您提供与该用户相关的客户的客户信息。
如果不推荐使用mysql_*
函数,也不应该使用它们(请注意PHP.net文档中的大红色警告)。也许使用mysqli_ *函数。