<?php
$conn = odbc_connect("employee","","") or die (odbc_errormsg());
$sql1 = "SELECT * FROM employee WHERE Status='Pending'";
$rs1 = odbc_exec($conn,$sql1);
while(odbc_fetch_row($rs1)) {
$leaveID=odbc_result($rs1,"Leave ID");
$empID=odbc_result($rs1,"empID");
$empType=odbc_result($rs1,"TypeOfLeave");
$status = odbc_result($rs1,"Status"); // added this.
// moved to the while loop.
if( $empType === 'Medical Leave' && $status === 'Approved' ) {
// your code.
}
}
此外,PHP 的 ODBC API 看起来很吓人,所有的 odbc_fetch_row、odbc_result 都在进行。也许为此使用 PDO 是个好主意?这样,代码将如下所示:
<?php
$dbh = new Pdo( 'odbc:MSSQLServer', 'username', 'password' );
$results = $dbh->query( 'SELECT * FROM employee', PDO::FETCH_ASSOC );
foreach( $results as $result ) {
if( $result['TypeOfLeave'] === 'Medical Leave' && $result['Status'] === 'Approved' ) {
// your code here.
}
}
我没有尝试将 PDO 与 ODBC 一起使用,所以我不熟悉错误,但据我所知;除了您正在使用的 API 之外,任何其他 API 都是一种改进。
编辑:如果您想稍后使用所有行(用于循环等),这是一个不错的选择:
<?php
$conn = odbc_connect("employee","","") or die (odbc_errormsg());
$sql1 = "SELECT * FROM employee WHERE Status='Pending'";
$rs1 = odbc_exec($conn,$sql1);
$rows = array( );
while(odbc_fetch_row($rs1)) {
$rows[] = array(
'leave ID' => odbc_result( $rs1, 'Leave ID' ),
'empID' => odbc_result( $rs1, 'empID' ),
'empType' => odbc_result( $rs1, 'empType' ),
'status' => odbc_result( $rs1, 'Status' ),
);
}
// $rows now contains *all* rows, which you can loop over later.
// some more code here.
foreach( $rows as $row ) {
if( $row['status'] === 'Approved' && 'empType' === 'Medical Leave' ) {
// your code here.
}
}