how can i do that?
btw the script runs on a local machine but updates the records on a
webserver i mean live server. this is also a factor for the timeout. the
script was running smoothly for 24000 recods before but now it suddenly
timeout after 800records. i dont know what is heppening
Haseeb
----- Original Message -----
From: "Jas" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, December 19, 2003 3:16 AM
Subject: [PHP] Re: Script timeout Problem
> Have you tried setting a limit on your MySQL insert and update
> statements to limit the amount trying to be processed?
>
> Haseeb Iqbal wrote:
> > hi,
> > i need to update a mysql table with a dbf file, the dbf file contains
more then 160000 records. i knew that the script will not be able to update
160000 records in 1 go so i am refreshing the page after speacific no of
records. but still the same problem. the script timeout.i tried changing the
timeout limit to 300 secs but to noavail. i am pasting the code here.plz
take a look may by you can tell me what i am doing wrong
> >
> >
> > <?
> > define("strPath","./");
> >
> > define("_MySqlEnable",TRUE);
> >
> > set_time_limit(0);
> >
> > require_once(strPath."paths.php");
> >
> > $strDBName=strPath."uploads/".Date("d-m-Y")."-products.dbf";
> >
> > $DBPointer=dbase_open($strDBName,0) or die("Cannot open file for
reading");
> >
> > $nNoOfRecs=dbase_numrecords($DBPointer);
> >
> > $nLoopBreak=1500;
> >
> > $nConn=GetCon();
> >
> > if (empty($nLoopStart)) { $nLoopStart=1; }
> >
> > if ($nNoOfRecs > $nLoopBreak)
> > {
> > $nLoopTill=$nLoopStart + $nLoopBreak;
> > $nFinal=FALSE;
> > }
> > else
> > {
> > $nLoopTill=$nLoopBreak;
> > $nFinal=TRUE;
> > }
> >
> > for ($nCount=$nLoopStart;$nCount<=$nLoopTill;$nCount++)
> > {
> > $arrData=dbase_get_record($DBPointer,$nCount);
> >
> > $GRP=CheckString($arrData[0]);
> > $CAT=CheckString($arrData[1]);
> > $SUB=CheckString($arrData[2]);
> > $VEND_CODE=CheckString($arrData[3]);
> > $MANU_PART=CheckString($arrData[4]);
> > $PART_NUM=CheckString($arrData[5]);
> > $DESCR=CheckString($arrData[6]);
> > $COST=CheckString($arrData[7]);
> > $RETAIL=CheckString($arrData[8]);
> > $QTY=CheckString($arrData[9]);
> > $LIST_PRICE=CheckString($arrData[10]);
> > $EFF_DATE=CheckString($arrData[11]);
> > $TECH_FAX=CheckString($arrData[12]);
> > $STATUS=CheckString($arrData[13]);
> > $UPC=CheckString($arrData[14]);
> >
> > $strQuery="SELECT * FROM products WHERE grp='".$GRP."' AND
cat='".$CAT."' AND sub='".$SUB."' AND vend_code='".$VEND_CODE."' AND
manu_part='".$MANU_PART."' AND part_num='".$PART_NUM."'";
> > $nConn->doQuery($strQuery);
> >
> > if ($nConn->cntResult()==0)
> > $strQuery="INSERT INTO
products(products.grp,products.cat,products.sub,products.vend_code,products.
manu_part,products.part_num,products.desc,products.cost,products.retail,prod
ucts.qty,products.list_price,products.eff_date,products.tech_fax,products.st
atus,products.upc)
VALUES('".$GRP."','".$CAT."','".$SUB."','".$VEND_CODE."','".$MANU_PART."','"
$PART_NUM."','".$DESCR."','".$COST."','".$RETAIL."','".$QTY."','".$LIST_PRI
CE."','".$EFF_DATE."','".$TECH_FAX."','".$STATUS."','".$UPC."')";
> $strQuery="INSERT INTO
>
products(products.grp,products.cat,products.sub,products.vend_code,products.
manu_part,products.part_num,products.desc,products.cost,products.retail,prod
ucts.qty,products.list_price,products.eff_date,products.tech_fax,products.st
atus,products.upc)
>
VALUES('".$GRP."','".$CAT."','".$SUB."','".$VEND_CODE."','".$MANU_PART."','"
$PART_NUM."','".$DESCR."','".$COST."','".$RETAIL."','".$QTY."','".$LIST_PRI
CE."','".$EFF_DATE."','".$TECH_FAX."','".$STATUS."','".$UPC."'
> LIMIT 200)";
> > else
> > $strQuery="UPDATE products SET
products.part_num='$PART_NUM',products.desc='$DESCR',COST='$COST',retail='$R
ETAIL',qty='$QTY',list_price='$LIST_PRICE',eff_date='$EFF_DATE',tech_fax='$T
ECH_FAX',status='$STATUS',upc='$UPC' WHERE grp='".$GRP."' AND cat='".$CAT."'
AND sub='".$SUB."' AND vend_code='".$VEND_CODE."' AND
manu_part='".$MANU_PART."' AND part_num='".$PART_NUM."'";
> $strQuery="UPDATE products SET
>
products.part_num='$PART_NUM',products.desc='$DESCR',COST='$COST',retail='$R
ETAIL',qty='$QTY',list_price='$LIST_PRICE',eff_date='$EFF_DATE',tech_fax='$T
ECH_FAX',status='$STATUS',upc='$UPC'
> WHERE grp='".$GRP."' AND cat='".$CAT."' AND sub='".$SUB."' AND
> vend_code='".$VEND_CODE."' AND manu_part='".$MANU_PART."' AND
> part_num='".$PART_NUM."'LIMIT 200";
> >
> > //echo "<br>nCOunt - > $nCount -----".$strQuery;
> > $nConn->doQuery($strQuery);
> > }
> > $nCount++;
> > $nLoopStart=$nCount;
> > if ($nFinal==FALSE)
> > {
> > //1500 records updated so refresh the page
> > ?>
> > <meta http-equiv="Refresh" content="2;
URL=mypage.php?nLoopStart=<?=$nLoopStart;?>">
> > <?
> > }
> > else
> > {
> > // all records updated so redirst to calling page.
> > ?>
> > <meta http-equiv="Refresh" content="2; URL=main.php?nStatus=1">
> > <?
> > }
> > ?>
> >
> > Haseeb
>
> That might help out with the timeouts too.
> Jas
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php