Foros del Web » Programando para Internet » PHP »

Actualizar registros en db con checkbox

Estas en el tema de Actualizar registros en db con checkbox en el foro de PHP en Foros del Web. hola A todos, suy realmente nuevo en el foro y me gustaria que me dieran una manito con esto.. Hace ya un tiempo me habia ...
  #1 (permalink)  
Antiguo 22/11/2006, 05:55
Avatar de Killerx_8937  
Fecha de Ingreso: noviembre-2006
Mensajes: 99
Antigüedad: 17 años, 5 meses
Puntos: 0
Exclamación Actualizar registros en db con checkbox

hola A todos, suy realmente nuevo en el foro y me gustaria que me dieran una manito con esto..

Hace ya un tiempo me habia entrado la duda sobre como acualizar datos en una db con checkbox, lo cual parecia sencillo hasta cuando comence a hacerlo.

tengo esto.

<?
include "secion_start.php";
if($_SESSION[level] == 2)
{
echo '';

}else{
Header("Location: index.php");
};
require_once"funciones.php";
require_once "cabecera.php";
require_once "conexion.php";
if ($_POST[Buscar] == "Buscar") {


$Tabla="Hormigones";
// query sql
if ($_POST[Todo] == "on") {
$q = "select * from $Tabla ORDER BY CertNum ASC";
}else{
$q = "select * from $Tabla WHERE CertNum = '$_POST[CertNum]' Or Obra = '$_POST[Obra]' Or Mandante = '$_POST[Mandante]' Or Cant = '$_POST[Cant]' Or Probeta = '$_POST[Probeta]' Or Dimension = '$_POST[Dimension]' Or Resistencia = '$_POST[Resistencia]' Or NumMuestra ='$_POST[NumMuestra]'Or FechaConfec = '$_POST[FechaConfec]' ORDER BY CertNum ASC";

}

// ejecutando el query
echo "<td width='$theme_width_l' valign='top' class='side-border-left'>\n";
abrelado($titulo="Navegación");
include "pie_hormigon.php";
cierralado();
echo "</td>\n";
echo "<td valign='top' class='main-bg'>\n";
$result= mysql_query($q, $link) or die ("problema con query".mysql_error());
$result2= mysql_query($q, $link) or die ("problema con query".mysql_error());
abretabla($titulo="Busqueda Hormigón");

echo "
<FORM ACTION=horm_ensayados.php METHOD=post>
<table border='0' align='center'>
<tbody>
<tr>
<TD colspan='3'><b>I.- Antecedentes Generales<br></b></TD>
</tr>
<tr>
<td width='100' align='left'>Certificado<br>
<input maxlength='6' size='6' type='text' name='CertNum' >
</p></td>
<td width='250'>Obra<br>
<input maxlength='255' size='30' type='text' name='Obra'>
</p></td>
<td width='300'>Mandante<br>
<input maxlength='30' size='20' type='text' name='Mandante'>
</p></td>
</tr>
<tr><td width='100' align='left'>Cantidad<br>
<input maxlength='30' size='6' type='text' name='Cant'>
<td><p>Probeta<br><SELECT name='Probeta'><option SELECTED name='default'>Seleccione Probeta</option>
<OPTION value='Cubo'>Cubo</OPTION>
<OPTION value='Cilindro'>Cilindro</OPTION>
<OPTION value='Prisma'>Prisma</OPTION>
<OPTION value='Rilem'>Rilem</OPTION>
</p></SELECT></td>
<td><p>Dimensión<br>
<SELECT name='Dimension'><option SELECTED name='default'>Seleccione Dimención</option>
<OPTION value='15 X 15'>15 X 15</OPTION>
<OPTION value='20 X 20'>20 X 20</OPTION>
<OPTION value='15 X 30'>15 X 30</OPTION>
<OPTION value='53 x 15'>53 x 15</OPTION>
<OPTION value='4 X 16'>4 X 16</OPTION>
</p></SELECT></td></tr>
<tr>
<td width='100'>Resistencia<br>
<input maxlength='100' size='10' type='text' name='Resistencia'>
</p></td>
<td width='250'>Numero de Muestra<br>
<input maxlength='100' size='20' type='text' name='NumMuestra'>
</p></td><td><p>Fecha de Confección<br>
<input id='fecha' type='text' name='FechaConfec'/>
</td>
</tr>
<tr><td>Ver Todos</td><td><INPUT TYPE=\"checkbox\" NAME=\"Todo\"></td><td colspan='2' rowspan='1' align='center'> <p><br><br>
<input type='submit' name='Buscar' value='Buscar' onclick='return verifica(this.form)'></form>
</p><br></td></tr>

</tbody>
</table>
</FORM>";
cierratabla();
abretabla($titulo="Busqueda Hormigones");
if (mysql_num_rows($result) == 0) {

echo "<TABLE align='center'>
<TR>
<TD align='center'>No se han Encontrado Registros.</TD>
</TR>
</TABLE>";
cierratabla();
cierrapagina();
exit;
};
echo "<TABLE Border=0 align=\"center\" class=\"infobar\"><TR>";
# construyendo los encabezados de la tabla
echo "
<th class=\"td\">Certificado</th>
<th class=\"td\">Obra</th>
<th class=\"td\">Mandante</th>
<th class=\"td\">Tipo Probeta</th>
<th class=\"td\">Fecha Confección</th>
<th class=\"td\">N muestra</th>
<th class=\"td\">Ensayado</th>

</TR>";
// ciclo de lectura del rowset($tabla1)
while($renglon= mysql_fetch_assoc($result2))
{
// desplegando en celda de tabla html
echo "<tr>";
echo "<td align=\"center\" class=\"td1\">$renglon[CertNum]</td>";
echo "<td align=\"left\"class=\"td1\">$renglon[Obra]</td>";
echo "<td align=\"center\"class=\"td1\">$renglon[Mandante]</td>";
echo "<td align=\"center\"class=\"td1\">$renglon[Probeta]&nbsp;De&nbsp;$renglon[Dimension]</td>";
echo "<td align=\"center\"class=\"td1\">$renglon[FechaConfec]</td>";
echo "<td align=\"center\"class=\"td1\">$renglon[NumMuestra]";
echo"</td>";
echo "<td align=\"center\"class=\"td1\"><FORM action=\"horm_ensayados.php\" method=\"POST\">
<INPUT type=\"checkbox\" name=\"CertNum\" value=\"$renglon[CertNum]\">";
echo " </td>";
echo "</tr>";
};
echo "<tr><td colspan=\"6\" align=\"center\"><INPUT type=\"submit\" name=\"Actualizar\" value=\"Actualizar\"></td></tr></FORM>";

echo "</table>";
}elseif ($_POST[Actualizar] == "Actualizar"){

Aqui deberia ir el script para recibir los checkbox y hacer la atualización
la verdad es que e tenido muchos problemas con hacerlo.

seria algo asi ono?

for ($i = 0; $i < count($_POST['nombre del checkbox']); $i++)

{

mysql_query("UPDATE catalogo SET campodb='algo' WHERE Campo='{$_POST['codigo'][$i]}'");

}
estare bien o no......


}else{
echo "<td width='$theme_width_l' valign='top' class='side-border-left'>\n";
abrelado($titulo="Navegación");
include "pie_hormigon.php";
cierralado();
echo "</td>\n";
echo "<td valign='top' class='main-bg'>\n";
abretabla($titulo="busqueda hormigón");

echo "
<FORM ACTION=horm_ensayados.php METHOD=post>
<table border='0' align='center'>
<tbody>
<tr>
<TD colspan='3'><b>I.- Antecedentes Generales<br></b></TD>
</tr>
<tr>
<td width='100' align='left'>Certificado<br>
<input maxlength='6' size='6' type='text' name='CertNum'>
</p></td>
<td width='250'>Obra<br>
<input maxlength='255' size='30' type='text' name='Obra'>
</p></td>
<td width='300'>Mandante<br>
<input maxlength='30' size='20' type='text' name='Mandante'>
</p></td>
</tr>
<tr><td width='100' align='left'>Cantidad<br>
<input maxlength='30' size='6' type='text' name='Cant'>
<td><p>Probeta<br><SELECT name='Probeta'><option SELECTED name='default'>Seleccione Probeta</option>
<OPTION value='Cubo'>Cubo</OPTION>
<OPTION value='Cilindro'>Cilindro</OPTION>
<OPTION value='Prisma'>Prisma</OPTION>
<OPTION value='Rilem'>Rilem</OPTION>
</p></SELECT></td>
<td><p>Dimensión<br>
<SELECT name='Dimension'><option SELECTED name='default'>Seleccione Dimención</option>
<OPTION value='15 X 15'>15 X 15</OPTION>
<OPTION value='20 X 20'>20 X 20</OPTION>
<OPTION value='15 X 30'>15 X 30</OPTION>
<OPTION value='53 x 15'>53 x 15</OPTION>
<OPTION value='4 X 16'>4 X 16</OPTION>
</p></SELECT></td></tr>
<tr>
<td width='100'>Resistencia<br>
<input maxlength='100' size='10' type='text' name='Resistencia'>
</p></td>
<td width='250'>Numero de Muestra<br>
<input maxlength='100' size='20' type='text' name='NumMuestra'>
</p></td><td><p>Fecha de Confección<br>
<input id='fecha' type='text' name='FechaConfec'/>
</td>
</tr>
<tr><td>Ver Todos</td><td><INPUT TYPE=\"checkbox\" NAME=\"Todo\"></td></tr>
<tr><td colspan='3' rowspan='1' align='center'> <p><br><br>
<input type='submit' name='Buscar' value='Buscar' onclick='return verifica(this.form)'></form>
</p><br></td></tr>
</tbody>
</table>
</FORM>";
};
cierratabla();
tablebreak();
cierrapagina();
?>

saludos.....

entre la libertad y la velocidad prefiero la libertad para luchar por la velocidad...GPL
  #2 (permalink)  
Antiguo 22/11/2006, 06:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tus checkbox deberías definirlos como un "array" usando []:

Código PHP:
<INPUT type="checkbox\" name=\"CertNum[]\" value=\"$renglon[CertNum]\">"
Así en tu script PHP de proceso recibiras un array con tantos elementos como checbox selecciones y en ellos el valor del "value" que le des a cada uno.

Un salduo,

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 22/11/2006, 08:15
Avatar de Killerx_8937  
Fecha de Ingreso: noviembre-2006
Mensajes: 99
Antigüedad: 17 años, 5 meses
Puntos: 0
Gracias Cluster

lo que hice fue:

foreach( $_POST[CertNum] as $value ) {
require_once"conexion.php";
$Tabla="Hormigones";
$sql="UPDATE $Tabla SET Ensayado='Si' WHERE CErtNum='$value'";
$actualizacion= mysql_query($sql, $link) or die ("problema con query".mysql_error());
}

siempre es bueno tener una opinion de alguien mas.
  #4 (permalink)  
Antiguo 22/11/2006, 08:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
De hecho usando algo más de "SQL" podrías usar IN(listavalores) y evitar el "foreach()".

Fijate en esta FAQ al respecto:
http://www.forosdelweb.com/showthrea...710#post518710

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:59.