Ive made the changes you suggested. I dont get any errors now but the
records are not updating. It is most puzzling. My updated code is below
************************************************** **************************
*****
$delarray=$_POST['del'];//not needed in the sql of first two queries so isnt
in for loop
if(count($delarray)==0){
for ($i = 0; $i < count($commindexarray); $i++){
$currtime=date('YmdHis');
$cat = intval($_POST['category'][$i]);
$comm = mysql_real_escape_string($_POST['comm'][$i]);
$avail =$_POST['avail'][$i];
$commindex = intval($_POST['commindex'][$i]);
$q2 ="UPDATE usercomms SET typeid=$cat WHERE userid=".$_SESSION['userid']."
AND commindex =$commindex";//
$updateusercomm = mysql_query($q2) or die('<br><span
class=RedWarning>Sorry, there was a problem updating. Try
again.<br><br>Error - 1 '.count($delarray). mysql_error().'</span>');
$q="UPDATE comments SET typeid=$cat, comment='$comm', available=$avail,
timestp='$currtime', globalavail=0 WHERE commindex=$commindex";//
$updatecomm = mysql_query($q) or die('<br><span class=RedWarning>Sorry,
there was a problem updating some records. Try again.<br><br>Error - 2
'.count($delarray).mysql_error().'</span>');
}
}
************************************************** **********************
Im also getting the following warning (below) on the bottom of the page. It
isnt affecting anything as it also appears with other queries I run on this
page which do work. Does anyone know what causes it. I dont think I can
follow its suggestion for not displaying it as I dont think I can alter any
settings on my hosting companies server. if that is what its asking me to
do.
Warning: Unknown(): Your script possibly relies on a session side-effect
which existed until PHP 4.2.3. Please be advised that the session extension
does not consider global variables as a source of data, unless
register_globals is enabled. You can disable this functionality and this
warning by setting session.bug_compat_42 or session.bug_compat_warn to off,
respectively. in Unknown on line 0
THANKS Ian
"Miguel Cruz" <sp**@admin.u.nuwrote in message
news:spam-6605DF.14173407082006@localhost...
"mantrid" <ia********@virgin.netwrote:
Im having problems working out why the following code does not work. I
dont
think its the sql as the error occurs on the first update which ever one
is
put there ($q1 or $q2). Ive swapped then around to test this.
Help greatly appreciated
The error is Unknown column 'A' in 'field list'
but there is no field 'A'. im thinking that the 'A' may be first letter
of
the word Array, as if it is using this as a variable, but i dont know
how.
$commindexarray=$_POST['commindex'];
$catarray=addslashes($_POST['category']);
$commarray=addslashes($_POST['comm']);
$availarray=$_POST['avail'];
$delarray=$_POST['del'];
if($delarray==''){
for ($i = 0; $i < count($commindexarray); $i++){
$currtime=date('YmdHis');
$q2 ="UPDATE usercomms SET typeid={$catarray[$i]} WHERE userid=
".$_SESSION['userid']." AND commindex ={$commindexarray[$i]}";//
$updateusercomm = mysql_query($q2) or die('<br><span
class=RedWarning>Sorry, there was a problem updating. Try
again.<br><br>Error - 1 '.count($delarray). mysql_error().'</span>');
$q="UPDATE comments SET typeid={$catarray[$i]},
comment='{$commarray[$i]}',
available={$availarray[$i]}, timestp='$currtime', globalavail=0 WHERE
commindex={$commindexarray[$i]}";//
$updatecomm = mysql_query($q) or die('<br><span class=RedWarning>Sorry,
there was a problem updating some records. Try again.<br><br>Error - 2
'.count($delarray).mysql_error().'</span>');
}
}
PHP is not Perl. If you call addslashes() on an array, it treats it as a
string, which means it has the value "Array". Then, when $i == 0 and you
look at $catarray[$i], you get the first character, which is 'A'.
You need to iterate through your arrays and call addslashes on each
element individually. The most efficient way would be to move the
addslashes (or perhaps mysql_real_escape_string instead) inside the $i
for loop that you already have:
for ($i = 0; $i < count($commindexarray); $i++)
{
$cat = intval($_POST['category'][$i]);
$comm = mysql_real_escape_string($_POST['comm'][$i]);
$q = "update usercomms
set type = {$cat},
comm = {$comm}
where whatever";
}
miguel
--
Photos from 40 countries on 5 continents: http://travel.u.nu
Latest photos: Malaysia; Thailand; Singapore; Spain; Morocco
Airports of the world: http://airport.u.nu