【发布时间】:2014-02-20 01:28:07
【问题描述】:
我有 2 个具有唯一 ID 的表。我有一个表格,其中一列是日期字段。我正在尝试从具有“今天”日期的所有行中按今天的日期(它有效)过滤该字段,我想获取#key的单元格信息。获得该 ID 后,我想将其与#headkey 匹配。所以 $headkey == $key。过滤后,我想查看是否有任何字段匹配 = ItemID 列的交付。出于某种原因,我有一个无限循环。我玩弄了这个逻辑,但似乎无法让它发挥作用。有什么想法吗?
$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 />';
}
}
}
}
*更新:*我再次修改了代码。现在如果它用日期吐出 1 行然后像 100 echo Delivery 然后返回并吐出另一个日期和相同的东西怎么办。仍然不确定发生了什么。
$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 - 是的。如果我删除当前在 $DateInvoiced_date == $today 的 IF 语句中的任何内容,并且只是回显 $DateInvoiced_date,我得到的行数不会超过 20 行。所以从技术上讲,我应该只得到 20 个“交付”的回声
-
酷,感谢您的信息。调查
-
@Zarathuztra - 谢谢。我所能确定的是,我搞砸了那个循环中的某些东西,但似乎不知道它是什么
-
我注意到您正在创建行但没有使用它们。你试过吗?怀疑它会导致你的循环,只是有点大扫除。