php - 多个 MySQL 查询(第一个根据用户获取 id)第二个获取数据库中具有 id 的另一个项目的信息
问题描述
我正在尝试完成以下任务:
从用户名 =... 的数据库中获取项目 ID
-> 用户可以登录到不同的项目并在数据库中进行跟踪
下一步是获取项目数据库的信息以显示给用户
-> 但是由于用户可以登录到不同的项目中,我希望他以尚未确定的顺序在彼此下方看到它们(我是
这基本上是我试图开始工作的内容,它显示了正确的内容,但不幸的是在第一个项目中停止了。我的假设是它在第一个项目 id 处停止并且不会继续
-> 我检查了代码的哪些代码有效,一旦切断信息收集查询,我就会得到所有 project_id
这基本上是我现在正在使用的代码:
$sql = "SELECT project_id FROM project_members_db WHERE user_ID = '$user_id'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while ($row = $result->fetch_assoc()) {
//Album Informationen ziehen herausfinden
$sql = "SELECT project_name, sticker_count, manufacturer, sport, creation_datetime FROM project_db WHERE project_id = '$row[project_id]'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while ($row = $result->fetch_assoc()) {
//OUTPUT
echo "
$row['project_name'];
$row['count'];
$row['sport'];
$row['manufacturer'];
$row['creation_datetime'];
";
}
}
}
}
解决方案
看起来您应该能够通过单个查询来执行此操作 - 当您接受用户提供的输入时,您应该考虑使用prepared statement
$sql='select `project_name`, `sticker_count`, `manufacturer`, `sport`, `creation_datetime`
from `project_db` where `project_id` = ( select `project_id` from `project_members` where `user_id` = ? )';
$stmt=$conn->prepare( $sql );
$stmt->bind_param('s',$user_id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($project_name,$sticker_count,$manufacturer,$sport,$creation_datetime);
while( $stmt->fetch() ){
echo $project_name,$sticker_count,$manufacturer,$sport,$creation_datetime;
}
推荐阅读
- android - 如何获取持有者数据并正确通过意图?
- mysql - 根本原因: java.lang.ClassNotFoundException : com.mysql.jdbc.Driver 使用 --verbose 获取详细的堆栈跟踪。
- python - 如何修复在 Python 3 中写入文件时导致“cp950”错误的商标符号?
- angular - 如何在角度 4 中动态读取一些属性参数
- javascript - jQuery - 选择一个只有超过一定数量的孩子的容器
- kotlin - grpc with Vertx Logs Explaned Needed
- python - Python 文本文件统计
- azure - 为 Azure 表存储 REST API 使用提琴手/邮递员
- ios - 我需要帮助使用 Swift 4 格式化文本字段中的小数位
- string - 组装 8086 TASM - 0Ah 21h 记住最后一个条目