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