[PHP-DB] Re: Looping advice sought

2002-01-22 Thread George Pitcher

Miles,

It's not as bad as some of my queries. Here's my code
so far:
= = = = = =
$i=1;
while $i($howmany + 1)
{
$activity=($activity . $i);
$tr_id=($tr_id . $i);

if($activity'' and $activity'Delete'  and 
$activity'Submit'){
  if($activity=='Decline')
   $activity='Declined';
  if($activity=='Withdraw')
   $activity='Withdrawn';
  $uquery1 =update Transactions ;
  $uquery1.=SET (PHEIAction, PHEIAccepts) 
  $uquery1.=VALUES 
  $uquery1.=('$activity', '$d1') 
  $uquery1.= WHERE RecID= '$tr_id'
 mysql_query($uquery1);
}elseif($activity=='Submit' or $submit=='Submit Whole
Pack'){
  $uquery1 =update Transactions ;
  $uquery1.=SET (PRequestsubmitted, Packorder)
  $uquery1.=VALUES 
  $uquery1.=('$d1', '$Packorder')
  $uquery1.= WHERE RecID= '$tr_id'
 mysql_query($uquery1);
}elseif($activity=='Delete'){
  $uquery1 =update Transactions ;
  $uquery1.=SET CourseID 
  $uquery1.=VALUES 
  $uquery1.=0
  $uquery1.= WHERE RecID= '$tr_id'
 mysql_query($uquery1);
}
= = = = = =
George


- Original Message -
From: Miles Thompson [EMAIL PROTECTED]
To: George Pitcher [EMAIL PROTECTED];
[EMAIL PROTECTED]
Sent: Tuesday, January 22, 2002 11:49 AM
Subject: Re: [PHP-DB] Looping advice sought


 Good morning George,

 As always, it depends on the data.
 Knowing how large your queriesare, can you give us a
stripped down example
 of two iterations? Not code, just an example of what
you're wanting to
 update or insert.

 Miles

 At 11:24 AM 1/22/2002 +, George Pitcher wrote:
 Hi all,
 
 I am about to start on a script page which will
loop
 thru a MySQL table and update records depending on
the
 actions of the user.
 
 I propose to loop through, row by row performing a
 separate UPDATE statement for each row, unless
someone
 can advise me of a better way (2d array?).
 
 I am migrating this site from Lasso where I needed
to
 to do two iterations of the script: the first
handles
 a single row input and the other handles multiple
row
 inputs. Do I need to do two with php or will one be
 able to handle a count of 1 in a loop just as well
as
 a multiple count?
 
 MTIA
 
 George


=
George Pitcher

Technical Manager, HERON, Napier University, Edinburgh
0131-455 2435 .. [EMAIL PROTECTED] .. [EMAIL PROTECTED]

__
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DB] Re: Looping advice sought

2002-01-22 Thread DL Neil

George,

Please check out 6.4.5  UPDATE Syntax!

Rather than a complex series of partly nested IF statements, can you rationalise the 
structure to a
SWITCH-CASE? - and with neater (than email) formatting improve 
readability/comprehension as well?


 $i=1;
 while $i($howmany + 1)
 {
 $activity=($activity . $i);
 $tr_id=($tr_id . $i);

 switch ( $activity )
 {
 case '' :   break;  // do nothing
 case 'Delete' :   FnDeleteUpdate( 'Withdrawn' );  break;
 case 'Submit' :FnWholePackUpdate( etc);  break;
 case 'Decline' :fnSingleUpdate( 'Declined' );  break;
 case 'Withdraw' :FnSingleUpdate( 'Withdrawn' );  break;
 default :   DisplayToLog( '***Error' );  exit; //or break
// at the moment this condition is do nothing
 } // end of switch activity

if ( $submit=='Submit Whole Pack') FnWholePackUpdate( etc);
// note this logic is not quite the same as yours - thus may not be appropriate

  mysql_query($uquery1);
// or it might be tidier to include the MySQL call in the functions

Move:
   $uquery1 =update Transactions ;
   $uquery1.=SET (PHEIAction, PHEIAccepts) 
   $uquery1.=VALUES 
   $uquery1.=('$activity', '$d1') 
   $uquery1.= WHERE RecID= '$tr_id'
into FnSingleUpdate

Move:
   $uquery1 =update Transactions ;
   $uquery1.=SET (PRequestsubmitted, Packorder)
   $uquery1.=VALUES 
   $uquery1.=('$d1', '$Packorder')
   $uquery1.= WHERE RecID= '$tr_id'
into FnWholePackUpdate

Move:
   $uquery1 =update Transactions ;
   $uquery1.=SET CourseID 
   $uquery1.=VALUES 
   $uquery1.=0
   $uquery1.= WHERE RecID= '$tr_id'
into FnDeleteUpdate


I actually prefer to space out the statements in a CASE, but as these are simple the 
one-liners may be more
readable. Similarly I tend to space the separate clauses of a SQL query over several 
lines, but you may find it
easier to put the SQL statements onto a single line, eg

$uquery1 =update Transactions SET CourseID = '0' WHERE RecID= '$tr_id' ;

- easier to read/visualise(?), you'll remove the risk of forgetting to put in spaces, 
but you'll still have to
watch the convention of which quotation marks to use when and around PHP variables...

NB assuming CourseID is a string (and not an integer - quotes not nec).

NBB are we missing the end of the while loop?

Regards,
=dn



-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]