Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] - CheckBox y MySql

Estas en el tema de [SOLUCIONADO] - CheckBox y MySql en el foro de PHP en Foros del Web. Buenas, os expongo una duda que tengo y no tengo narizes de encontrar solucion. Tengo mi tabla de PEDIDO en mysql y una lista de ...
  #1 (permalink)  
Antiguo 11/06/2008, 14:26
 
Fecha de Ingreso: junio-2008
Mensajes: 34
Antigüedad: 15 años, 10 meses
Puntos: 0
[SOLUCIONADO] - CheckBox y MySql

Buenas, os expongo una duda que tengo y no tengo narizes de encontrar solucion.

Tengo mi tabla de PEDIDO en mysql y una lista de los pedidos en php, en dicha lista tengo entre otros datos un checkbox para ver los pedidos que he recibido y los que no. Los valores que puede tomar un checkbox son 1 y 0 o true y false no? o por lo menos eso he visto por los foros que ido mirando.
Y no se que campo ponerle a "recibido" si un INT, VARCHAR, etc nose.

el codigo de la tabla PEDIDO
Código HTML:
$sql = "CREATE TABLE IF NOT EXISTS pedido (
	id_ped INT(2) AUTO_INCREMENT,
	proveedor INT(2) NOT NULL,
	fecha DATE NOT NULL,
	recibido INT(2) NOT NULL,
	fecha_recib DATE NOT NULL,
	
PRIMARY KEY(id_ped),
FOREIGN KEY (proveedor) REFERENCES proveedor(id_prov)
)";	
$queryresult=mysql_query($sql)
	or die("Error en la linea: ".__LINE__." de tu codigo.<br>El motivo del error es: ".mysql_error()."<br>En conclusion: No se ha creado la tabla PEDIDO.");				
	echo "Se ha creado la tabla PEDIDO. ¡BIEN!<br>";
y aqui el codigo de la lista de pedidos
Código HTML:
<tr>
	<td bgcolor="#DADADA" align="center">&nbsp; <? echo $registro['id'].""; ?> &nbsp;</td>
	<td bgcolor="#DADADA" align="center">&nbsp; <? echo $registro['fecha1'].""; ?> &nbsp;</td>
	<td bgcolor="#DADADA" align="center">&nbsp; <? echo $registro['prov'].""; ?> &nbsp;</td>
	<td bgcolor="#DADADA" align="center">&nbsp; <? echo $registro['prod']." ".$registro['modelo1']; ?> &nbsp;</td>						
	<td bgcolor="#DADADA" align="center">&nbsp; <? echo $registro['unid'].""; ?> &nbsp;</td>
	<td bgcolor="#DADADA" align="center">&nbsp; <? echo $registro['fecha2'].""; ?> &nbsp;</td>
	<td bgcolor="#DADADA" align="center">&nbsp;<input type="checkbox" name="recibido">&nbsp;</td>	
	<td><a href="modifica_ped.php?ped=<? echo $registro['id'] ?>"><img src="http://www.forosdelweb.com/images/botones/editar.jpg"></a></td>
</tr> 
Para aclararos un poco el codigo de la lista, os dejo una imagen.


Espero que me solucioneis esto porque yo no soy capaz.
Gracias de ante mano y un saludo.

Última edición por sub7; 12/06/2008 a las 07:45 Razón: [SOLUCIONADO]
  #2 (permalink)  
Antiguo 11/06/2008, 22:02
 
Fecha de Ingreso: marzo-2008
Ubicación: Venezuela
Mensajes: 60
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: CheckBox y MySql

creo que para trabajar con un campo binario en mejor usar TINYINT(1) pero eso es lo de menos. lo importante es que ese campo sólo va a tener cero (0) para indicar que no fue recibido y uno (1) para indicar que sí.

lo único que tienes que hacer es verificar si el valor es uno o cero, y colocarle el check a la etiqueta:

Código HTML:
<td bgcolor="#DADADA" align="center">&nbsp;
<input type="checkbox" name="recibido" <? if(intval($registro['recibido'])==1) { echo "CHECKED"; } ?>>&nbsp;
</td> 
y el checkbox se marcará sólo cuando recibido sea igual a 1
  #3 (permalink)  
Antiguo 12/06/2008, 07:48
 
Fecha de Ingreso: junio-2008
Mensajes: 34
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: [SOLUCIONADO] - CheckBox y MySql

Ya lo he solucionado, os dejo la solucion por si os pasa a alguno.

Código HTML:
 <td bgcolor="#DADADA" align="center">&nbsp; <? echo $fecha2; ?> &nbsp;</td>
<?
if ($registro['reci']=="1"){
$fecha2=$registro['fecha2'];
$disabled="disabled";
$checked="";
}
if ($registro['reci']=="0"){
$fecha2=" ";
$disabled="disabled";
$checked="checked";
}
?>	
	<td bgcolor="#DADADA" align="center">&nbsp;<input type="checkbox" id="recibido" <? echo $disabled; ?> <? echo $checked; ?>>&nbsp;</td> 


Un saludo
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.
Tema Cerrado




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