Supongo que para ustedes puede ser facil pero tengo un problema al limitar el update en tabla paginada, Tengo una pagina php que muestra cierta cantidad de registros de una db mysql y pasados los 20 registros los pagina, es decir genera los "pagina siguiente, pag.anterior" y demas. El tema es el siguiente en dichas paginas por cada registro mostrado en un renglon de una tabla tengo dos button radios que toman el valor "si" o "no" de un campo de la db y a su vez permiten cambiar el estado de estas (haciendo un update) esto funciona pero sucede ALGO EXTRANIO (he aqui el error!!!) Si por ejemplo efectuo un update de los datos mostrados en la primera pagina, este se efectua pero los datos de esos campos actualizados de las paginas no mostradas quedan "vacios" Evidentemente TENGO un ERROR en la programacion y no puedo dar con el !!!
Para llegar a crear esta pagina, me ayude de dreamweaver y la inestimable ayuda de un miembro de esta comunidad, pero parece que algo falta o falla. Les dejo el code por si alguien pudiera ayudarme. Desde ya muchisimas gracias !!!
Código PHP:
<? require_once('Connections/fermdp14.php');
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}
if ((isset($HTTP_POST_VARS["MM_update"])) && ($HTTP_POST_VARS["MM_update"] == "form1")) {
mysql_select_db($database_fermdp14, $fermdp14);
$Resultini = mysql_query("Select * from nota WHERE id > 1", $fermdp14) or die(mysql_error());
while($row=mysql_fetch_row($Resultini))
{
$valor="r".$row[0];
$clv=$$valor;
$result1=mysql_query("UPDATE nota set Disponible='$clv' WHERE id='$row[0]'", $fermdp14); // SUPONGO QUE AQUI RADICA EL ERROR
}
$updateGoTo = "admin.php";
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}
$maxRows_Recordset1 = 20;
$pageNum_Recordset1 = 0;
if (isset($HTTP_GET_VARS['pageNum_Recordset1'])) {
$pageNum_Recordset1 = $HTTP_GET_VARS['pageNum_Recordset1'];
}
$startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;
mysql_select_db($database_fermdp14, $fermdp14);
$query_Recordset1 = "SELECT * FROM nota WHERE id > 1 ORDER BY id DESC";
$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
$Recordset1 = mysql_query($query_limit_Recordset1, $fermdp14) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
if (isset($HTTP_GET_VARS['totalRows_Recordset1'])) {
$totalRows_Recordset1 = $HTTP_GET_VARS['totalRows_Recordset1'];
} else {
$all_Recordset1 = mysql_query($query_Recordset1);
$totalRows_Recordset1 = mysql_num_rows($all_Recordset1);
}
$totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1; ?>
<html>
<head>
<style type="text/css"><!-- @import url("librerias/c8.css"); --></style>
<title>Teleocho Informa - Administrar Archivo de Noticias</title>
</head>
<form name="form1" method="POST" action="<?php echo $editFormAction; ?>">
<table width="714" border="0" align="center"><tr class="letra_comun"><td><div align="right">
<?php if ($pageNum_Recordset1 > 0) { // Show if not first page ?><?php if ($pageNum_Recordset1 > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, 0, $queryString_Recordset1); ?>">Primera</a>
<?php } // Show if not first page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, max(0, $pageNum_Recordset1 - 1), $queryString_Recordset1); ?>">Anterior</a>
<?php } // Show if not first page ?>
<?php if ($pageNum_Recordset1 < $totalPages_Recordset1) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, min($totalPages_Recordset1, $pageNum_Recordset1 + 1), $queryString_Recordset1); ?>">Siguiente</a>
<?php } // Show if not last page ?>
<?php if ($pageNum_Recordset1 < $totalPages_Recordset1) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, $totalPages_Recordset1, $queryString_Recordset1); ?>">Ultima</a>
<?php } // Show if not last page ?>
</div></td></tr></table>
<table width="756" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000">
<?php do { ?>
<tr class="letra_comun">
<td><div align="center"><?php echo $row_Recordset1['id']; ?></div></td>
<td width="256"> <a href="detalle_nota.php?id=<?php echo $row_Recordset1['id']; ?>" target="_blank"><?php echo $row_Recordset1['Nombre_nota']; ?></a></td>
<td><strong> <?php echo $row_Recordset1['Soporte']?></strong> In:<strong><?php echo $row_Recordset1['Comienza'] ?> </strong> Dura:<span class="letra_comun_mediana"><strong><?php echo $row_Recordset1['Dura'] ?></strong></span></td>
<? if(strcmp($row_Recordset1['Disponible'],'si')==0)
{
$valor=$row_Recordset1['id'];
echo"<td bgcolor='#00FF00'>
<input type='radio' name='r$valor' checked value='si'>Disp.<br>
<input type='radio' name='r$valor'value='no'>Archivo
</td>";
}
else
{
$valor=$row_Recordset1['id'];
echo"<td bgcolor='#DD0000'>
<input type='radio' name='r$valor' value='si'>Disp.<br>
<input type='radio' name='r$valor' checked value='no'>Archivo
</td>";
} ?>
<td bgcolor="#FFFFFF">
<div align="center"><a href="borrar.php?id=<?php echo $row_Recordset1['id']; ?>&desde=admin.php"><img src="images/cesto.gif" alt="Borrar" border="0"></a></div></td>
</tr>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>
<input type="hidden" name="MM_update" value="form1">
<div align="center"><br />
<input type="submit" name="Submit" value="Efectuar Cambios">
</div>
</form>
<?php mysql_free_result($Recordset1); ?>