我有这部分代码:
resultrights = $conn->query("SELECT userid, page FROM pagerights WHERE userid = '" . $_SESSION['uid'] . "'");
while ($rowrightss = $resultrights->fetch_assoc()) {
echo $rowrightss['page']."<br>";
}
这很有效。它只是回应数字 1 2 3 五 非常好。
现在,我想根据这些数字选择几个按钮。它们是按钮编号,在DB中另外声明。
稍后我有了这个:
<?php
$i = 0;
$result = $conn->query("select pagenumber, pagetitle from pages WHERE pagenumber = '" . $_SESSION['assignedpage'] . "'");
echo "<html>";
echo "<body>";
echo '<table cellpadding="20">';
while ($row = $result->fetch_assoc()) {
unset($id, $name);
$id = $row['pagenumber'];
$name = $row['pagetitle'];
$i++;
//if this is first value in row, create new row
if ($i % 3 == 1) {
echo "<tr>";
}
echo '<td><button1 id="groteknop" class="btn-state state-start" onclick="Switchf();"><i id="knopje" class="icon icon-start"></i></button1></td>';
//if this is third value in row, end row
if ($i % 3 == 0) {
echo "</tr>";
}
}
//if the counter is not divisible by 3, we have an open row
$spacercells = 3 - ($i % 3);
if ($spacercells < 3) {
for ($j=1; $j<=$spacercells; $j++) {
echo "<td></td>";
}
echo "</tr>";
}
echo "</select>";
$conn->close();
?>
我想要实现的是,而不是pagenumber =会话值分配页面,我想从之前的查询结果中选择所有按钮。 Endresult:我想显示按钮1,2,3,5。这个数字来自第一个查询。因此,当这些数字发生变化时,由于它们是基于用户ID选择的,我想显示该查询的结果。
我怎样才能让它发挥作用?
答案 0 :(得分:0)
对我来说,这似乎是inner join的任务,它会将pagerights
表与pages
表连接起来。如果我正确理解了您的问题,那么pagerights.page
应与page.pagenumber
匹配。
SELECT page.pagenumber, page.pagetitle FROM pagerights
INNER JOIN page ON pagerights.page=page.pagenumber
WHERE userid=...
在查询中的...
替换会话中的用户ID。这样你只需要运行一个查询。
答案 1 :(得分:0)
尝试使用此查询
select pagenumber, pagetitle from pages WHERE pagenumber in
(SELECT page FROM pagerights WHERE userid = '" . $_SESSION['uid'] . "')