gpt4 book ai didi

php - 在 mySQL 中搜索数据和交叉引用

转载 作者:行者123 更新时间:2023-11-29 01:51:55 27 4
gpt4 key购买 nike

所以我不确定如何解释我正在寻找的东西,但我会尽我所能解释。

我有一个带有以下列名的 mySQL 数据库 |Name1|Name2|Name3这些是列名。在每个列下都有一个名称|Mark Abc|Jim Abc|Kim Abc。好的,这是第 1 部分,接下来我有另一个表,其中包含以下列 |Name|Weeknum| 因此,当我更新此表时,它会有一些数据,例如 |Mark Abc|Week-03|

所以我的问题是如何创建一个 PHP 脚本,它将从 Name1 下获取值并在 name 和 weeknum 下搜索该名称并返回这样的值-Week-01 Week-02 Completed第 4 周

所以基本上会列出所有 52 周,如果找到匹配 Name|Weeknum 的,那么它会列出 Completed,提前致谢

最佳答案

我更喜欢你是否可以添加一个名为 id 的字段并将其作为第一个表的主要字段,并在第二个表中创建另一个具有相同名称 ( ID ) 的字段并且它将是外键,那么你就可以轻松地做你想做的事情要求,因为每个名字都有自己的 id 。

    Table 1

ID NAME
1 Mark Abc
2 Jim Abc
3 Kim Abc

Table 2

ID Weeknum
1 Week-03
1 complete
3 Week-09

现在假设我想执行这个查询:

" SELECT Weeknum FROM TABLE 2 WHERE id = 1; "

这将为我们提供以下输出:

Weeknum
Week-03
complete

发生的事情是 Mark Abc 的 id = 1,我们搜索了他的 id Table 2。

如果你做了我建议的这个查询就可以完成工作

我假设您已经链接了您的数据库,我只会给您查询:我将使用 PDO输入查询:

$FetchInfo = $conn>prepare("SELECT Weeknum FROM TABLE 2 WHERE id = 1");
$FetchInfo->execute();

While($FI = $FetchInfo->FETCH(PDO::FETCH_ASSOC))
{
echo $FI['weeknum']."\n";
}

现在,如果您不想使用我建议的方法,您可以轻松地执行此操作:

    $FetchInfo = $conn>prepare("SELECT Weeknum FROM TABLE 2 WHERE NAME = Mark Abc ");
$FetchInfo->execute();

While($FI = $FetchInfo->FETCH(PDO::FETCH_ASSOC))
{
echo $FI['weeknum']."\n";
}

拖车注意事项:

  • 我使用 PDO 来输入和执行查询,如果您不知道它是什么,请告诉我,这样我可以编辑答案并将我的 PDO 代码替换为 Mysqli 代码。
  • 只是为了将来当你想输入查询时不要这样做:

$FetchInfo = $conn>prepare("SELECT Weeknum FROM TABLE 2 WHERE id = 1");
$FetchInfo->execute();

它太危险了,它可能会被 SQL INJECTION 打开。那是什么以及如何解决?

这是什么:

SQL injection is a code injection technique, used to attack data-driven applications, in which nefarious SQL statements are inserted into an entry field for execution (e.g. to dump the database contents to the attacker).

如何在这个答案的示例中修复它是通过这样做:

$FetchInfo = $conn>prepare("SELECT Weeknum FROM TABLE 2 WHERE id = ?");
$FetchInfo->execute(array(1));

也读这个:Prepared statements and stored procedures

希望这对你有帮助。

关于php - 在 mySQL 中搜索数据和交叉引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39292384/

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