所以我是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()
答案 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();
?>