【问题标题】:syntax needed for conditional hyperlink column条件超链接列所需的语法
【发布时间】:2019-03-21 23:41:34
【问题描述】:

好的,我有一个vendors 表,其中有一列名为rate_vendor,其中包含指向rate_vendor_add 页面的超链接。它将默认供应商设置为单击链接的供应商。每个用户只能对每个供应商进行一次评分,但可以编辑该排名,因此我为 vendor_ratings 表设置了一个双列主键。两列是vendor 和user。如果特定用户尚未对特定供应商进行评级,则“评级供应商”链接可以正常工作,但我需要的是一个条件超链接,如果该供应商已被评级,则链接到 vendor_ratings_edit 页面而不是 vendor_ratings_add 页面那个用户。以下是我用于“费率供应商”链接的代码:

$value = "< a href='vendor_ratings_add.php?Vendor=" . $data["Vendor"] . "'>Rate this vendor</a>"

这将是“编辑评分”链接:

< a href='vendor_ratings_edit.php?Vendor=" . $data["Vendor"] . "'>Edit rating</a>

我需要有关 IF ELSE 语句所需语法的帮助。任何人都可以引导我朝着正确的方向前进吗?

【问题讨论】:

  • 您是否已经有一个布尔变量,$hasRated 或其他什么?如果不是,您需要先进行 db 调用才能弄清楚
  • 我没有。我将如何实现这一目标?
  • 你可以在 vendor_ratings 表上做一个简单的选择。如果 vendorId 和 userId 的组合存在,则用户必须在某个时间对供应商进行评分。

标签: php mysql if-statement hyperlink conditional


【解决方案1】:

首先,执行 SQL 查询以查找用户是否对该供应商进行了评级。

SELECT id from vendor_ratings WHERE vendorid = x AND userid = y

如果返回一行,那么我们现在就知道要显示哪个链接了。

假设我们创建了一个名为 $hasRated 的布尔值,那么您需要做的就是:

$href = ($hasRated) 
    ? "< a href='vendor_ratings_add.php?Vendor=" . $data["Vendor"] . "'>Rate this vendor</a>"
    : "< a href='vendor_ratings_edit.php?Vendor=" . $data["Vendor"] . "'>Edit rating</a>"

【讨论】:

  • 我理解你的逻辑。我不明白的是如何为每个供应商和每个用户制作一个布尔值。使用上面的选择语句将告诉您是否存在一个用户对一个供应商的评级。我有 500 个供应商和几十个用户。
  • 看看有没有返回一行$hasRated = count($result) ? true : false;
  • 所以我需要为 500 个供应商执行此操作:SELECT id from vendor_ratings WHERE vendorid = x AND userid = y
  • 用正确的 id 替换 x 和 y,并放入正确的表名,是的
  • 好的,这段代码有效: $rs = DB::Query("select * from vendor ratings WHERE (Vendor='" . $data["Vendor"] . "') 和(用户='".$_SESSION["用户"]."')");如果 ( $data = $rs->fetchAssoc() ) $value = "编辑评分";否则 $value = "评价这个供应商";问题是“编辑评级”链接打开了默认为正确供应商的 vendor_rating_edit 页面,但“评价供应商”链接没有。两个 "
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-20
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多