0

我有以下 php 代码:

$range=range(1,$count);
$value=implode(",",$range);
$query1="SELECT DISTINCT numar_factura FROM creeazafactura WHERE numar_factura IN ($value)";
$result1=mysql_query($query1);

while ($rowx = mysql_fetch_assoc($result1)) {
    $getvalue[]=$rowx['numar_factura'];
}
$missingvalue = array_diff($range,$getvalue);

print_r($range);
print_r($getvalue);
print_r($missingvalue);

输出:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

Array
(
    [0] => 1
    [1] => 2
)

Array
(
    [2] => 3
)

我想弄清楚的是,如何做到这一点

printf("WARNING: The invoice $missing[2] is missing.");

将永远工作。为什么我总是说?因为现在 id 删除了第三张发票,但是如果我删除第二张发票,我将在 $missing 中输出 array[1]

答案是创建一个循环,以便我在 printf 中有 $missing[$loop],

循环正在搜索已删除的一两张发票..并输出一两行。

说起来容易,做起来难,当你是初学者,你想为使用excel的朋友做一个简单的发票系统:)

如果你能提供一些例子,或者一些文档的链接,你可以帮我一个大忙。谢谢

4

2 回答 2

3

做这个:

foreach($missingvalue as $key => $value)
{
    printf('WARNING: The invoice '.$value.' is missing.');
}
于 2013-07-13T13:39:10.290 回答
0

因此,目标是获取丢失发票的 ID。尝试这个:

// here's your missing invoice array
$missingvalue = array_diff($range,$getvalue);
// get keys of it
$missingvalue_keys = array_keys($missingvalue);
// and now get the value from $missingvalue by key from $missingvalue_keys
printf('WARNING: The invoice ' . $missing[$missingvalue_keys[0]] . ' is missing.');

// if you have multiple values in $missingvalue than you dont need keys
foreach ($missingvalue as $value)
    printf('WARNING: The invoice ' . $value . ' is missing.');
// or with implode
printf('WARNING: The invoices ' . implode(',', $missingvalue) 
        . ' are missing.');
于 2013-07-13T13:03:13.693 回答