2016-08-21 141 views
0

我有一个用于用户信息和提供表的SQL表。如果用户上传优惠,它会得到一个唯一的ID,以及具有用户ID的“belongs_id”。为用户提供创建唯一ID

现在我想在优惠已经在我的数据库中后更改元素。但唯一的信息是用户的ID。用户可以有多个优惠。

所以我的问题是:如何使用唯一ID调用一个特定优惠来更新它?

+0

“我的唯一信息是用户的ID”。你为什么只有用户的ID?你可以得到报价的ID吗? (因为每个优惠只能属于一个用户,所以很容易找到该优惠所属的用户,而不是其他方式。) – Chris

+0

与克里斯相同Q.如果您所知道的只是用户的ID,那么解决方案就是改进提交请求的前端代码,以便它包含可以唯一标识该提议的信息。 – BeetleJuice

回答

1

一种解决办法是,你可以让你的表作为3列的表格,是这样的:

+----+--------------+----------+ 
| id | belonging_id | offer_id | 
+----+--------------+----------+ 
| |    |   | 

id列将AUTO_INCREMENTPRIMARY KEYbelonging_id将用户的ID和与offer_id将是你唯一的报价ID 。通过这种方式,您可以满足以下条件:

而且用户可以有多个优惠。

一个例子表片断会是这样:现在

+----+--------------+----------+ 
| id | belonging_id | offer_id | 
+----+--------------+----------+ 
| 1 |  A  |  XYZ | 
| 2 |  A  |  ABC | 
| 3 |  A  |  PQR | 
| 4 |  B  |  IJK | 
+----+--------------+----------+ 

,可以选择使用id列值的特定<belonging_id, offer_id>对。


旁注:如果你打算使用此方法,并在此表中插入记录,看看下面的链接来获得最后插入的ID(选择一个按你的扩展名),

0

请给我们你的SQL表格方案。

为了帮助你,我觉得你的要求应该是这样的:

SELECT * FROM offers WHERE belonging_id = id_user


编辑:

你需要有一个unique identifier(类似于主键,或一个UNIQUE字段)在您的表格中提供,如果您想要检索所有用户的优惠中的特定优惠。

当您在表格中插入数据时,您可以检索上次插入的ID。 对于为例,在PHP使用PDO扩展),你可以这样做:echo $db->lastInsertId();


编辑2:

让我们假设用户send_offer.php某个网页上结束他发出要约后在数据库中。 然后,您应该产生这样一个独特的链接:http://edit_offer.php/?id_offer=the_id_of_the_offer_just_sent

这种独特的链接应存放在你的桌子报价,所以当用户希望编辑他的提议之一,他只有用这个链接来访问你的网站。

此链接应该指向一个网页,其中有一个表单,您需要在其中载入与上述链接对应的商品数据。

+0

我也想过,但如果用户可以有多个优惠,它将不再是唯一的... –

+0

是的,这应该工作,谢谢! –

0
  • 用户有多个报价
  • 要编辑特定的报价
  • 所有你知道的是用户的身份

什么你问有没有编码解决方案,因为它没有逻辑解决方案就好像我给了你一罐蓝白色的弹珠,并要求你给我一个特定的蓝色大理石。所有你知道的是颜色,所以没有更多的信息,没有办法可靠地得到我想要的大理石。

而不是尝试在服务器端设计解决方案,转向前端。找出如何发送唯一标识请求的信息以及用户标识。例如,将请求ID包含在请求process.php?offer_ID=123中,以便您可以使用$_GET['offer_id']检索它并在查询中使用它。

如果你没有办法做到这一切在一个步骤中,您可以改为:

  1. SELECT * FROM offers WHERE belonging_id = $userID
  2. 将所有结果到前端,附有
  3. 询问用户他们的提议标识选择从比赛一具体报价,其ID返回到服务器
  4. SELECT * FROM offers WHERE offer_id = $offerID和过程记录