G'Day,
You need to have an auto_incrementing field in your database. Then all lines
that are displayed need to be in the form of fieldname[] so that PHP builds
an array. 

Then you need a hidden field to represent the unique record number to be
updated.

Here is some code that I use to print out a list of products by category,
and allow me to do mass updates on any of the information present, except
the unique id. It then goes through a while loop to UPDATE TABLE for each
record. 

Code follows:
<!-- START CODE -->

<html><head><title>Product Admin Page</title></head>
<body BGCOLOR="white">

<!-- Product Administration page -->

<?
// FUNCTION DEF

function showitems($prod,$cat) {
        // show all items in the product database, optionally sorted
        // selected by category or product id including '%' wildcard

        $mylink = mysql_connect();
        mysql_select_db('printcart',$mylink);

        // select * from product where category like 'postcard' and prodid
like '%'

        ($prod == '') ? $prod = '%' : $prod;
        ($cat == '') ? $cat = '%' : $cat;

        $query = "SELECT * FROM product WHERE category LIKE '$cat' AND
prodid LIKE '$prod' order by category, prodid";
        $myresult = mysql_query($query,$mylink);

        // build table and show all items in form fields

        print '
        <form name="showitems" action="prodadmin.php?update" method="post">
        <table bgcolor="#EEEEEE" border="1"><tr>
        <th>ProdID</th><th>Product Name</th><th>Product Description</th>
        <th>Unit</th><th>Price</th><th>Minimum
Order</th><th>Packaged</th><th>Category</th></tr>
        ';

        while($row = mysql_fetch_array($myresult)) {


                print "<tr><td><input type=\"hidden\" name=\"id[]\"
value=\"$row[prodid]\" > <font size=\"2\">$row[prodid]</font></t
d>\n";
                print "<td align=\"center\"><font size=\"2\"><input
type=\"text\" name=\"name[]\" value=\"$row[prodname]\" ></font><
/td>\n";
                print "<td align=\"center\"><font size=\"2\"><input
type=\"text\" name=\"desc[]\" value=\"$row[proddesc]\" ></font><
/td>\n";
                print "<td align=\"center\"><font size=\"2\"><input
type=\"text\" name=\"unit[]\" value=\"$row[unit]\" size=\"6\"></
font></td>\n";
                print "<td align=\"center\"><font size=\"2\"><input
type=\"text\" name=\"price[]\" value=\"$row[price]\" size=\"6\">
</font></td>\n";

                print "<td align=\"center\"><font size=\"2\"><input
type=\"text\" name=\"minorder[]\" value=\"$row[minorder]\" size=
\"5\"></font></td>\n";
                print "<td align=\"center\"><font size=\"2\"><input
type=\"text\" name=\"packaged[]\" value=\"$row[packaged]\" size=
\"5\"></font></td>\n";


                print "<td><font size=\"2\"><input type=\"text\"
name=\"category[]\" value=\"$row[category]\" ></font></td></tr>\n";

        }
        print '</table>';
        print '<input type="submit" name="update" value="Update">';
        print '<input type="hidden" name="cat" value="' . $cat . '">';
        print '<input type="hidden" name="prod" value="' . $prod . '">';
        print '</form>';

}

// FUNCTION

function updateproducts() {
        global $name,$id,$unit,$price,$category,$desc,$minorder,$packaged;


        $mylink = mysql_connect();
        mysql_select_db('printcart', $mylink);

        $numrows = count($id);

        for ($i = 0; $i < $numrows; ++$i) {


                if($desc[$i] == '' ) { $desc[$i] = $name[$i]; }

                $line = "UPDATE product SET prodname='${name[$i]}',";

                $line .= "proddesc='${desc[$i]}',";
                $line .= "unit='${unit[$i]}',";
                $line .= "price='${price[$i]}',";
                $line .= "category='${category[$i]}', ";

                $line .= "minorder='${minorder[$i]}', ";
                $line .= "packaged='${packaged[$i]}' ";

                $line .= "WHERE prodid='${id[$i]}'";

                $myresult = mysql_query($line,$mylink);
                print mysql_error($mylink);


        }


}

?>

<form NAME="filter" ACTION="prodadmin.php">
Product id is: <input TYPE="text" NAME="prod" VALUE="<? print $prod ?>"><br>

Category is: <!-- <input type="text" name="cat" value="<? print $cat ?>">-->

<select NAME="cat">

<?
$catq = "select category,c.name from product,category as c where
category=c.ckey group by c.name order by category";
$link = mysql_connect();
mysql_select_db('printcart',$link);
$catsr = mysql_query($catq,$link);
while(list($catop,$catname) = mysql_fetch_array($catsr)) {

if($catop == $cat) {
        $select = "selected";
}
else
{
        $select = "";
}
print "<option value=\"$catop\" $select>$catname</option>\n";
}
?>
<option VALUE="%">%wildcard</option>
</select>
<br>
<font SIZE="-1">(you may use the '%' as a wildcard for matching a portion of
the code or category)</font><br><br>
Too display all items, enter % into both fields. <br>
<br>
<input TYPE=submit VALUE="Get Matches">
</form>

<?
// Begin MAIN

if(isset($update)) {
        updateproducts();
        showitems($prod,$cat);
}
elseif(isset($prod) OR isset($cat)) {

        showitems($prod,$cat);
}


?>

</body></html>
<!-- END CODE -->

You should be able to get the gist of it ;)

On 4/2/01 9:42 PM, "Peter Houchin" <[EMAIL PROTECTED]> wrote:

> Hiya i've got a script that basically draws values from a db and will display
> them, as i have multiple records in there and want to display them all i'm
> using a 
> while ( ($myrow = mysql_fetch_array($result) ) )  statement this is all good
> as far as it will display them all how ever when i to be able to update the
> fields as well as display them .. sounds easy to do i know .. but for some
> reason my id value gets sent to the server as "id=++" can some one offer any
> suggestions as to why this is as when i view the source it lists the vaules as
> 1 2 3 etc.
> 
> Thanks 
> Peter Houchin
> [EMAIL PROTECTED]
> =========================================================
>    _____                              __   /\
>   /_/_/_\                            /  |_/  \
>  /_/_/_    __  __  __   __          /         \
>  \_/_/_\  /_/ /_/ /_/  /_/          \   _     /
> ___\_\_\/ /_/_/_/ /_//\/_/            \_/ \/\_/
> \_//_/_/ /_/_/_/ /_/ \/_/                    v
>    ________   ________________________________________
>   /_/_/_/_/  /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>  /_/_ _/_/ ______  __   __  /_/ ____      __     ______
> /_/_/_/_/ /_/_/_/ /_/  /_/ /_/ /_/\_\    /_/    /_/_/_/
> /_/  \_\  /_/ _/  /_//\/_/ /_/ /_/__\_\  /_/___ _\_\_\
> /_/    \_\/_/_/_/ /_/ \/_/ /_/ /_/    \_\/_/_/_//_/_/_/
> =========================================================
> Telephone : (03) 9329 1455  Facsimile : (03) 9329 6755
> ************* We rent the dot in .COM!  **************
> 
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to