Php 基于第一个sql查询的第二个sql查询
我想获取sql查询“user\u id”的结果,并在中使用它进行搜索 在另一个表中的另一个查询中 例如: 主查询从跟踪器中选择* 第二个查询:从第一个查询中获取id,将其替换为在另一个表“user table”中找到的用户的名称。 比如: 从vtiger_用户中选择用户名,其中id=$row[“id”] 下面是我的代码Php 基于第一个sql查询的第二个sql查询,php,mysql,Php,Mysql,我想获取sql查询“user\u id”的结果,并在中使用它进行搜索 在另一个表中的另一个查询中 例如: 主查询从跟踪器中选择* 第二个查询:从第一个查询中获取id,将其替换为在另一个表“user table”中找到的用户的名称。 比如: 从vtiger_用户中选择用户名,其中id=$row[“id”] 下面是我的代码 <?php $servername = "localhost"; $username = "x"; $password = "xyz";
<?php
$servername = "localhost";
$username = "x";
$password = "xyz";
$dbname = "dbname";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, module, whodid,changedon FROM vtiger_modtracker_basic";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table style='float: left'><tr><th>ID</th><th>Module</th><th>Who Did</th><th>Time Of Action</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
$user_id=$row["id"];
$username_sql="SELECT user_name FROM vtiger_users where id=".$user_id." ";
$result_username=$conn->query($username_sql);
$row2 = $result_username->fetch_assoc();
echo "<tr><td>".$row["id"]."</td><td>".$row["module"]."</td><td>".$row2["user_name"]."</td><td>".$row["changedon"]."</td></tr>";
//echo "<p>".$row2["user_name"]."</p>"
//echo $row2["user_name"];
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
我想在设置$user\u id=$row['whodid']
时应该使用whodid
列,或者可以使用JOIN query。它将从vtiger\u用户
表中返回您的user\u name
SELECT
a.id,
a.module,
a.whodid,
a.changedon
b.user_name
FROM vtiger_modtracker_basic a
JOIN vtiger_users b ON a.whodid = b.id
谢谢大家,这个问题帮了我的忙
SELECT vtiger_modtracker_basic.id, vtiger_modtracker_basic.module, vtiger_modtracker_basic.whodid ,vtiger_modtracker_basic.changedon ,vtiger_users.user_name FROM vtiger_modtracker_basic ,vtiger_users where vtiger_modtracker_basic.whodid = vtiger_users.id
你能补充一下你面临的错误是什么吗?设置后,您似乎没有使用$result\u用户名。此外,您还可以在第一个查询中添加一个联接以获取用户名。我编辑了代码,感谢您的回复。我只将名称替换为“谁做的…”冒号…但名称不在所有表中。这与我在下面回答的答案完全相同:)