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



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

AND WHERE 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>';
}
?>

尝试这个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,只能使用AND

最新更新