执行查询,使用值作为变量并运行另一个查询然后打印它?

时间:2013-01-24 13:07:11

标签: php mysql pdo while-loop

我有两个表,userscoach_to_trainee。用户可以拥有多个教练,数据存储在coach_to_traineecoach_idtrainee_id中。

我正在使用coach_to_trainee表格为用户打印数据,因此他/她可以简单地看看谁是他/她的教练。

<?php
              $user = $_SESSION['login']['id'];
              $q = "SELECT * FROM coach_to_trainee WHERE trainee_id='$user'";
              $coachid = $db->prepare($q);
              $coachid->execute();

              while($row = $coach->fetchObject()){
                $coachid = $row->coach_id;
                echo '<li><a href="?coach&id='.$coachid.'">'.INSERT_COACH_NAME.'</a></li>';
              }


              ?>

但是,这只会返回教练的ID,我还需要从表users返回该名称。

我应该如何在while()内进行另一次查询并使用$ coachid查找正确的用户?

1 个答案:

答案 0 :(得分:0)

你必须使用JOIN mysql子句,如下所示:

SELECT u.name, u.id 
FROM users u
    LEFT JOIN coach_to_trainee ctt
        ON u.id = ctt.coach_id 
WHERE ctt.trainee_id = {$user}

你应该完成这个; - )

然后在您的PHP中使用选定的值:

while($row = $coach->fetchObject()){
    echo '<li><a href="?coach&id='.$row->id.'">'.$row->name.'</a></li>';
}