gpt4 book ai didi

php - 如何从 mysql select 中分离结果

转载 作者:行者123 更新时间:2023-11-29 12:42:49 25 4
gpt4 key购买 nike

对于这个初学者问题,我深表歉意,但不幸的是,这是我的水平。

我的工作有一个相当简单的网页,它是一个 index.php 页面,打开时会转到数据库并检索特定列的内容。然后,它将结果放入下拉选择列表中。

这是我的问题,这一栏是给客户的 Material list 。有些客户拥有超过 1 种不同类型的 Material ,而另一些客户则只有一种。

因此我的选择列表可以如下所示:苹果/n橙子;苹果;香蕉/n香蕉;桃子/n橙色/n

我试图想出一些办法,当我从 mysql 数据库中提取数据时,我的 php 会分离 Material 并仅提供唯一的项目。

这是我创建选项列表的代码:

<p><select size="1" name="material" ID="material" onChange="showfield(value);">
<option value=''>&lt;None&gt;</option>;
<?php
while ($row = mysql_fetch_array($query))
{
$rowmod = strtr($row['material']," ","_");
echo "<option value='$rowmod'>$row[material]</option>";
}
?>

这是我的 mysql 选择: $query="按 Material 顺序从表 A 中选择不同的 Material ";

更新:

我认为我的 Mysql 是正确的,我想我使用了 php strtr 并且能够删除 ;并添加行,但现在我不知道如何让它循环并创建我的

这是新代码: $行[产品]";
} ?>我的 $row 的一些输出将只有一个产品,有些将有 2 个或更多,我想知道是否必须在 $rowmod 之后放置另一个 while 循环?

我有一种感觉,我很接近,但希望得到一些指导。

最佳答案

首先,你应该创建一个 material表,使用 auto_increment id 进行索引,并在您所谓的 TABLE-A 中使用该 ID在专栏 material_id 。就像这样,您将在一个专用表中拥有一份独特 Material 的列表,您甚至可以在其中添加一些列来显示 Material 的详细信息等。

那么我不确定您的需求/用例,但看起来您需要 customer_material表将客户与其 Material 链接起来,以便您知道哪个客户使用哪种 Material 。它将有一个 id自动递增,因为它应该始终适用于任何表以获得更好的实践,a customer_id和一个 material_id ,在最后两列 ( customer_id + material_id ) 上有一个唯一索引,以确保您将一种 Material 仅链接到一个客户一次,而不是为同一客户将每种 Material 链接多次。

然后,当您需要列出给定客户的 Material 时,只需使用以下查询:

select m.id, m.name
from customer_material cm
join material m on cm.material_id = m.id
where cm.customer_id = YOUR_CUSTOMER_ID

如果您需要唯一列出所有 Material ,则需要以下查询:

select m.id, m.name
from material m
order by m.name /* optional, to order by the material name */

瞧。由于我不确定您的用例,数据库的架构可能有点不同,但我认为无论如何,您问题中的主要问题是数据库的架构不佳。如果我有什么不清楚的地方,请告诉我。

关于php - 如何从 mysql select 中分离结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25880342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com