【发布时间】:2014-05-09 20:23:26
【问题描述】:
我的数据库中有 2 个关系表。
我一直在努力了解下面的情况。
我有联系表,我有一个订单表。
我想尝试显示一次联系信息(姓名、电子邮件等),然后显示订单信息。
我知道我可以这样做:
<?php
$query = $db->prepare("SELECT *
FROM contact
WHERE type = ?
ORDER BY date")
or die(mysqli_error($db));
$type = "order";
$query->bind_param('s', $type);
$query->execute();
$query->store_result();
$query->bind_result($id, $name, $email, $date);
while ($query->fetch()) {
$date = strtotime($date);
$date = date("F jS Y", $date);
?>
From: <?php echo $name ?>
<input type="Checkbox" name="checkbox[]" id="checkbox[]"value="<? echo $contactid; ?>">
<p>
<?php
echo $comments
?>
</p>
<?php
echo $date ;
?>
<?php
$order = $db->prepare("SELECT title, number
FROM preorder
WHERE id = ? ")
or die(mysqli_error($db));
$order->bind_param('s', $id);
$order->execute();
$order->store_result();
$order->bind_result( $title, $number );
while ($order->fetch()) {
echo $title, $number ;
}
}
?>
这很好用,但感觉不对,而且更简单的方法是不做 2 次选择。然后我想在该循环中显示订单,因此每个订单不会重复名称、电子邮件等。
【问题讨论】:
-
您的意思是按保存顺序还是用户定义的顺序显示它们?
-
这是我目前正在做的工作,我已经编辑了上面的内容,但感觉使用连接表更好的方法,但是当我加入时,它会在每次那里列出名称是一个命令。所以它会显示例如。鲍勃订购 3 颗螺丝,鲍勃订购 4 把锤子,鲍勃订购 5 把锯,我想做的是改为订购鲍勃 3 颗螺丝,4 把锤子,5 把锯。无法发布代码
-
为什么不将 display 或 display_order 列添加到联系人表并按该列排序?如果您不使用显示 id 排序 des 以便它们从头到尾出现?困惑,这与您在示例中的顺序相同。
-
发布代码时遇到问题,但现在已更新
-
给我看看你用的桌子
标签: php loops mysqli while-loop