Php 通过另一个表的ID从表中获取值

Php 通过另一个表的ID从表中获取值,php,sql,Php,Sql,所以基本上我有一张桌子:“任务”: 和“moradas”表: 我想通过任务表中的task.Address从moradas表中获取地址和邮政编码。现在我只在trip表中显示地址的整数 <td><?php echo $fetch['address']?></td> 如何从带有该int的地址表中获取值并在该回显中显示它们?您可以使用内部联接来联接两个表并从中获取数据 internaljoin在此上下文中使用,假设数据库Trip中的每个地址id对应于数据库表中的实际

所以基本上我有一张桌子:“任务”:

和“moradas”表:

我想通过任务表中的
task.Address
moradas
表中获取地址和邮政编码。现在我只在trip表中显示地址的整数

<td><?php echo $fetch['address']?></td>

如何从带有该int的地址表中获取值并在该回显中显示它们?

您可以使用
内部联接来联接两个表并从中获取数据

internaljoin
在此上下文中使用,假设数据库
Trip
中的每个地址id对应于数据库表中的实际地址:
address

SELECT T.Trip, A.Address, A.Postal_Code FROM Trip T
INNER JOIN address A ON T.Address = A.Address_ID
注意:

指定的字段名包含空格

我添加了下划线而不是空格

请在这里输入正确的字段名

编辑:

根据更新的问题更新的查询:

SELECT T.id, A.Morada, A.CodPostal FROM task T
INNER JOIN moradas A ON T.morada = A.ID

您可以使用
internaljoin
连接两个表并从中获取数据

internaljoin
在此上下文中使用,假设数据库
Trip
中的每个地址id对应于数据库表中的实际地址:
address

SELECT T.Trip, A.Address, A.Postal_Code FROM Trip T
INNER JOIN address A ON T.Address = A.Address_ID
注意:

指定的字段名包含空格

我添加了下划线而不是空格

请在这里输入正确的字段名

编辑:

根据更新的问题更新的查询:

SELECT T.id, A.Morada, A.CodPostal FROM task T
INNER JOIN moradas A ON T.morada = A.ID

根据您的表和列进行更新。 如果希望
task.id
moradas.id
值匹配的
address
postal
代码,则应联接两个表,并从
moradas
表中获取
address
postal code
试试这个:-

$sql = "SELECT
  task.id,
  CONCAT(
    moradas.`Morada`,
    ' ',
    moradas.`CodPostal`
  ) AS address
FROM
  task
  LEFT JOIN moradas
    ON (task.id = moradas.id)
WHERE task.`status` != 'Done'
ORDER BY task.id ASC";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "Address : " . $row["address"]."<br>";
    }
} else {
    echo "0 results returned";
}
$conn->close();
$sql=“选择
task.id,
海螺(
莫拉达斯,`Morada`,
' ',
莫拉达斯`
)作为地址
从…起
任务
左连接莫拉达斯
打开(task.id=moradas.id)
WHERE任务。`status`!='Done'
按任务排序。id ASC”;
$result=$conn->query($sql);
如果($result->num_rows>0){
//每行的输出数据
而($row=$result->fetch_assoc()){
回显“地址:.”行[“地址”]。“
”; } }否则{ 回显“返回0个结果”; } $conn->close();
我假设
status
列在
task
表中


此查询将把您的
地址
邮政
代码显示为一列
地址
。如果您想将它们放入saperate列中,可以跳过concat并分别选择
Morada
CodPostal

根据您的表和列进行更新。 如果希望
task.id
moradas.id
值匹配的
address
postal
代码,则应联接两个表,并从
moradas
表中获取
address
postal code
试试这个:-

$sql = "SELECT
  task.id,
  CONCAT(
    moradas.`Morada`,
    ' ',
    moradas.`CodPostal`
  ) AS address
FROM
  task
  LEFT JOIN moradas
    ON (task.id = moradas.id)
WHERE task.`status` != 'Done'
ORDER BY task.id ASC";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "Address : " . $row["address"]."<br>";
    }
} else {
    echo "0 results returned";
}
$conn->close();
$sql=“选择
task.id,
海螺(
莫拉达斯,`Morada`,
' ',
莫拉达斯`
)作为地址
从…起
任务
左连接莫拉达斯
打开(task.id=moradas.id)
WHERE任务。`status`!='Done'
按任务排序。id ASC”;
$result=$conn->query($sql);
如果($result->num_rows>0){
//每行的输出数据
而($row=$result->fetch_assoc()){
回显“地址:.”行[“地址”]。“
”; } }否则{ 回显“返回0个结果”; } $conn->close();
我假设
status
列在
task
表中


此查询将把您的
地址
邮政
代码显示为一列
地址
。如果您想将它们放入saperate列中,可以跳过concat并分别选择
Morada
CodPostal

始终遵循此方案,因为我将向您展示有关表名的信息 如果您有MySQL之类的大数据名称。例如,假设您在另一个表中有与另一个跟踪服务相关的地址

$ret = mysql_query("select t2.id, t2.name, t2.phone, t1.address From t2 Left join t1 on t2.id = t1.id where t2.id = $id ")
// $id = is variable you get from php request like $_GET and id table should have index in MySQL then do the following 
echo'<table>'
While ($row = mysql_fetch_assoc($ret) { 
echo"<td>" .$row["addresse"]."<td>";
// repeat this for all retrieved data 
}
echo '</table>'
$ret=mysql\u查询(“从t2左侧选择t2.id、t2.name、t2.phone、t1.address在t2.id=t1.id上连接t1,其中t2.id=$id”)
//$id=是从php请求中获得的变量,比如$\u get,id表应该在MySQL中有索引,然后执行以下操作
回声“
而($row=mysql\u fetch\u assoc($ret){
回显“$行[“地址”]”;
//对所有检索到的数据重复此操作
}
回声“
现在,您将拥有php输出中的表以及查询中的所有数据

  • 若查询返回一条记录,那个么表将有一个结果
  • 若查询有10000条记录作为结果,那个么表将有10000条记录

您可以在查询中设置每个请求检索100个结果的限制

始终遵循此方案,因为我将向您展示有关表名的信息 如果您有MySQL中的大数据,比如name.Postal code Id,假设您在另一个表中有与另一个跟踪服务相关的地址

$ret = mysql_query("select t2.id, t2.name, t2.phone, t1.address From t2 Left join t1 on t2.id = t1.id where t2.id = $id ")
// $id = is variable you get from php request like $_GET and id table should have index in MySQL then do the following 
echo'<table>'
While ($row = mysql_fetch_assoc($ret) { 
echo"<td>" .$row["addresse"]."<td>";
// repeat this for all retrieved data 
}
echo '</table>'
$ret=mysql\u查询(“从t2左侧选择t2.id、t2.name、t2.phone、t1.address在t2.id=t1.id上连接t1,其中t2.id=$id”)
//$id=是从php请求中获得的变量,比如$\u get,id表应该在MySQL中有索引,然后执行以下操作
回声“
而($row=mysql\u fetch\u assoc($ret){
回显“$行[“地址”]”;
//对所有检索到的数据重复此操作
}
回声“
现在,您将拥有php输出中的表以及查询中的所有数据

  • 若查询返回一条记录,那个么表将有一个结果
  • 若查询有10000条记录作为结果,那个么表将有10000条记录

您可以在查询中限制每个请求检索100个结果

您应该使用JOIN,请提供用于查询数据库的代码。您应该使用JOIN,请提供用于查询数据库的代码。请参阅编辑。忘记提及我的查询并更改了表和列的名称。非常感谢。当您t.***和A.***,要我替换这些wi吗