지난 3 시간 동안 내 머리를 벽에 부딪 쳤습니다.함수는 URL을 수동으로 호출 할 때만 작동합니까?
PHP/MySQL 응용 프로그램의 일상적인 유지 보수를 위해 잠시 전에 작성한 간단한 스크립트가 있습니다. 문제는 스크립트 자체가 아닙니다. 이 PHP 스크립트를 URL로 수동으로 호출 할 수 있으며 올바르게 실행되고 예상 한대로 수행됩니다. 문제는 특정 이벤트가 발생하여 작동하지 않을 때 스크립트를 응용 프로그램에 포함하려고 시도했지만 작동하지 않는다는 것입니다.
치명적인 오류가 있습니다. 다음 줄을 사용하여 함수 오류에서만 배열로 문자열 오프셋을 사용할 수 없습니다. $ ingredientID = $ prepItems [$ i] [ 'ingredientID'];
오류가 문자열을 할당 한 다음 배열로 처리하려고하지만이 행 앞에 $ ingredientID가 함수의 아무 곳에서도 선언되지 않았으며 $ prepItems [$ i] [ 'ingredientID']를 의미합니다. 어쨌든 문자열 자체입니다! 내가 확인한 $ prepItems 올바르게 반환됩니다. 돌아가서 스크립트가 작동하는 URL을 호출 할 때 응용 프로그램의 다른 스크립트에서 스크립트를 포함 시키려고하면 스크립트가 작동하지 않습니다. 나는
//UPDATE PRODUCTION NUMBERS
function fixOrders(){
$k = 0;
$date = date('Y-m-d',strtotime('yesterday'));
$qry = "SELECT a.orderID,a.qty,a.date,a.itemID,b.itemName,b.itemType FROM orders a join items b on a.itemID = b.itemID WHERE a.date > '$date' AND a.itemID = '$itemID'";
$res = mysql_query($qry);
$qry = "INSERT INTO prep (orderID,dateProd,qty,itemID,dept) VALUES ";
while ($row = mysql_fetch_array($res))
{
$itemID = $row['itemID'];
$qty = $row['qty'];
$itemType = $row['itemType'];
$date = $row['date'];
$orderID = $row['orderID'];
$prepItems = prepItems($itemID);
if ($prepItems) removePrepItems($orderID);
$cp = count($prepItems);
if ($prepItems)
{
for ($i = 0; $i < $cp; $i++)
{
$ingredientID = $prepItems[$i]['ingredientID'];
$ingredientWeight = $prepItems[$i]['ingredientWeight'];
$ingredientUnit = $prepItems[$i]['ingredientUnit'];
$productionOffset = $prepItems[$i]['productionOffset'];
$qty = ($ingredientWeight * $qty);
if ($ingredientUnit == 'lbs') $qty = ($qty * 16);
$date = date('Y-m-d',strtotime($date.' +'.$productionOffset.' days'));
echo $date.' '.$productionOffset.'<br>';
$qry .= "('$orderID','$date','$qty','$ingredientID','$itemType'),";
}
$k++;
}
}
$qry = substr($qry,0,-1);
mysql_query($qry);
echo $qry;
}
fixOrders($itemID)
function fixOrders()가 다른 파일에서 덮어 쓸 수 있습니까? – Venu
오류가 발생한 줄 앞에서'var_dump ($ prepItems);'를 실행 해보십시오. '$ prepItems'와'$ prepItems [$ i]'가 모두 배열인지 확인하십시오. – Travesty3
Venu : 어떻게해야합니까? –