PHP MySQL如何在一个表行中关联两个字段?

时间:2013-03-20 23:53:58

标签: php mysql

如果我可以与我的数据库表交谈,我会说“如果client_id和salesrep_id在同一行,请执行此操作!

我得到的大部分条件逻辑。这是我在努力的“同行”部分。

基本上,我正在构建一个系统,允许所有销售代表查看整个数据表,但允许每个代表只更新自己的特定条目。

这个想法是禁用显示屏中其他所有人的“编辑”链接。

像这样...

    <?php if ($row_listClients['client_id'] && $row_listClients['salesrep_id']) { ?>
    <td><a href="edit_clients.php?client_id=<?php echo $row_listClients['client_id']; ?>">Edit</a>
    </td>
    <?php } else { ?>
    <td>Edit</td>
    <?php } ?>

显然初始条件不起作用(&amp;&amp;将永远是真的),但其他一切都很好。只是这一点我坚持下去。

希望这是有道理的,我知道这可能是非常基本的东西。

非常感谢大家,任何指针都会非常感激。

-

以下是查询:

    $query_listClients = "SELECT client_id, user_id, repname, date, client_type, company,
    contact_firstname, contact_lastname, phone, email, property, address, city, province,
    repnotes FROM clientdata ORDER BY company ASC";
    $listClients = mysql_query($query_listClients, $connAdmin) or die(mysql_error());
    $row_listClients = mysql_fetch_assoc($listClients);

再次感谢...

-

数据库数据样本 - 我仅作为测试输入。前两个数字分别是client_id和user_id:

    19;"33"; "Ronald Wharton"; "March 20 2013"; "Commercial"; "Bonkers Inc."; "Brett";
    "Bonkers"; "987   654 3211"; "brentbonkers@bonkersinc.com"; "Retail Outlet"; 
    "12765 34 Ave"; "Lost Soul City"; "Sask"; "Brett wants to meet with Keith and Dean 
    before the end of the week.  Please call before Friday."        

不知道这是否有任何帮助,但是你去了,谢谢。

2 个答案:

答案 0 :(得分:1)

您应该在会话中存储当前salesrep_id(登录的那个),然后将其与mySql查询返回的salesrep_id进行比较(在下面的示例中,我已将当前登录的salesrep_id等于1)

在SQL语句中添加一个WHERE子句,如下所示:

SELECT * FROM $tableName WHERE salesrep_id = 1

您只能获得salesrep_id = 1

的行

如果您想从数据库中获取所有行,则

SELECT * FROM $tableName

然后

//检查是否返回salesrep_id =当前Sales Rep.Id(本例中为1)

<?php if ($row_listClients['client_id'] && $row_listClients['salesrep_id'] == 1) : ?>

//显示编辑链接

<?php endif; ?>

答案 1 :(得分:1)

我重读了你的问题。听起来好像您要查询所有记录,但只想显示特定销售代表应该允许编辑的项目的编辑链接。

既然你想要所有的记录,这不应该通过SQL来完成,听起来你需要做的就是改变:

<?php if ($row_listClients['client_id'] && $row_listClients['salesrep_id']) { ?>

类似于:

<?php if ($row_listClients['salesrep_id'] == $currentSalesRepId) { ?>

您显然需要为$currentSalesRepId使用适当的变量。