[FX.php List] This is doing my head in...
Steve Winter
steve at bluecrocodile.co.nz
Thu Nov 22 07:30:38 MST 2007
Hi all,
I’ve got a block of code;
$listQuery = new FX($serverIP, $serverPort, $dataSourceType);
$listQuery->SetDBUserPass($webUN, $webPW);
$listQuery->SetDBData($databaseName, 'webTutors', 'all');
$listQuery->AddSortParam('tutorNameFirst', 'ascend');
$listQuery->AddSortParam('tutorNameLast', 'ascend');
switch($_REQUEST['action']) {
case 'changePassword':
case 'changeMyDetails':
$listQuery->AddDBParam('tutorID',
$_SESSION['session']['tutorID']);
$listData = $listQuery->FMFind();
break;
default:
$listData = $listQuery->FMFindAll();
break; }
When the page is called via a ‘get’ this code runs perfectly and returns the
records.
I then lay them out in a table, allow the user to make changes, and post
them all back in a series of arrays to the database, which then modifies the
records using this code;
$fieldsToSave =
array('tutorNameTitle','tutorNameFirst','tutorNameLast','tutorFormClass','tu
torEmail','tutorAccessName','tutorAccessPassword','tutorIsAdministrator');
if($_SERVER['REQUEST_METHOD'] == 'POST') {
switch($_REQUEST['action']) {
case 'deleteStaff':
$listUpdateQuery = new FX($serverIP, $serverPort,
$dataSourceType);
$listUpdateQuery->SetDBUserPass($webUN, $webPW);
$listUpdateQuery->SetDBData($databaseName, 'webTutors');
$listUpdateQuery->AddDBParam('-recid', $_REQUEST['recID']);
$listUpdateData = $listUpdateQuery->FMDelete();
if($listUpdateData['errorCode'] == 0) $messages[] = 'mItem
deleted successfully.';
else $messages[] = 'eThe item could not be deleted.';
break;
case 'editStaff':
$sucess = 0; $counter=0;
for($j=0; $j<count($_REQUEST['tutorNameLast']); $j++) {
$listUpdateQuery = new FX($serverIP, $serverPort,
$dataSourceType);
$listUpdateQuery->SetDBUserPass($webUN, $webPW);
$listUpdateQuery->SetDBData($databaseName,
'webTutors');
foreach($fieldsToSave as $field)
$listUpdateQuery->AddDBParam($field,
$_REQUEST[$field][$j]);
if($_REQUEST['recID'][$j] != '') {
$listUpdateQuery->AddDBParam('-recid',
$_REQUEST['recID'][$j]);
$listUpdateData =
$listUpdateQuery->FMEdit(); }
else
$listUpdateData =
$listUpdateQuery->FMNew();
$counter++;
if($listUpdateData['errorCode'] == 0) $sucess++;
echo $j.'<br />'; }
if($sucess == $counter) $messages[] = 'm'.$sucess.' of
'.$counter.' items updated sucessfully.';
else $messages[] = 'e'.$sucess.' of '.$counter.' items updated
were updated. Please verify your data and try again.';
break;
}
}
And then the same piece of code at the top of the page gets called again, to
re-create my table of data.
When it’s run via the get the first time the page loads, all is good.. I get
the page I would expect with no problems...
When it gets called the second time round I get a series of errors
generated;
Warning: urlencode() expects parameter 1 to be string, array given in
D:\server\websites\msClients\3square\conduct\assets\fx\FX.php on line 1425
I’ve turned DEBUG on, the same request is generated by the code block both
times, and clicking on it gives exactly the results I would expect.
If I refresh the page, so I’m using a GET, then all works fine...
What the...?? any clues...??
Cheers
Frustrated Steve
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.503 / Virus Database: 269.16.3/1144 - Release Date: 21/11/2007
4:28 p.m.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.iviking.org/pipermail/fx.php_list/attachments/20071122/ca3d5ef7/attachment.html
More information about the FX.php_List
mailing list