0

私のクエリは次のようになります。

$sql = "
SELECT u.*, s.*
FROM bands u
inner join statuses s on u.status_id = s.id
WHERE u.status_id = 1
ORDER BY u.band_name";

bandsそして、次のようにテーブルから ID を出力したいと思います。

<?php while($row = $result->fetch_assoc()){ ?>
            <tr>
              <?php
                    echo '<td id="' . $row['id'] . '">This is the band</td>';
              ?>
            </tr>
<?php }

しかし$row['id']、何も出力していません。ある種のあいまいな列の問題が原因だと推測していますが、適切にクエリする方法がわかりません。私も試し$row['u.id']てみましたが、何も出力しなかったため、適切なエイリアスの使用ではないと思います。

4

2 に答える 2

4

id 列には競合しないエイリアスを作成する必要があります。

SELECT u.*, s.*, u.id AS uid, s.id AS sid
FROM bands u
inner join statuses s on u.status_id = s.id
WHERE u.status_id = 1
ORDER BY u.band_name

次に、それらを選択して$row['uid']$row['sid']通常どおり他の列にアクセスできます。競合するid列もまだ残っていますが、使用しないでください。

于 2012-09-19T15:55:20.977 に答える
1

同じ列名にエイリアスを追加します。元、

SELECT u.id UID,....

次に、エイリアスを使用して取得できるようになりました(例: UID

于 2012-09-19T15:53:40.027 に答える