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