【问题标题】:PHP results not getting MySQL databasePHP结果没有得到MySQL数据库
【发布时间】:2019-10-02 01:28:49
【问题描述】:

我不懂 PHP 和 SQL。我们只是在学期末才勉强刮掉它,这让我很沮丧。我试图让我的结果页面显示正确的信息,但对于我的生活,它不会抓住任何东西。我显然有问题,想知道是否可以得到一些帮助。

初始页面

(这里是基本网页的正常顶部)

    <form id="ClubForm" action="ClubMembersResults.php" method="get">

    <?php            
        require_once ('dbtest.php');
        $query= "SELECT * FROM tblMembers ORDER BY LastName, FirstName, MiddleName;";
        $r = mysqli_query($dbc, $query);
        if (mysqli_num_rows($r) > 0) {
            echo '<select id="memberid" name="memberid">';
            while ($row = mysqli_fetch_array($r)) {
                echo '<option value="'.$row['LastName'].'">'
                        .$row['LastName'].", ".$row['FirstName']." ".$row['MiddleName']. '</option>';
            }
            echo '</select>';
        } else {
            echo "<p>No Members found!</p>";
        }
    ?>
    <input type="submit" name="go" id="go" value="Go" />
    </form>
    <div id="results"></div>
</body>

结果页面当前写为:

<?php
        $memid = 0;
        $memid = (int)$_GET['memberid'];
        if ($memid > 0) {

            require_once ('dbtest.php');
            $query = "SELECT * FROM tblMembers WHERE MemID = $memid;";
            $r = mysqli_query($dbc, $query);`enter code here`
            if (mysqli_num_rows($r) > 0) {
            $row = mysqli_fetch_array($r);
            echo "<p>Member ID: ".$row['MemID']."<br>";
            echo "Member Name: ".$row['LastName'].", ".$row['FirstName']." ".$row['MiddleName']."<br>";
            echo "Member Joined: ".$row['MemDt']."<br>";
            echo "Member Status: ".$row['Status']."<br></p>";
            }else {
                echo "<p>Member not on file.</p>";
            }
            //table for inverntory
            echo "<table border='1'>";
            echo "<caption>Transaction History</caption>";
            echo "<tr>";
            echo "<th>Purchase Dt</th>";
            echo "<th>Trans Cd</th>";
            echo "<th>Trans Desc</th>";
            echo "<th>Trans Type</th>";
            echo "<th>Amount</th>";                
            echo "</tr>";
            $query2 = "SELECT p.Memid, p.PurchaseDt, p.TransCd, c.TransDesc, p.TransType, p.Amount
                       FROM tblpurchases p, tblcodes c
                       WHERE p.TransCd = c.TransCd AND p.MemId = 'member id'
                       ORDER BY p.MemId, p.PurchaseDt, p.TransCd
                       ";
            $r2 = mysqli_query($dbc, $query2);
            while ($row = mysqli_fetch_array($r2)) {
                echo "<tr>";
                echo "<td>".$row['PurchaseDt']."</td>;";
                echo "<td>".$row['TransCd']."</td>";
                echo "<td>".$row['TransDesc']."</td>";
                echo "<td>".$row['TransType']."</td>";
                echo "<td>".$row['Amount']."</td>";
                echo "</tr>";
            }
            echo "</table>";                
        } else {
            echo '<p>No Member ID from form.</p>';
        }
?>

结果页面应显示包含 TH 和 TR/TD 区域中信息的表格。这两个区域都来自一个单独的 SQL 表,tblmembers 和 tblpurchases 之间唯一相似的字段是 MemID。

【问题讨论】:

  • 你想了解SQL Injection
  • 'member id' 在这一行:WHERE p.TransCd = c.TransCd AND p.MemId = 'member id' 几乎可以肯定是$memid

标签: php mysql mysqli


【解决方案1】:

您需要在您的sql 请求中使用join 来显示会员的购买。

  SELECT m.Memid, p.PurchaseDt, p.TransCd, 

                   FROM tblpurchases p join 
  tblmembers m on p.MemId=m.MemId

这是一个连接示例

【讨论】:

  • 老实说,我们几乎没有接触过 SQL,所以我不知道您所说的 Join 是什么意思
  • 不幸的是,我认为我们不能编辑那部分代码,因为它是直接从我们的教授那里给我的
猜你喜欢
  • 2016-05-17
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
  • 2017-08-30
相关资源
最近更新 更多