2012-12-08 94 views
0

我有两个表,“customers”和“users”。如果mysql值包含另一个表中的另一个mysql值,则echo

在customers表中,我有一个名为“name”的列。这有所有的客户名称。

在我的用户表中,我有一个标题为“管理”的专栏。这有一些客户的名字。

我想显示的内容,如果“管理” CONTAINS任何从“名”客户。

下面是一个例子...

“名” 包含一个客户 “的Applebees”, “约翰尼carinos” 和 “必胜客”。

用户rick正在“管理”“applebees”和“pizza hut”。在他的行/列中,它看起来像“applebees,pizza hut”(我正在使用implode函数,这就是为什么有一个,“)

所以,在我的客户页面上,我希望瑞克看到applebees和我不想让他看到johnny carinos,因为他没有管理它。

我该如何做到这一点?我已经尝试过预赛& 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

你只需要显示“里克”的数据?在大图中,rick已经登录,他需要查看他正在管理的属性? – Jrod

回答

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_ *函数。

+0

太棒了!如果我已经成功完成并将您的答案标记为正确,我将继续前进并在今晚的某个时间执行此操作并报告回来。谢谢! – Alex

+0

@Alex刚刚更新以包含有关如何在这些表上设置主键的信息。 –

+0

当创建新的客户/用户时,我想我会运行第二个查询来在users_to_customers中创建一个新的ID,以便所有的ID在三个表中匹配,对吗?还是有更有效的方法来做到这一点? – Alex

相关问题