• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

加入具有相同的id和列的名称相同,但不同的价值观

php 来源:J. Doe 4次浏览

我想要做什么,我刚才说的两个表。我有两个连接的表格。他们加入了相同的ID。但有两列同名,我只想输出其中一列。加入具有相同的id和列的名称相同,但不同的价值观

$query= "SELECT * 
     FROM users 
     INNER JOIN bookings ON users.username = bookings.personal 
     JOIN products ON bookings.productid = products.productid 
     WHERE users.id = $id 
     "; 

$selectproductname = $db->prepare($selectuseremailquery); 
$selectproductname ->execute(array()); 
foreach($selectproductname as $index => $rs) : 

it gives me something like this table: 

-id -----id----products----products------ 
-          - 
-1  1  a cup  coffee cup - 
-2  2  a pen  a purple pen - 
-----------------------------------------  

我想输出咖啡杯,但有两列同名。我如何输出?

这不起作用:

<td><div> <?php echo $rs['products.productname']; ?> </div> </td> 

而且我有选择它的所有*。


===========解决方案如下:

使用SELECT *一般considered harmful是制作软件,尤其是在PHP中,你问的确切原因。

在PHP中,有时结果集被加载到一个关联数组。这将导致除了每组重复列名之外的所有数据都消失。

你想用

 SELECT products.id, 
      products.productname, 
      products.id AS product_id, 
      bookings.*, 
      etc., etc. 

列举你在结果集中需要的列。 (请注意,我在猜测你的列名)。

我知道你的问题说,你必须使用SELECT *。我怀疑这是真的。如果是这样的话,这可能是由不知道他们在谈论什么的人施加的要求。 (愚蠢的教授技巧浮现在脑海中)

如果必须使用SELECT *,则需要使用结果集元数据来检查每列的元数据,并确定需要提取哪些列。 getColumnMeta()这样做。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)