所以我在我的數據庫中的兩個表:顯示結果從SQL內連接表的PHP頁面上
用戶:
用戶ID的用戶類型的用戶名
門票:
ticketID userID ticketMessage
我的目標是使用php從USER表中回顯用戶名,其中來自ticket的USERID =與USER表中的USERID相同。
這裏是我到目前爲止的代碼:
<?PHP
if ($result['admin'] == 1) {
$sql = "SELECT * FROM ticket ORDER BY ticketDateTime DESC";
$res = do_sql($sql);
if ($res->rowCount() == 0) {
echo "You have 0 Tickets, you haven't created any tickets!";
} else {
?>
<table class="table-container">
<thead>
<tr>
<th id="table-subject">Subject</th>
<th>Id</th>
<th>Created</th>
<th>User</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<?php
while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
?>
<tr>
<td>
<a id="ticket-subject" href="single-ticket-view.php?page=singletickview&ticketID=<?php echo $row['ticketID'];?>">
<?php
echo $row['ticketSubject'];?>
</a>
</td>
<td><?php
echo sprintf('%04d', $row['ticketID']); ?>
</td>
<td><?php
$a_date = strtotime($row['ticketDateTime']);
$formatted_date = date('d/m/Y', $a_date);
echo $formatted_date; ?>
</td>
<td>
<?php
$sql2 = "SELECT users.username FROM users INNER JOIN ticket ON users.userID = '" . $row['userID'] . "'";
$res2 = do_sql($sql2);
if ($res2->rowCount() == 1) {
echo $res2['username'];
}
?>
</td>
<td>
<?php if ($row['is_active'] == 1) {?>
<div class="status" id="open">Open</div>
<?php } else { ?>
<div class="status" id='closed'>Closed</div> <?php } ?>
</td>
</tr>
</tbody>
<?php
}}?>
</table>
我在這裏的問題是,我無法弄清楚如何呼應線60上的用戶名,我認爲它具有財產以後與我的SQL查詢。這裏是我在上面的代碼段中的第60行的SQL查詢和php代碼 - 問題100%位於本節內,也許與查詢和使用INNER JOIN的不正確方式有關。這裏又是:
<td>
<?php
$sql2 = "SELECT users.username FROM users INNER JOIN ticket ON users.userID = '" . $row['userID'] . "'";
$res2 = do_sql($sql2);
if ($res2->rowCount() == 1) {
echo $res2['username'];
}
?>
</td>
$ row ['userID'] =表格票據中的userID,在這種情況下碰巧是11。我去運行SQL查詢在PHP我的管理和運行查詢:
SELECT users.username FROM users INNER JOIN ticket ON users.userID = 11
其返回正確的結果我找的,所以我不知道爲什麼它不會對我的PHP網頁呼應。任何幫助將是驚人的,謝謝!
編輯:
我忘了展示我do_sql();功能,那就是:
function do_sql($sql_string) {
$connection = new PDO("mysql:host=localhost;dbname=secret", 'root', '');
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$row_result = $connection->query($sql_string);
} catch (PDOException $Exception) {
echo $sql_string . '</br>';
echo $Exception;
exit();
}
return $row_result;
}
非常感謝,我不知道爲什麼我沒有想到這個...在這裏與SQL初學者!再次感謝。 – Tomble