在一个字段内的一个字段中列出的MySQL用户名查询另一个表并返回用户结果

时间:2018-06-11 08:55:32

标签: php mysql

所以我是PHP的新手,我最近在开发一个网站。我的问题是这个。我在一个表中的字段中列出了所有用户。

这是以下字段之一的列表:admin,user1,user2,user3。

现在我需要做的是从那个ONE字段中取出用户,我猜测将它们放入一个数组然后在另一个名为users的表中搜索每个用户,然后列出用户信息,例如他们的评级和生物。

提前感谢您的帮助。

我将这张图片重新发布,以帮助您了解我想要实现的目标。

我希望从该单元格中列出此表中的用户 jobs Table

并在此表中找到它们然后列出它们 users table

嘿,我已经按照以下方式编辑了代码,我收到了错误。

$jobID = 1;
$jq = $con-> prepare('SELECT applied_names FROM jobs WHERE jobID=1 LIMIT 1');
$jq-> execute();
$jq-> bind_result($usernames);
$jq-> fetch();
$jq-> close();

$stm = $con->prepare("SELECT username FROM users WHERE username IN (?)");
$stm->execute(array($usernames));
$result = $stm->get_result()->fetch_assoc();
$stm->close();

错误和警告说:警告:mysqli_stmt :: execute()需要0个参数,第14行给出1

和致命错误:在第15行的布尔值上调用成员函数fetch_assoc()

2 个答案:

答案 0 :(得分:1)

您可以使用子查询和关键字IN

SELECT * FROM meta_table WHERE userID IN (SELECT id FROM users)

如果您发布表&列名,我将能够为您提供更精确的查询。

修改 在看到带有图像的编辑后的帖子后,这种方式是不可能的。在使用PHP中的用户名字段后,您仍然可以使用IN

$usernames = $row['applied_names'];
$stm = $pdo->prepare("SELECT * FROM users WHERE username IN (?)");
$stm->execute(array($usernames));

对于mysqli:

$usernames = $row['applied_names'];
$stm = $con->prepare("SELECT * FROM users WHERE username IN (?)");
$stm->bind_param('s', $usernames);
$stm->execute();

在我看来,您应该有一个users_jobs表格,其中包含id userID列& jobID然后您可以使用以下查询:

SELECT username,email,jobName,jobStatus FROM users_jobs 
JOIN users ON users.id = users_jobs.userID
JOIN jobs ON jobs.id = users_jobs.jobID

这将生成一行,其中包含您在SELECT

中指定的所有列

答案 1 :(得分:0)

试试这个:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT name, rating, bio  FROM Users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "name: " . $row["name"]. " - rating: " . $row["rating"]. "bio " . $row["bio"]. "....<br>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>