gpt4 book ai didi

php - 输入数据后创建的自定义字段

转载 作者:行者123 更新时间:2023-11-29 02:48:40 25 4
gpt4 key购买 nike

我在将数据添加到数据库后创建自定义字段时遇到问题。我一直在看这个,我的大脑已经关闭了。我会尽力解释。

我有 2 个表,custom_fields 和 custom_fields_values。我还通过表格列对这些字段进行排序。当我从数据库中拉出它们时,我必须加入表以使结果以与字段相同的顺序显示。如果我不这样做,那么数据就会混淆。

$customfield = $pdo->prepare("SELECT * FROM custom_fields ORDER BY fieldorder ASC");
$customfield->execute();
$customfield = $customfield->fetchAll(PDO::FETCH_ASSOC);

$customfieldvals = $pdo->prepare("SELECT vals.* FROM custom_fields_values vals JOIN custom_fields fields ON fields.id = vals.fieldid WHERE vals.related_system=:relsystem ORDER BY fields.fieldorder ASC");
$customfieldvals->bindParam(':relsystem', $get_system['id'], PDO::PARAM_STR);
$customfieldvals->execute();
$customfieldvals = $customfieldvals->fetchAll(PDO::FETCH_ASSOC);

然后我有一个可以正确显示数据的 foreach 循环。问题是,当我添加一个没有值的新自定义字段时,因为它是在 custom_fields 表中创建的,而不是在 custom_fields_values 表中创建的,所以它在 ON fields.id = vals.fieldid 处不匹配。如果我在没有任何值(value)的情况下对这些字段进行求值,它将采用另一个字段的值。本质上,因为它在字段的 id 级别和值的 fieldid 级别不匹配,所以一切都变得一团糟。

如果没有创建值行,我如何才能到达哪里,无论如何它只会显示 NULL 而不是获取另一个字段的值?

编辑

我的处理方式是否正确,或者是否有更好的方法让自定义字段值遵循自定义字段而不是 JOIN 方法?

最佳答案

您必须在查询中使用 Left Join。如果在 custom_fields_values 表中找不到自定义字段的值,Left Join 将返回 null。

所以查询看起来像这样。

$customfieldvals = $pdo->prepare("SELECT vals.* FROM custom_fields_values vals LEFT JOIN custom_fields fields ON fields.id = vals.fieldid WHERE vals.related_system=:relsystem ORDER BY fields.fieldorder ASC");

关于php - 输入数据后创建的自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38712972/

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