PHP Mysql查询多个项目

时间:2016-07-13 09:32:46

标签: php mysql sql database

我有这部分代码:

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选择的,我想显示该查询的结果。

我怎样才能让它发挥作用?

2 个答案:

答案 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'] . "')