我是编程和stackoverflow的新手,我在其他任何地方都找不到解决方案,所以我在这里。
这是我想要完成的事情:
[从用户名= ...的数据库中获取项目ID
->用户可以登录到不同的项目中,并且正在数据库中对其进行跟踪
下一步是获取项目数据库的信息以显示给用户
->但是由于用户可以登录到不同的项目中,所以我希望他以不特定的顺序在彼此下面看到它们(i a
这基本上是我试图开始工作的内容,它显示了正确的内容,但不幸的是停在了第一个项目上。我的假设是,它会在第一个项目ID处停止并且不会继续]
->我检查了一下代码中的哪些代码有效,并在切断信息收集查询后立即获得了所有project_id's
基本上是我现在正在使用的代码:
$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'];
";
}
}
}
}
您用第二个结果覆盖了第一个结果。更改为:
$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]'";
$result2 = $conn->query($sql);
if ($result2->num_rows > 0) {
// output data of each row
while($row2 = $result2->fetch_assoc()) {
//OUTPUT
echo $row2['project_name'] . ' '
$row2['count'] . ' '
$row2['sport'] . ' '
$row2['manufacturer'] . ' '
$row2['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;
}