提问者:小点点

如何从两个mysql表中打印出值


在我的代码中,我从两个表中检索标记,除了要打印标记的值时,所有的工作都正常,只有一个表中的标记值被打印出来。 我的问题是,有一种方法可以从我的两个表中打印出标记值。(当我直接在mysql中运行查询时,它从两个表中打印标记值,但当我通过php运行查询时,我只能从一个表中打印标记值)

<?php
$host="localhost";
$user="root";
$password="";
$dbname="schoolreport";

$dsn="mysql:host=".$host."; dbname=".$dbname;
$pdo=new PDO($dsn,$user,$password);


$query="SELECT`mathematics`.`marks`,`science`.`marks` FROM
 `mathematics`, `science` WHERE `mathematics`.`userid`=`science`.`userid` AND
  `mathematics`.`term`='mid1' AND `science`.`term`='opener1'";
$stmt=$pdo->prepare($query);
$stmt->execute([]);

while($row=$stmt->fetch())
{
  echo $row['marks'];
  echo '<br>';
}

共1个答案

匿名用户

向字段添加别名并使用它们:

$query = "SELECT
        `mathematics`.`marks` as math_marks,`science`.`marks` as science_marks
    FROM
        `mathematics`, `science` 
    WHERE 
        `mathematics`.`userid`=`science`.`userid` 
        AND
        `mathematics`.`term`='mid1' 
        AND 
        `science`.`term`='opener1'";


// Later:
while($row=$stmt->fetch())
{
  echo $row['math_marks'] . ' - ' . $row['science_marks'];
  echo '<br>';
}