<?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.
}
}
ODBCでPDOを使用したことはないので、バグについてはよくわかりませんが、私が知る限りでは、使用している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.
}
}