Frank Stanovcak wrote:
> I am trying to pass a multi dimmed array as a variable parameter to a custom 
> function to build a query for me.  Here is the basic code and what I am 
> getting.
> 
> $WhereList[0][0] = 'OESalesOrder.OrderNo';
> $WhereList[0][1] = '=';
> $WhereList[0][2] = '2272';
> $SQLString = SQLCall('OESalesOrder',$FieldList,$WhereList);
> 
> I then use a foreach in the function to process it.
> 
> $i = 0;
>   foreach(func_get_arg(2) as $WhereArray) {
>    echo $WhereArray[0][0];
>    if($i == 0) {
>     $SQLStmt .= ' ' . $WhereArray[$i][0] . ' ' . $WhereArray[$i][1] . ' ' . 
> $WhereArray[$i][2];
>     $i += 1;
>    } else {
>     $SQLStmt .= ' ' . $WhereArray[$i][0] . ' ' . $WhereArray[$i][1] . ' ' . 
> $WhereArray[$i][2] . ' ' . $WhereArray[$i][3];
>     $i += 1;
>    };
>   };
> 
> What I get when it processes is the first three letters of [0][0]
> [0][0] = O
> [0][1] = E
> [0][2] = S
> 
> Did I do something wrong, or is this not possible?  I have done an array 
> processing this way before, but not multidimmed.
> 
> Frank. 
> 
> 
> 

Something like this should do.

function SQLCall($table, $FieldList, $WhereList=array()) {

# work  with your field list...

  $where_parts = array();
  foreach($WhereList AS $cond) {
    $where_parts[] = $cond[0].' '.$cond[1].' '.$cond[2];
  }

  $WHERE = '';
  if ( count($where_parts) ) {
    $WHERE = 'WHERE ' . join(' AND ', $where_parts);
  }

# put it all together.

}

-- 
Jim Lucas

   "Some men are born to greatness, some achieve greatness,
       and some have greatness thrust upon them."

Twelfth Night, Act II, Scene V
    by William Shakespeare


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to