<?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は改善されています。
EDIT:あなたは(など、ルーピングのために)後で、すべての行を使用する場合、これは良い選択肢である:
<?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.
}
}
コード*ループは基本的には何も、およびコードあなたもしません*内各行で実行したい*外側*ループです。何を言いたいのですか? – Jon
私はwhileループの後に終了するようにwhileループを入れようとしました。しかし、それは動作しません – user127886