Foros del Web » Programando para Internet » PHP »

checkbox marcados

Estas en el tema de checkbox marcados en el foro de PHP en Foros del Web. Estimados, antes que nada no sabia que titulo poner correctamente les cuento el asunto tengo una tabla productos y una tabla caracteristicas necesito hacer lo ...
  #1 (permalink)  
Antiguo 27/02/2006, 10:43
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
checkbox marcados

Estimados, antes que nada no sabia que titulo poner correctamente
les cuento el asunto

tengo una tabla productos y una tabla caracteristicas
necesito hacer lo siguiente:

al cargar un producto seleccionar de un listado las caracteristicas que tiene con checkbox (ahi hago un loop de la tabla caracteristicas)

.. y guardarlo en la base, hasta ahi todo bien, en la tabla productos cargo este nuevo producto y me cree otra tabla mas que se llama relacion que tiene
IDproducto y IDcaracteristica, entonces por cada uno de los checkeados meto un registro nuevo en la tabla relacion con el IDproducto del producto que acabo de cargar

la pregunta en si es.
como hago, luego, para editar el producto osea volver a mostrar todo el listado de categorias posibles, pero dejar como checked las categorias que ya tiene ??

perdon lo extenso, pero queria explicarles bien, gracias de antemano!!
__________________
On error no hago nada porque deje de fumar...
  #2 (permalink)  
Antiguo 27/02/2006, 11:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues haces algo tipo:

Código PHP:
<?
if ($loop_que_da_valores_categoria == $row['categoria']){
  
$propiedad="checked";
} else {
   
$propiedad="";
}
?>
<input type="checkbox" name="categorias[]" value="<? echo $loop_que_da_valores_categoria ?><? echo $propiedad ?>>
Un saludo,
  #3 (permalink)  
Antiguo 21/03/2006, 11:35
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
no entiendo pongo un loop dentro del otro ?
lo hice asi y no me funciona

Código PHP:
             <?
              
while($marca mysql_fetch_array($marcas)){
              while(
$relacion mysql_fetch_array($cable_marcas)){ 
                  if(
$marca['IDmarca']==$relacion['IDmarca']){
                    
$propiedad "checked";
                } else {
                    
$propiedad "";
                }
              
?>
              <tr> 
                <td><input name="IDmarca[]" type="checkbox" id="IDmarca[]" value="<? echo $marca['IDmarca']; ?><? echo $propiedad ?><? echo $marca['nombre']; ?>
                </td>
              </tr>
              <?
              
}
              }
              
?>
__________________
On error no hago nada porque deje de fumar...

Última edición por dieguicho; 21/03/2006 a las 12:04
  #4 (permalink)  
Antiguo 21/03/2006, 15:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En principio la solución que te plantee sería si tu haces una consulta SQL a tu tabla relacionada donde almacenas esos datos que ahora deben representar esos checkbox.

Así como lo pusistes sería la "filosofía" .. pero hay que ver como haces esas consultas SQL y como manejas los "resoruce ID" de cada una de esas consultas. Deben ser separados. Una para las "marcas" y otra para la "relacion" que haces con sus conexiones diferentes por su ID ..

$link1=mysql_connect(...);
mysql_select_db("tal",$link);
$marcas=mysql_query($sql,$link1);

Y otro "link" para la otra consulta SQL que debes hacer. Si no lo haces así, .. confundes los "punteros" que ván moviendo los _fetch_ de esas funciones de Mysql.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 22/03/2006, 12:36
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
estos son los dos querys

$cables = mysql_query("SELECT * FROM cables ORDER BY nombre ASC", $connection);
$marcas = mysql_query("SELECT * FROM marcas ORDER BY nombre ASC", $connection);

al ponerlo todo completo me hacia algo raro, osea todas las marcas me las mostraba con el mismo nombre, de verdad no comprendo como hacerlo perdon la molestia
muchas gracias
__________________
On error no hago nada porque deje de fumar...
  #6 (permalink)  
Antiguo 22/03/2006, 12:49
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 18 años, 3 meses
Puntos: 4
Tal vez deberias echarle un vistazo a las funciones JOIN (INNER JOIN, LEFT JOIN, RIGHT JOIN) o UNION para realizar consultas multitabla.
Puede no ser la solucion a los checkbox pero si a las consultas multiples.

Aqui un enlace: http://www.aulaclic.es/sql/t_3_1.htm
  #7 (permalink)  
Antiguo 22/03/2006, 15:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por dieguicho
estos son los dos querys

$cables = mysql_query("SELECT * FROM cables ORDER BY nombre ASC", $connection);
$marcas = mysql_query("SELECT * FROM marcas ORDER BY nombre ASC", $connection);

al ponerlo todo completo me hacia algo raro, osea todas las marcas me las mostraba con el mismo nombre, de verdad no comprendo como hacerlo perdon la molestia
muchas gracias
Ya te expliqué en mi anterior mensaje .. si optas por esa solución .. esos "$connection" que usas el mismo para ambas consultas SQL deben ser distintos y tratados de forma independiente .. sino observaras los problemas que ya has visto por qué estás trabajando con el mismo "record-set" que vas sobreescribiendo constantemente por tus consultas anidadas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 22/03/2006, 15:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Cubatron
Tal vez deberias echarle un vistazo a las funciones JOIN (INNER JOIN, LEFT JOIN, RIGHT JOIN) o UNION para realizar consultas multitabla.
Puede no ser la solucion a los checkbox pero si a las consultas multiples.

Aqui un enlace: http://www.aulaclic.es/sql/t_3_1.htm
Para este caso concreto .. usar uniones podría ser una solución .. pero igual necesitaría la lógica PHP necesaria para no repetir ese grupo de datos que el "JOIN" va a entregar repetidos.

Me refiero a que se obtendría un resultado tipo:

nombre_producto | marca | caracteristica | valor característica
producto1 | marca1 | caracteristica1
producto1 | marca1 | caracteristica2
producto1 | marca1 | caracteristica3
producto1 | marca1 | caracteristica4
producto2 | marca2 | caracteristica1
producto2 | marca2 | caracteristica2
producto2 | marca2 | caracteristica3

Lo que está en negrita sería de la tabla relacionada "productos" y lo restante de la otra tabla relacionada "características".

Así que de esta forma debemos usar "PHP" para no repetir N veces (tantas como "características tenga ese producto" en los listados que generamos).

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 05:33.