0

「ページ」を動的テーブルに表示するこのクエリがありますが、すべてのページが表示されます。「ページ」を制限して、「キャンペーン ID」列が現在の「キャンペーン」の列と一致する場合にのみ表示するようにします。誰もがアイデアを持っています。

これは、データを表示するクエリです。

  $counter=1;               $userID=PageDB::getInstance()->get_user_id_by_name($_SESSION['user']);              $result=PageDB::getInstance()->get_pages_by_campaign_id($campaignID);
            $i=0;
                while ($row = mysqli_fetch_array($result)):
                 $style = "";
                    if($i%2==0)
    {
        $style = ' style="background-color: #EFEFEF"';
    }
    echo "<tr".$style.">";
                echo "<td>" . htmlentities($row['pid']) . "</td>";
                echo "<td>". htmlentities($row['id']) . "</td>";
                ?>
                <td>
                <form style="display:none;"></form>
                    <form name="editPage" action="editPage.php" method="GET">
                        <input type="hidden" name="pageID" value="<?php echo $pageID = $row['pid']; ?>" />
                        <input type="submit" name="editPage"  value="<?php echo "Page "  . $counter; ?>" style="padding-top:4px; padding-bottom:6px;background:none;border:none; cursor:pointer"/>
                    </form> 
    </td>           
                <?php
                $pageID = $row['pid'];  
                $counter++;
                $i++;

                echo "</tr>\n";
            endwhile;
            mysqli_free_result($result);              
?>   

そして、これがデータベースにクエリを実行する方法です。

public function get_pages_by_campaign_id($campaignID) {
    $campaignID = $this->real_escape_string($campaignID);
    return $this->query("SELECT pid,campaignid,id,campaign_name FROM pages,campaigns WHERE pages.campaignid = campaigns.id ORDER BY campaigns.id LIMIT 1,10");
    }

私が言ったように、正しいデータが返されていますが、次の場所のデータのみを表示したい: pages.campaignid = Campaign.id [1] または pages.campaignid = Campaign.id [r] など...

4

1 に答える 1

0

ループif-else内に追加の条件が必要です。whileこのif-elseステートメントは、現在の行が Campaign.id と等しいかどうかを比較します。

于 2012-05-18T12:23:28.287 に答える