actualizar valores de coma en mysql

tengo una tabla de productos en mysql, uno de los campos (campo de atributos) contiene valores de coma como attibutes_1, attibutes_2, etc.en mi formulario tengo casillas de verificación para cada atributo de mi producto, el html como este

<input type="checkbox" value="attributes_1" name="attributes[$id][]">
<input type="checkbox" value="attributes_2" name="attributes[$id][]">

y mi pregunta es, ... ¿cómo puedo actualizar esos valores de atributos? si prueba esto con implosión

  $coma_values = implode(',',$_POST['attributes'][$id]);

y actualizarlo a la tabla, pero a veces no funciona perfectamente. Por favor ayúdame para una mejor solución

preguntado el 09 de enero de 11 a las 00:01

Necesita explicar su problema con más claridad y lo que ha intentado no funcionó. -

¿Cuál es tu primer nombre? -

Huele como un vulnerabilidad de inyección sql arrancar... -

2 Respuestas

necesita una tabla separada para los atributos, luego vincule las dos tablas con un campo de identificación.

table 1:
id, somedata1, somedata2

table 2:
id, table1_id, attribute_name, attribute_value

o algo así. table1_id tendrá valores que se correlacionan con un id coincidente en la primera tabla. de esta manera puede tener una relación de uno a muchos entre registros y atributos. esto le permitirá utilizar una consulta con JOIN para extraer datos de ambas tablas en un solo conjunto de resultados. nunca debe almacenar valores separados por comas en un campo.

Respondido el 09 de enero de 11 a las 04:01

Nunca tendrá una solución que funcione perfectamente, o incluso muy bien, si viola la teoría básica de las bases de datos relacionales al combinar varios datos en una sola columna. Dado que no indica cuál es su problema real, nadie podrá ayudarlo a resolverlo, pero supongo que son comas contenidas dentro de cosas que deberían ser expresiones únicas o que superan la longitud del campo.

La solución es almacenar esos atributos en una o más tablas subsidiarias relacionadas con la tabla de datos principal utilizando la clave principal de la tabla de datos. Para tener una mejor idea de cómo hacerlo, deberá especificar qué se almacena exactamente en los atributos.

Respondido el 09 de enero de 11 a las 06:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.