Php 在mySQL中搜索数据和交叉引用
所以我不知道如何解释我在寻找什么,但我会尽我所能解释 我有一个mySQL数据库,它有以下列名Php 在mySQL中搜索数据和交叉引用,php,mysql,Php,Mysql,所以我不知道如何解释我在寻找什么,但我会尽我所能解释 我有一个mySQL数据库,它有以下列名| Name1 | Name2 | Name3,这些是列名。每列下都有一个名字|马克·Abc |吉姆·Abc |金·Abc。好的,这是第1部分,接下来我有另一个表,它有以下列| Name | Weeknum |,所以当我更新这个表时,它会有一些数据,比如| Mark Abc | Week-03 | 因此,我的问题是如何创建一个PHP脚本,该脚本将从Name1下获取值,并在name和weeknum下搜索该名
| Name1 | Name2 | Name3
,这些是列名。每列下都有一个名字|马克·Abc |吉姆·Abc |金·Abc
。好的,这是第1部分,接下来我有另一个表,它有以下列| Name | Weeknum |
,所以当我更新这个表时,它会有一些数据,比如| Mark Abc | Week-03 |
因此,我的问题是如何创建一个PHP脚本,该脚本将从Name1下获取值,并在name和weeknum下搜索该名称,然后返回如下值-Week-01 Week-02 Completed Week-04
因此,基本上会列出所有52周,如果发现任何与
Name | Weeknum
匹配,则会列出已完成的
,提前感谢我从评论中收集到的信息是,您的意思是大致相同的
Update Table2
Set Weeknum='Completed'
Where Name='Mark Abc'
我希望这就是您的意思如果您可以添加一个名为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表2
如果你按照我的建议去做,这个查询就可以了
我将假设您已经链接了数据库,我将只给您一个查询:我将使用键入查询:
$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(“从表2中选择周数,其中id=1”);
$FetchInfo->execute()代码>
这是非常危险的,它可能会被打开进行SQL注入。这是什么?如何解决
是什么
SQL注入是一种代码注入技术,用于攻击
数据驱动的应用程序,其中包含恶意SQL语句
插入到输入字段以执行(例如转储数据库
内容(向攻击者提供)
在本答案中的示例中,如何解决此问题,请执行以下操作:
$FetchInfo = $conn>prepare("SELECT Weeknum FROM TABLE 2 WHERE id = ?");
$FetchInfo->execute(array(1));
也请阅读以下内容:
希望这能对你有所帮助。?从表2中选择周数,其中Name=?
-这就是你的意思吗?我想搜索所有周数并列出所有周数,因此会有第01周到第52周
以及任何与名称
匹配的周数,然后会将该周数更改为Completed感谢您提供的信息,我会尽量让我的代码适应你的,thanks@INOH是的,没问题,如果你需要帮助,请告诉我们=