Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

error : Operand should contain 1 column(s)

Estas en el tema de error : Operand should contain 1 column(s) en el foro de Mysql en Foros del Web. Hola amigos, mirar tengo el siguiente problema, cuando se ejecuta una sentencia php los datos que a recogido los inserta en la tabla 1 y ...
  #1 (permalink)  
Antiguo 01/07/2012, 17:35
 
Fecha de Ingreso: marzo-2012
Mensajes: 7
Antigüedad: 12 años, 1 mes
Puntos: 0
error : Operand should contain 1 column(s)

Hola amigos, mirar tengo el siguiente problema, cuando se ejecuta una sentencia php los datos que a recogido los inserta en la tabla 1 y no hay problema , pero ahora, al final de esa sentencia, yo quiero copiar parte de esos datos a una tabla ( tabla2) pero me da el error : Operand should contain 1 column(s) .

No se el porque lo hace, explico las dos tablas no pueden llamarse igual porlogica, pero no puedo igualar tampoco los nombres de las columnas porque son para dos secciones de la web diferentes. He mirado en muchos foros y me dicen que no hay problema con el comando INSERT tal y como lo ponen funciona, la verdad es que a mi solo me funciona si en vez de los datos de la tabla 2 le pongo datos para insertar manualmente( ejem. ( 1,2,3 ) , los inserta sin problemas pero al hacerlo de la tabla 1 , me da el mencionado error

La sentencia es tal que asi:

$query='INSERT tabla2 (zona1, zona2, zona3, zona4, zona5, zona6, zona7, zona8, zona9, zona10, zona11, zona12, zona13, zona14, zona15,zona6) SELECT (casilla1, casilla2, casilla3, casilla4, casilla5, casilla6, casilla7, casilla8, casilla9, casilla10, casilla11, casilla12, casilla13, casilla14, casilla15,casilla16) FROM tabla1';

Si alguno puede orientarme se lo estaría agradecido
  #2 (permalink)  
Antiguo 01/07/2012, 17:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: error : Operand should contain 1 column(s)

Los paréntesis no operan de la misma forma en el INSERT INTO que dentro del SELECT.
Cuando los pones el el SETECT construyen una sola columna, porque indican una operación. Como en ese SELECT no existe una operación, sino una lista de columnas de salida, los paréntesis están de más.
Código MySQL:
Ver original
  1. INSERT INTO tabla2 (zona1,
  2.   zona2,
  3.   zona3,
  4.   zona4,
  5.   zona5,
  6.   zona6,
  7.   zona7,
  8.   zona8,
  9.   zona9,
  10.   zona10,
  11.   zona11,
  12.   zona12,
  13.   zona13,
  14.   zona14,
  15.   zona15,
  16.   zona6)
  17.   casilla1,
  18.   casilla2,
  19.   casilla3,
  20.   casilla4,
  21.   casilla5,
  22.   casilla6,
  23.   casilla7,
  24.   casilla8,
  25.   casilla9,
  26.   casilla10,
  27.   casilla11,
  28.   casilla12,
  29.   casilla13,
  30.   casilla14,
  31.   casilla15,
  32.   casilla16
  33. FROM tabla1

Por cierto, El diseño general, por lo que se infiere, parece contener errores de diseño, pero no es posible establecerlo con certeza porque no se sabe qué es lo que es esa tabla, la web o el formulario que usas para tomar los datos.
Lo que si se puede decir es que una regla del buen diseño expresa que si tienes dos tablas con los mismos datos, sin importar su origen, tienes un serio error de diseño de sistema y de estructura de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: php, select, tabla
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 22:07.