我已在mysql表中创建了这3列,因此我可以列出每个用户的事务。
ticket_date, ticket_num, ticket_result
我还创建了一个函数来回显这些列中的值,并且它成功运行。
function.php:
$sql = "SELECT *
FROM members
WHERE user_id = '{$_SESSION['user_id']}'";
$query = $this->db_connection->query($sql);
while ($row = $query->fetch_object()) {
global $me, $me2, $date;
$me = $row->ticket_num;
$me2 = $row->ticket_result;
$date = $row->ticket_date;
}
transactions.php
<table class="table">
<thead>
<th>Date</th>
<th>Ticket ID</th>
<th>Result</th>
</thead>
<tr>
<td><?php echo $date; ?> </td>
<td><?php echo $me; ?> </td>
<td><?php echo $me2; ?> </td>
</tr>
</table>
我现在的问题是,如果用户有多个事务,我将如何分别回显特定列中的每个值。我试图将每个事务回应成一个。 我能将每个值存储为数组,以便我可以这样称呼它吗?
$row->ticket_num['0']
编辑:我想问一下如何将交易存储到各自的列中。比如存储多个适用于每个事务的$ ticket_date。我可以将信息作为数组存储到列中,以便我可以使用数组指针调用每个事务吗?
答案 0 :(得分:1)
我认为最好的办法是不使用全局变量,除非有任何理由说你的函数无法返回这些数据,即它返回其他内容。你可以在function.php中找到类似的东西:
$sql = "SELECT *
FROM members
WHERE user_id = '{$_SESSION['user_id']}'";
$query = $this->db_connection->query($sql);
$return = array();
while ($row = $query->fetch_object()) {
array_push($return, array($row->ticket_num, $row->ticket_result, $row->ticket_date ));
}
return $return
然后你可以在transactions.php中执行此操作:
<table class="table">
<thead>
<th>Date</th>
<th>Ticket ID</th>
<th>Result</th>
</thead>
<?php
$ticket = Whatever_Function();
foreach($ticket as $t){
echo"<tr> <td> ".$t[0]." </td><td>".$t[1]."</td><td>".$t[2]."</td></tr>";
}
?>
</table>
关于评论中的其他问题,应该设置这样的数据库结构:
通过执行此操作,您将它分开,以便每个表都属于一个事物或动作。然后,这些可以使用SQL Join这样彼此相关:
SELECT * FROM Transactions tr
JOIN Users u ON u.UID = tr.UID
JOIN Tickets ti ON ti.TID = tr.TID
通过查看上面的SQL代码片段,您应该能够看到它如何匹配不同表上的列。这会创建一个大的虚拟表,然后您可以搜索其中的列名,其列名前面带有给定的假名。
因此,如果您想获得购买价格超过20英镑的机票的所有人的电子邮件地址,即使您需要的表格没有直接连接,您也可以这样做:
SELECT u.email FROM Transactions tr
JOIN Users u ON u.UID = tr.UID
JOIN Tickets ti ON ti.TID = tr.TID
WHERE ti.Price > 20
答案 1 :(得分:0)
做这样的事情:
global $me, $me2, $date;
while ($row = $query->fetch_object()) {
$me[] = $row->ticket_num;
$me2[] = $row->ticket_result;
$date[] = $row->ticket_date;
}
transactions.php
<table class="table">
<thead>
<th>Date</th>
<th>Ticket ID</th>
<th>Result</th>
</thead>
<?php foreach($me as $k => $m){
echo "<tr>";
echo "<td>".$date[$k]."</td>";
echo "<td>".$m."</td>";
echo "<td>".$me2[$k]."</td>";
echo "</tr>";
?>
</table>