0
我有2個表具有唯一的ID。我有一個表格,其中一列是日期字段。我試圖過濾今天的日期(它工作)的字段中的所有行與「今天」日期我想獲得#key的單元格信息。一旦我有了這個ID,我想用#headkey匹配它。所以$ headkey == $ key。一旦我過濾了,我想看看是否有任何字段匹配= ItemID列的交付。出於某種原因,我有一個無限循環。我玩弄了邏輯,但似乎無法讓它工作。有任何想法嗎?PHP while while循環和if語句問題從多個表中提取
$TransactionSql = "SELECT * FROM apcshead WHERE DateInvoiced > 0 ORDER BY DateInvoiced DESC";
$ItemsSql = "SELECT * FROM apcsitem";
$rs=odbc_exec($conn,$TransactionSql);
while($row = odbc_fetch_array($rs))
{
//Grabbing Transaction info
$DateInvoiced = odbc_result($rs,"DateInvoiced");
$ApcsheadKey = odbc_result($rs,"Key");
$DateInvoiced = new DateTime($DateInvoiced);
$DateInvoiced_date = $DateInvoiced->format('m-d-Y');
//$TimeStamp_time = $TimeStamp->format('h:i:s');
if ($DateInvoiced_date == $today)
{
$ItemsRs=odbc_exec($conn,$ItemsSql);
while($row = odbc_fetch_array($ItemsRs))
{
$HeadKey = odbc_result($ItemsRs,"HeadKey");
$ItemID = odbc_result($ItemsRs,"ItemID");
if ($ItemID == 'Delivery')
{
echo 'Delivery';
echo '<br />';
}
}
}
}
* UPDATE: *我再次修改代碼。現在呢,如果它會把日期吐出1行然後像100回聲交付,然後回去並吐出另一個日期和相同的東西。仍然不確定發生了什麼事。
$TransactionSql = "SELECT * FROM apcshead WHERE DateInvoiced > 0 ORDER BY DateInvoiced DESC";
$ItemsSql = "SELECT * FROM apcsitem";
$rs=odbc_exec($conn,$TransactionSql);
while($row = odbc_fetch_array($rs))
{
$DateInvoiced = odbc_result($rs,"DateInvoiced");
$DateInvoiced = new DateTime($DateInvoiced);
$DateInvoiced_date = $DateInvoiced->format('m-d-Y');
echo $DateInvoiced_date;
echo '<br />';
if ($DateInvoiced_date == $Today)
{
echo $DateInvoiced_date;
echo '<br />';
$ItemsRs=odbc_exec($conn,$ItemsSql);
while($row = odbc_fetch_array($ItemsRs))
{
$ItemID = odbc_result($ItemsRs,"ItemID");
if ($ItemID == 'Delivery')
{
echo 'Delivery';
}
}
}
}
積極它是一個無限循環,而不僅僅是一個長期運行的任務? – Zarathuztra
@Zarathuztra - 是的。如果我刪除了當前處於$ DateInvoiced_date == $今日的IF語句中的任何內容,並且僅回顯出$ DateInvoiced_date,那麼我得到的行數不超過20行。所以在技術上,我應該只收到20回聲'送貨' – Yusof
很酷,謝謝你的信息。調查 – Zarathuztra