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 |
> 1    name       desc      1
> 2    name       desc      2
> 3        name       desc      3
> 4        name       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 "<tr><td width='150'><span class='adminisoleipa'>";
> echo "{$array["catname"]}";
> echo "</td><td><input type='text' size='2'
> name='catorder[{$array["catid"]}]' value='{$array["catorder"]}'>";
> echo "</span></td></tr>";
> }
> ?>
> <tr><td><br>
> <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 "<tr><td><img
> src='images/admin_orders_administrate.gif'></td></tr>";
> echo "<tr><td>&nbsp;</td></tr>";
> echo "<tr><td><span class='adminisoleipa'>Could not change
> details: please <a href='mailto:[EMAIL PROTECTED]'>click
> here</a> to email the administrator<br><br></span>";
> echo "</td>";
> echo "</tr>";
> echo "</table>";
> }
> else
> {
> echo "<table width='100%' border='0' cellspacing='0'
> cellpadding='0' align='center' bgcolor='#629D39'>";
> echo "<tr><td><img
> src='images/admin_orders_administrate.gif'></td></tr>";
> echo "<tr><td>&nbsp;</td></tr>";
> echo "<tr><td><span class='adminisoleipa'>The category page has
> had the order in which categories appear changed.<br><br></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

Reply via email to