首页 > 解决方案 > 无法从 mysqli 查询中回显数据

问题描述

我得到了这个查询:

SELECT * 
FROM track 
LEFT JOIN likes ON likes.trackid = track.trackid AND likes.userid='$userid' 
WHERE likes.userid is null ORDER BY rand() LIMIT 1;

现在我无法<?php echo $row['trackid']; ?>从“track”表中回显(但是“likes”表中有一行具有相同名称,我认为这可能是一个问题,但我无法弄清楚)。

我希望你们都能解决我遇到的问题,否则我会尽力解释得更好!

标签: phpsqlmysqli

解决方案


尝试使用显式列名和别名来获取不同 colname 的结果

SELECT likes.trackid like_trackid, track.trackid track_trackid
 FROM track 
LEFT JOIN likes ON likes.trackid = track.trackid AND likes.userid='$userid' 
WHERE likes.userid is null 
ORDER BY rand() LIMIT 1;


<?php echo $row['like_trackid']; ?>

<?php echo $row['track_trackid']; ?>

或者您可以尝试对一个表使用 select *,对第二个数学列使用显式列

SELECT likes.*, track.trackid track_trackid
 FROM track 
LEFT JOIN likes ON likes.trackid = track.trackid AND likes.userid='$userid' 
WHERE likes.userid is null 
ORDER BY rand() LIMIT 1;

<?php echo $row['trackid']; ?>  // this came from  the select *

<?php echo $row['track_trackid']; ?>

推荐阅读