Php 使用MySQL PDO显示每个费用类型下的费用

Php 使用MySQL PDO显示每个费用类型下的费用,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我有两个表,我正在创建一个列表,显示每种费用类型下的所有费用。我已经能够让它工作,除非我添加 其中expenses.pid=“.$pid 这是一个语法错误,我想不出办法 最重要的是,我需要限制费用类型,只显示那些有一些数据的费用类型 EXPENSETYPE typeid pid exptype EXPENSES expid pid expdate checktype

我有两个表,我正在创建一个列表,显示每种费用类型下的所有费用。我已经能够让它工作,除非我添加

其中expenses.pid=“.$pid

这是一个语法错误,我想不出办法

最重要的是,我需要限制费用类型,只显示那些有一些数据的费用类型

EXPENSETYPE
typeid           
pid          
exptype 

EXPENSES
expid            
pid              
expdate          
checktype            
payee            
typeid       
details          
amount 






<?php
$pid = 6;

$sql = "SELECT expensetype.typeid, expensetype.exptype
        FROM `expensetype` WHERE expensetype.pid = $pid
        ORDER BY expensetype.typeid DESC";
$expensetype = $db->query($sql);
foreach($expensetype as $type) {

    echo '<li>' . $type['exptype'] . '<ul>';

    $sql2 = "SELECT expenses.expid, expenses.expdate, expenses.checktype, expenses.payee, expenses.details, expenses.amount
            FROM `expenses` WHERE `expenses`.typeid = " . $type['typeid'] . "AND WHERE expenses.pid = " . $pid ; 
            $expenses = $db->query($sql2);
            foreach($expenses as $exp) {
        echo '<li>' . $exp['expdate'] . '   ' . $exp['checktype'] . '   ' . $exp['expdate'] . '   ' . $exp['payee'] . '   ' . $exp['details'] .'   ' . $exp['amount'] .'</li>';
    }
    echo '</ul></li>';
}
?>
EXPENSETYPE
类型ID
pid
exptype
费用
expid
pid
出口日期
支票类型
受款人
类型ID
细节
数量

尝试使用此SQL语句,而不是使用其中两个:

SELECT `expensetype`.`typeid`, `expensetype.exptype`, `expenses`.`expid`,
    `expenses`.`expdate`, `expenses`.`checktype`, `expenses`.`payee`,
    `expenses`.`details`, `expenses`.`amount`
FROM `expensetype` INNER JOIN `expenses` ON
    `expensetype`.`typeid` = `expense`.`typeid`
WHERE (...)

此外,您不能在SQL语句中使用两个
WHERE
,只能使用

您必须更加努力地处理您的问题。使其可读(意味着不需要滚动)并发布准确的错误消息。感谢您在我的脚本中找到如何使用它的方法后,这一切都很好