[PHP] Update row problems

2003-01-27 Thread Steve Jackson
Hi all,

I've been playing with this for a few hours now (over the course of a
couple of days) and it's getting frustrating!

All I want to do is to be able to make one row in the database set the
order that my categories appear on my website. Now I can do this fine
simply by using ORDER_BY but I want to have my users be able to update
the order through an admin page like so:

-
Catid | catname | catdesc | catorder |
1  name   desc  1
2  name   desc  2
3name   desc  3
4name   desc  4
__

Basically I have a form which takes data from the table above and
displays catname (just echoed) and catorder in a text form field. When I
submit the form I want to update catorder with whatever number the user
puts in the field.

Currently my code updates only one of the category order numbers.
So my form code:

form action=eshop_processcatorder.php method=post
/td/tr
?
while ($array = mysql_fetch_array($mysql))
{
echo trtd width='150'span class='adminisoleipa';
echo {$array[catname]};
echo /tdtdinput type='text' size='2'
name='catorder[{$array[catid]}]' value='{$array[catorder]}';
echo /span/td/tr;
}
?
trtdbr
input type=submit name=Submit value=Submit class=nappi
/form 

That does everything I need it to do.

However what am I doing wrong when I try to process it using this code?

foreach($_POST[catorder] as $catid = $catorder) 
{
$query = update categories set catorder=$catorder where
catid=$catid; 
}
$result = mysql_query($query) or die(Query failure: 
.mysql_error());
if (!$result)
{
echo table width='100%' border='0' cellspacing='0'
cellpadding='0' align='center' bgcolor='#629D39';
echo trtdimg
src='images/admin_orders_administrate.gif'/td/tr;
echo trtdnbsp;/td/tr;
echo trtdspan class='adminisoleipa'Could not change
details: please a href='mailto:[EMAIL PROTECTED]'click
here/a to email the administratorbrbr/span;
echo /td;
echo /tr;
echo /table;
}
else
{
echo table width='100%' border='0' cellspacing='0'
cellpadding='0' align='center' bgcolor='#629D39';
echo trtdimg
src='images/admin_orders_administrate.gif'/td/tr;
echo trtdnbsp;/td/tr;
echo trtdspan class='adminisoleipa'The category page has
had the order in which categories appear changed.brbr/span;
echo /td;
echo /tr;
echo /table;
} 

Any help appraciated.
Kind regards,

Steve Jackson
Web Developer
Viola Systems Ltd.
http://www.violasystems.com
[EMAIL PROTECTED]
Mobile +358 50 343 5159


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




Re: [PHP] Update row problems

2003-01-27 Thread Tim Ward
your query needs to be inside the foreach loop 
so that it runs for every item, at the moment it 
just runs after you've scanned through all the items 
so just does the last one.

Tim Ward
http://www.chessish.com
mailto:[EMAIL PROTECTED]
- Original Message - 
From: Steve Jackson [EMAIL PROTECTED]
To: PHP General [EMAIL PROTECTED]
Sent: Monday, January 27, 2003 11:46 AM
Subject: [PHP] Update row problems


 Hi all,
 
 I've been playing with this for a few hours now (over the course of a
 couple of days) and it's getting frustrating!
 
 All I want to do is to be able to make one row in the database set the
 order that my categories appear on my website. Now I can do this fine
 simply by using ORDER_BY but I want to have my users be able to update
 the order through an admin page like so:
 
 -
 Catid | catname | catdesc | catorder |
 1name   desc  1
 2name   desc  2
 3name   desc  3
 4name   desc  4
 __
 
 Basically I have a form which takes data from the table above and
 displays catname (just echoed) and catorder in a text form field. When I
 submit the form I want to update catorder with whatever number the user
 puts in the field.
 
 Currently my code updates only one of the category order numbers.
 So my form code:
 
 form action=eshop_processcatorder.php method=post
 /td/tr
 ?
 while ($array = mysql_fetch_array($mysql))
 {
 echo trtd width='150'span class='adminisoleipa';
 echo {$array[catname]};
 echo /tdtdinput type='text' size='2'
 name='catorder[{$array[catid]}]' value='{$array[catorder]}';
 echo /span/td/tr;
 }
 ?
 trtdbr
 input type=submit name=Submit value=Submit class=nappi
 /form 
 
 That does everything I need it to do.
 
 However what am I doing wrong when I try to process it using this code?
 
 foreach($_POST[catorder] as $catid = $catorder) 
 {
 $query = update categories set catorder=$catorder where
 catid=$catid; 
 }
   $result = mysql_query($query) or die(Query failure: 
 .mysql_error());
 if (!$result)
 {
 echo table width='100%' border='0' cellspacing='0'
 cellpadding='0' align='center' bgcolor='#629D39';
 echo trtdimg
 src='images/admin_orders_administrate.gif'/td/tr;
 echo trtdnbsp;/td/tr;
 echo trtdspan class='adminisoleipa'Could not change
 details: please a href='mailto:[EMAIL PROTECTED]'click
 here/a to email the administratorbrbr/span;
 echo /td;
 echo /tr;
 echo /table;
 }
 else
 {
 echo table width='100%' border='0' cellspacing='0'
 cellpadding='0' align='center' bgcolor='#629D39';
 echo trtdimg
 src='images/admin_orders_administrate.gif'/td/tr;
 echo trtdnbsp;/td/tr;
 echo trtdspan class='adminisoleipa'The category page has
 had the order in which categories appear changed.brbr/span;
 echo /td;
 echo /tr;
 echo /table;
 } 
 
 Any help appraciated.
 Kind regards,
 
 Steve Jackson
 Web Developer
 Viola Systems Ltd.
 http://www.violasystems.com
 [EMAIL PROTECTED]
 Mobile +358 50 343 5159
 
 
 -- 
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php
 
 


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




RE: [PHP] Update row problems

2003-01-27 Thread Steve Jackson
I'm processing on a different page so what would I use instead of
$_POST?
print_r($_POST)
Didn't display anything or diagnose anything.

Steve Jackson
Web Developer
Viola Systems Ltd.
http://www.violasystems.com
[EMAIL PROTECTED]
Mobile +358 50 343 5159





 -Original Message-
 From: Tim Ward [mailto:[EMAIL PROTECTED]] 
 Sent: 27. tammikuuta 2003 14:57
 To: Steve Jackson
 Subject: Re: [PHP] Update row problems
 
 
 sounds like $_POST[catorder] isn't an array - if
 you're posting to the same page you need to wrap 
 the processing in something to test if the form has 
 been posted (e.g. is_array($_POST[catorder])), 
 or maybe you're using an older versionof PHP where 
 $_POST isn't available -try using print_r($_POST) 
 for diagnostics.
 
 Tim Ward
 http://www.chessish.com
 mailto:[EMAIL PROTECTED]
 - Original Message - 
 From: Steve Jackson [EMAIL PROTECTED]
 To: 'Tim Ward' [EMAIL PROTECTED]
 Sent: Monday, January 27, 2003 12:52 PM
 Subject: RE: [PHP] Update row problems
 
 
  Ok,
  
  I put the query in the loop and now I get this error?
  
  foreach($_POST[catorder] as $catid = $catorder)
  {
$query = update categories set catorder=$catorder where
  catid=$catid; 
  $result = mysql_query($query) or die(Query failure: 
  .mysql_error());
  }
  
  Warning: Invalid argument supplied for foreach()
  in 
 /home/stephenj/public_html/viola/eadmin/eshop_processcatorder.php on
  line 27
  
  Is it a $_POST problem? Using PHP 4.06
  
  Steve Jackson
  Web Developer
  Viola Systems Ltd.
  http://www.violasystems.com
  [EMAIL PROTECTED]
  Mobile +358 50 343 5159
  
  
  
  
  
   -Original Message-
   From: Tim Ward [mailto:[EMAIL PROTECTED]]
   Sent: 27. tammikuuta 2003 14:11
   To: PHP General; Steve Jackson
   Subject: Re: [PHP] Update row problems
   
   
   your query needs to be inside the foreach loop
   so that it runs for every item, at the moment it 
   just runs after you've scanned through all the items 
   so just does the last one.
   
   Tim Ward
   http://www.chessish.com
   mailto:[EMAIL PROTECTED]
   - Original Message -
   From: Steve Jackson [EMAIL PROTECTED]
   To: PHP General [EMAIL PROTECTED]
   Sent: Monday, January 27, 2003 11:46 AM
   Subject: [PHP] Update row problems
   
   
Hi all,

I've been playing with this for a few hours now (over the
   course of a
couple of days) and it's getting frustrating!

All I want to do is to be able to make one row in the
   database set the
order that my categories appear on my website. Now I can do
   this fine
simply by using ORDER_BY but I want to have my users be
   able to update
the order through an admin page like so:

-
Catid | catname | catdesc | catorder |
1name   desc  1
2name   desc  2
3name   desc  3
4name   desc  4
__

Basically I have a form which takes data from the table 
 above and
displays catname (just echoed) and catorder in a text form 
   field. When
I submit the form I want to update catorder with whatever
   number the
user puts in the field.

Currently my code updates only one of the category order
   numbers. So
my form code:

form action=eshop_processcatorder.php method=post 
 /td/tr 
? while ($array = mysql_fetch_array($mysql))
{
echo trtd width='150'span class='adminisoleipa';
echo {$array[catname]};
echo /tdtdinput type='text' size='2'
name='catorder[{$array[catid]}]' 
 value='{$array[catorder]}';
echo /span/td/tr;
}
?
trtdbr
input type=submit name=Submit value=Submit class=nappi
/form 

That does everything I need it to do.

However what am I doing wrong when I try to process it 
 using this
code?

foreach($_POST[catorder] as $catid = $catorder)
{
$query = update categories set catorder=$catorder where 
catid=$catid; }
  $result = mysql_query($query) or die(Query failure: 
.mysql_error());
if (!$result)
{
echo table width='100%' border='0' cellspacing='0'
cellpadding='0' align='center' bgcolor='#629D39';
echo trtdimg
src='images/admin_orders_administrate.gif'/td/tr;
echo trtdnbsp;/td/tr;
echo trtdspan class='adminisoleipa'Could not change
details: please a 
   href='mailto:[EMAIL PROTECTED]'click
here/a to email the administratorbrbr/span;
echo /td;
echo /tr;
echo /table;
}
else
{
echo table width='100%' border='0' cellspacing='0' 
cellpadding='0' align='center' bgcolor='#629D39'; echo 
trtdimg 
src='images/admin_orders_administrate.gif'/td/tr;
echo trtdnbsp;/td/tr;
echo trtdspan class='adminisoleipa'The category page has 
had the order in which categories appear 
 changed.brbr/span; 
echo /td; echo /tr;
echo /table;
} 

Any help appraciated

Re: [PHP] Update row problems

2003-01-27 Thread Tim Ward
what version of PHP? try $HTTP_POST_VARS instead.

Tim Ward
http://www.chessish.com
mailto:[EMAIL PROTECTED]
- Original Message - 
From: Steve Jackson [EMAIL PROTECTED]
To: PHP General [EMAIL PROTECTED]
Sent: Monday, January 27, 2003 1:14 PM
Subject: RE: [PHP] Update row problems


 I'm processing on a different page so what would I use instead of
 $_POST?
 print_r($_POST)
 Didn't display anything or diagnose anything.
 
 Steve Jackson
 Web Developer
 Viola Systems Ltd.
 http://www.violasystems.com
 [EMAIL PROTECTED]
 Mobile +358 50 343 5159
 
 
 
 
 
  -Original Message-
  From: Tim Ward [mailto:[EMAIL PROTECTED]] 
  Sent: 27. tammikuuta 2003 14:57
  To: Steve Jackson
  Subject: Re: [PHP] Update row problems
  
  
  sounds like $_POST[catorder] isn't an array - if
  you're posting to the same page you need to wrap 
  the processing in something to test if the form has 
  been posted (e.g. is_array($_POST[catorder])), 
  or maybe you're using an older versionof PHP where 
  $_POST isn't available -try using print_r($_POST) 
  for diagnostics.
  
  Tim Ward
  http://www.chessish.com
  mailto:[EMAIL PROTECTED]
  - Original Message - 
  From: Steve Jackson [EMAIL PROTECTED]
  To: 'Tim Ward' [EMAIL PROTECTED]
  Sent: Monday, January 27, 2003 12:52 PM
  Subject: RE: [PHP] Update row problems
  
  
   Ok,
   
   I put the query in the loop and now I get this error?
   
   foreach($_POST[catorder] as $catid = $catorder)
   {
 $query = update categories set catorder=$catorder where
   catid=$catid; 
   $result = mysql_query($query) or die(Query failure: 
   .mysql_error());
   }
   
   Warning: Invalid argument supplied for foreach()
   in 
  /home/stephenj/public_html/viola/eadmin/eshop_processcatorder.php on
   line 27
   
   Is it a $_POST problem? Using PHP 4.06
   
   Steve Jackson
   Web Developer
   Viola Systems Ltd.
   http://www.violasystems.com
   [EMAIL PROTECTED]
   Mobile +358 50 343 5159
   
   
   
   
   
-Original Message-
From: Tim Ward [mailto:[EMAIL PROTECTED]]
Sent: 27. tammikuuta 2003 14:11
To: PHP General; Steve Jackson
Subject: Re: [PHP] Update row problems


your query needs to be inside the foreach loop
so that it runs for every item, at the moment it 
just runs after you've scanned through all the items 
so just does the last one.

Tim Ward
http://www.chessish.com
mailto:[EMAIL PROTECTED]
- Original Message -
From: Steve Jackson [EMAIL PROTECTED]
To: PHP General [EMAIL PROTECTED]
Sent: Monday, January 27, 2003 11:46 AM
Subject: [PHP] Update row problems


 Hi all,
 
 I've been playing with this for a few hours now (over the
course of a
 couple of days) and it's getting frustrating!
 
 All I want to do is to be able to make one row in the
database set the
 order that my categories appear on my website. Now I can do
this fine
 simply by using ORDER_BY but I want to have my users be
able to update
 the order through an admin page like so:
 
 -
 Catid | catname | catdesc | catorder |
 1name   desc  1
 2name   desc  2
 3name   desc  3
 4name   desc  4
 __
 
 Basically I have a form which takes data from the table 
  above and
 displays catname (just echoed) and catorder in a text form 
field. When
 I submit the form I want to update catorder with whatever
number the
 user puts in the field.
 
 Currently my code updates only one of the category order
numbers. So
 my form code:
 
 form action=eshop_processcatorder.php method=post 
  /td/tr 
 ? while ($array = mysql_fetch_array($mysql))
 {
 echo trtd width='150'span class='adminisoleipa';
 echo {$array[catname]};
 echo /tdtdinput type='text' size='2'
 name='catorder[{$array[catid]}]' 
  value='{$array[catorder]}';
 echo /span/td/tr;
 }
 ?
 trtdbr
 input type=submit name=Submit value=Submit class=nappi
 /form 
 
 That does everything I need it to do.
 
 However what am I doing wrong when I try to process it 
  using this
 code?
 
 foreach($_POST[catorder] as $catid = $catorder)
 {
 $query = update categories set catorder=$catorder where 
 catid=$catid; }
   $result = mysql_query($query) or die(Query failure: 
 .mysql_error());
 if (!$result)
 {
 echo table width='100%' border='0' cellspacing='0'
 cellpadding='0' align='center' bgcolor='#629D39';
 echo trtdimg
 src='images/admin_orders_administrate.gif'/td/tr;
 echo trtdnbsp;/td/tr;
 echo trtdspan class='adminisoleipa'Could not change
 details: please a 
href='mailto:[EMAIL PROTECTED]'click
 here/a to email the administratorbrbr/span;
 echo /td;
 echo

RE: [PHP] Update row problems

2003-01-27 Thread Steve Jackson
Thanks.
That was the problem. Im using 4.0.6 so it's a bit out of date.
Cheers,

Steve Jackson
Web Developer
Viola Systems Ltd.
http://www.violasystems.com
[EMAIL PROTECTED]
Mobile +358 50 343 5159





 -Original Message-
 From: Tim Ward [mailto:[EMAIL PROTECTED]] 
 Sent: 27. tammikuuta 2003 15:32
 To: PHP General; Steve Jackson
 Subject: Re: [PHP] Update row problems
 
 
 what version of PHP? try $HTTP_POST_VARS instead.
 
 Tim Ward
 http://www.chessish.com
 mailto:[EMAIL PROTECTED]
 - Original Message - 
 From: Steve Jackson [EMAIL PROTECTED]
 To: PHP General [EMAIL PROTECTED]
 Sent: Monday, January 27, 2003 1:14 PM
 Subject: RE: [PHP] Update row problems
 
 
  I'm processing on a different page so what would I use instead of 
  $_POST?
  print_r($_POST)
  Didn't display anything or diagnose anything.
  
  Steve Jackson
  Web Developer
  Viola Systems Ltd.
  http://www.violasystems.com
  [EMAIL PROTECTED]
  Mobile +358 50 343 5159
  
  
  
  
  
   -Original Message-
   From: Tim Ward [mailto:[EMAIL PROTECTED]]
   Sent: 27. tammikuuta 2003 14:57
   To: Steve Jackson
   Subject: Re: [PHP] Update row problems
   
   
   sounds like $_POST[catorder] isn't an array - if
   you're posting to the same page you need to wrap
   the processing in something to test if the form has 
   been posted (e.g. is_array($_POST[catorder])), 
   or maybe you're using an older versionof PHP where 
   $_POST isn't available -try using print_r($_POST) 
   for diagnostics.
   
   Tim Ward
   http://www.chessish.com
   mailto:[EMAIL PROTECTED]
   - Original Message -
   From: Steve Jackson [EMAIL PROTECTED]
   To: 'Tim Ward' [EMAIL PROTECTED]
   Sent: Monday, January 27, 2003 12:52 PM
   Subject: RE: [PHP] Update row problems
   
   
Ok,

I put the query in the loop and now I get this error?

foreach($_POST[catorder] as $catid = $catorder)
{
  $query = update categories set catorder=$catorder where 
catid=$catid; $result = mysql_query($query) or die(Query 
failure:  .mysql_error());
}

Warning: Invalid argument supplied for foreach()
in
   
 /home/stephenj/public_html/viola/eadmin/eshop_processcatorder.php on
line 27

Is it a $_POST problem? Using PHP 4.06

Steve Jackson
Web Developer
Viola Systems Ltd.
http://www.violasystems.com [EMAIL PROTECTED]
Mobile +358 50 343 5159





 -Original Message-
 From: Tim Ward [mailto:[EMAIL PROTECTED]]
 Sent: 27. tammikuuta 2003 14:11
 To: PHP General; Steve Jackson
 Subject: Re: [PHP] Update row problems
 
 
 your query needs to be inside the foreach loop
 so that it runs for every item, at the moment it
 just runs after you've scanned through all the items 
 so just does the last one.
 
 Tim Ward
 http://www.chessish.com
 mailto:[EMAIL PROTECTED]
 - Original Message -
 From: Steve Jackson [EMAIL PROTECTED]
 To: PHP General [EMAIL PROTECTED]
 Sent: Monday, January 27, 2003 11:46 AM
 Subject: [PHP] Update row problems
 
 
  Hi all,
  
  I've been playing with this for a few hours now (over the
 course of a
  couple of days) and it's getting frustrating!
  
  All I want to do is to be able to make one row in the
 database set the
  order that my categories appear on my website. Now I can do
 this fine
  simply by using ORDER_BY but I want to have my users be
 able to update
  the order through an admin page like so:
  
  -
  Catid | catname | catdesc | catorder |
  1name   desc  1
  2name   desc  2
  3name   desc  3
  4name   desc  4
  __
  
  Basically I have a form which takes data from the table
   above and
  displays catname (just echoed) and catorder in a text form
 field. When
  I submit the form I want to update catorder with whatever
 number the
  user puts in the field.
  
  Currently my code updates only one of the category order
 numbers. So
  my form code:
  
  form action=eshop_processcatorder.php method=post
   /td/tr
  ? while ($array = mysql_fetch_array($mysql))
  {
  echo trtd width='150'span 
 class='adminisoleipa'; echo 
  {$array[catname]}; echo /tdtdinput type='text' 
  size='2' name='catorder[{$array[catid]}]'
   value='{$array[catorder]}';
  echo /span/td/tr;
  }
  ?
  trtdbr
  input type=submit name=Submit value=Submit 
  class=nappi /form
  
  That does everything I need it to do.
  
  However what am I doing wrong when I try to process it
   using this
  code?
  
  foreach($_POST[catorder] as $catid = $catorder)
  {
  $query = update categories set catorder=$catorder where