TimberWolf
05-24-2005, 06:57 AM
I need to update many records/rows of the same Mysql table. If I create a html table with a submit button for each row it works, but I can update a single record at a time like this:
<?php require_once('../Connections/conn.php'); ?>
<?php
mysql_select_db($database_conn, $conn);
$query_item = "SELECT * FROM actrav_libitem";
$item = mysql_query($query_item, $conn) or die(mysql_error());
$row_item = mysql_fetch_assoc($item);
if ((isset($_POST["Update"])) && ($_POST["Update"] == "UpForm")) {
$updateSQL = sprintf("UPDATE actrav_libitem SET caption='".$_POST['caption']."', `level`='".$_POST['level']."', item_order='".$_POST['item_order']."' WHERE ItemID='".$_POST['ItemID']."' ");
mysql_select_db($database_conn, $conn);
$Result1 = mysql_query($updateSQL, $conn) or die(mysql_error());
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table border='1'>
<tr valign="top">
<td nowrap align="center">ID:</td>
<td nowrap align="center">Caption:</td>
<td nowrap align="center">Level:</td>
<td nowrap align="center">Item_order:</td>
<td nowrap align="center"> </td>
</tr>
<?php do { ?>
<form method="post" name="UpForm" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="Update" value="UpForm">
<input type="hidden" name="ItemID" value="<?php echo $row_item['ItemID']; ?>">
<input type="hidden" name="caption" value="<?php echo $row_item['caption']; ?>">
<tr valign="top">
<td><?php echo $row_item['ItemID']; ?></td>
<td><?php echo $row_item['caption']; ?></td>
<td><input type="text" name="level" value="<?php echo $row_item['level']; ?>" size="6"></td>
<td><input type="text" name="item_order" value="<?php echo $row_item['item_order']; ?>" size="6"></td>
<td><input type="submit" value="GO"></td>
</tr>
</form>
<?php } while ($row_item = mysql_fetch_assoc($item)); ?>
</table>
<p> </p>
</body>
</html>
How can I do to enter values in many rows, maybe with a checkbox to select wich rows I want to affetct, and update all the affected rows with a single button?
I understand that it has to do with loops and arrays, but I'm only making mess like this:
<?php require_once('../Connections/conn.php'); ?>
<?php
mysql_select_db($database_conn, $conn);
$query_item = "SELECT * FROM actrav_libitem";
$item = mysql_query($query_item, $conn) or die(mysql_error());
$row_item = mysql_fetch_assoc($item);
if ((isset($_POST["Update"])) && ($_POST["Update"] == "UpForm")) {
for ($i = 0; $i < count($_POST['ItemID']); $i++)
{
$updateSQL = sprintf("UPDATE actrav_libitem SET caption='".$_POST['caption'.$i]."', `level`='".$_POST['level'.$i]."', item_order='".$_POST['item_order'.$i]."' WHERE ItemID='".$_POST['ItemID'.$i]."' ");
mysql_select_db($database_conn, $conn);
$Result1 = mysql_query($updateSQL, $conn) or die(mysql_error());
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form method="post" name="UpForm" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="Update" value="UpForm">
<input type="hidden" name="ItemID[]">
<input type="hidden" name="caption[]">
<table border='1'>
<tr valign="top">
<td nowrap align="center">ID:</td>
<td nowrap align="center">Caption:</td>
<td nowrap align="center">Level:</td>
<td nowrap align="center">Item_order:</td>
</tr>
<?php do { ?>
<tr valign="top">
<td><?php echo $row_item['ItemID']; ?></td>
<td><?php echo $row_item['caption']; ?></td>
<td><input type="text" name="level[]" value="<?php echo $row_item['level']; ?>" size="6"></td>
<td><input type="text" name="item_order[]" value="<?php echo $row_item['item_order']; ?>" size="6"></td>
</tr>
<?php } while ($row_item = mysql_fetch_assoc($item)); ?>
</table>
<td><input type="submit" value="GO"></td></form>
<p> </p>
</body>
</html>
Can anybody help me?
Thank you in advance
<?php require_once('../Connections/conn.php'); ?>
<?php
mysql_select_db($database_conn, $conn);
$query_item = "SELECT * FROM actrav_libitem";
$item = mysql_query($query_item, $conn) or die(mysql_error());
$row_item = mysql_fetch_assoc($item);
if ((isset($_POST["Update"])) && ($_POST["Update"] == "UpForm")) {
$updateSQL = sprintf("UPDATE actrav_libitem SET caption='".$_POST['caption']."', `level`='".$_POST['level']."', item_order='".$_POST['item_order']."' WHERE ItemID='".$_POST['ItemID']."' ");
mysql_select_db($database_conn, $conn);
$Result1 = mysql_query($updateSQL, $conn) or die(mysql_error());
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table border='1'>
<tr valign="top">
<td nowrap align="center">ID:</td>
<td nowrap align="center">Caption:</td>
<td nowrap align="center">Level:</td>
<td nowrap align="center">Item_order:</td>
<td nowrap align="center"> </td>
</tr>
<?php do { ?>
<form method="post" name="UpForm" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="Update" value="UpForm">
<input type="hidden" name="ItemID" value="<?php echo $row_item['ItemID']; ?>">
<input type="hidden" name="caption" value="<?php echo $row_item['caption']; ?>">
<tr valign="top">
<td><?php echo $row_item['ItemID']; ?></td>
<td><?php echo $row_item['caption']; ?></td>
<td><input type="text" name="level" value="<?php echo $row_item['level']; ?>" size="6"></td>
<td><input type="text" name="item_order" value="<?php echo $row_item['item_order']; ?>" size="6"></td>
<td><input type="submit" value="GO"></td>
</tr>
</form>
<?php } while ($row_item = mysql_fetch_assoc($item)); ?>
</table>
<p> </p>
</body>
</html>
How can I do to enter values in many rows, maybe with a checkbox to select wich rows I want to affetct, and update all the affected rows with a single button?
I understand that it has to do with loops and arrays, but I'm only making mess like this:
<?php require_once('../Connections/conn.php'); ?>
<?php
mysql_select_db($database_conn, $conn);
$query_item = "SELECT * FROM actrav_libitem";
$item = mysql_query($query_item, $conn) or die(mysql_error());
$row_item = mysql_fetch_assoc($item);
if ((isset($_POST["Update"])) && ($_POST["Update"] == "UpForm")) {
for ($i = 0; $i < count($_POST['ItemID']); $i++)
{
$updateSQL = sprintf("UPDATE actrav_libitem SET caption='".$_POST['caption'.$i]."', `level`='".$_POST['level'.$i]."', item_order='".$_POST['item_order'.$i]."' WHERE ItemID='".$_POST['ItemID'.$i]."' ");
mysql_select_db($database_conn, $conn);
$Result1 = mysql_query($updateSQL, $conn) or die(mysql_error());
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form method="post" name="UpForm" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="Update" value="UpForm">
<input type="hidden" name="ItemID[]">
<input type="hidden" name="caption[]">
<table border='1'>
<tr valign="top">
<td nowrap align="center">ID:</td>
<td nowrap align="center">Caption:</td>
<td nowrap align="center">Level:</td>
<td nowrap align="center">Item_order:</td>
</tr>
<?php do { ?>
<tr valign="top">
<td><?php echo $row_item['ItemID']; ?></td>
<td><?php echo $row_item['caption']; ?></td>
<td><input type="text" name="level[]" value="<?php echo $row_item['level']; ?>" size="6"></td>
<td><input type="text" name="item_order[]" value="<?php echo $row_item['item_order']; ?>" size="6"></td>
</tr>
<?php } while ($row_item = mysql_fetch_assoc($item)); ?>
</table>
<td><input type="submit" value="GO"></td></form>
<p> </p>
</body>
</html>
Can anybody help me?
Thank you in advance