Foros del Web » Programando para Internet » PHP »

Error al guardar

Estas en el tema de Error al guardar en el foro de PHP en Foros del Web. Hola, he desarrollado una web en Joomla en la que para ponerla online he tenido que modificar el php.ini de mi servidor virtual ya que ...
  #1 (permalink)  
Antiguo 07/05/2015, 16:22
 
Fecha de Ingreso: octubre-2010
Ubicación: Catalonia
Mensajes: 16
Antigüedad: 13 años, 6 meses
Puntos: 0
Error al guardar

Hola, he desarrollado una web en Joomla en la que para ponerla online he tenido que modificar el php.ini de mi servidor virtual ya que no admitía el phpmyadmin la importación de bases de datos de más de 2MB.

Realizo el proceso y todo está correcto aparentemente pero al guardar los cambios en un artículo me aparece el siguiente error:

Duplicate entry '0-0' for key 'PRIMARY' SQL=INSERT INTO `zc1ai_finder_links_terms0` (`link_id`, `term_id`, `weight`) SELECT 0, `term_id`, ROUND(SUM(`context_weight`), 8) FROM `zc1ai_finder_tokens_aggregate` WHERE `map_suffix` = '0' GROUP BY `term` ORDER BY `term` DESC

No soy nada experto ni en php ni en mysql o phpmyadmin y no tengo ni idea de lo que significa exactamente. Alguien podría ayudarme??
  #2 (permalink)  
Antiguo 08/05/2015, 00:35
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 9 meses
Puntos: 401
Respuesta: Error al guardar

Te esta duplicando, debes verificar el valor de auto_increment.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #3 (permalink)  
Antiguo 08/05/2015, 02:50
 
Fecha de Ingreso: octubre-2010
Ubicación: Catalonia
Mensajes: 16
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Error al guardar

Cita:
Iniciado por lauser Ver Mensaje
Te esta duplicando, debes verificar el valor de auto_increment.
Gracias por la respuesta. Donde? En el php.ini? Y que valor pongo o debería haber?
  #4 (permalink)  
Antiguo 08/05/2015, 06:36
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 al guardar

Mira, tu estás poniendo esto en el INSERT:
Código SQL:
Ver original
  1. INSERT INTO `zc1ai_finder_links_terms0` (`link_id`, `term_id`, `weight`)
  2. SELECT 0, `term_id`, ROUND(SUM(`context_weight`), 8)
  3. FROM `zc1ai_finder_tokens_aggregate`
  4. WHERE `map_suffix` = '0' GROUP BY `term` ORDER BY `term` DESC
A mi entender, estás suponiendo que un cero es NULL, y no es así. Un cero es un dato, una magnitud real, mientras que NULL es un estado de indefinición. No es lo mismo y para las bases de datos eso es crítico.
Cuando usas un AUTO_INCREMENT, la idea es NO PONER la columna, o bien poner NULL donde va ese valor. Al ponerle un cero (0) lo que haces es intentar insertar un dato valido más de una vez en un campo es que es PRIMARY KEY.
Y si recuerdas, los valores de una PK son únicos, irrepetibles, en cada tabla...
Lo pones así:
Código MySQL:
Ver original
  1. INSERT INTO `zc1ai_finder_links_terms0` (`link_id`, `term_id`, `weight`)
  2. SELECT NULL, `term_id`, ROUND(SUM(`context_weight`), 8)
  3. FROM `zc1ai_finder_tokens_aggregate`
  4. WHERE `map_suffix` = '0'
  5. GROUP BY `term`
  6. ORDER BY `term` DESC
O lo pones así:
Código MySQL:
Ver original
  1. INSERT INTO `zc1ai_finder_links_terms0` (`term_id`, `weight`)
  2. SELECT `term_id`, ROUND(SUM(`context_weight`), 8)
  3. FROM `zc1ai_finder_tokens_aggregate`
  4. WHERE `map_suffix` = '0'
  5. GROUP BY `term`
  6. ORDER BY `term` DESC
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 08/05/2015, 15:04
 
Fecha de Ingreso: octubre-2010
Ubicación: Catalonia
Mensajes: 16
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Error al guardar

Te agradezco la respuesta gnzsoloyo pero la cosa es que yo no he puesto nada. Yo tan solo he construido una web en Joomla en local, y una vez finalizada la he subido a un servidor que ya alberga diversas webs en joomla. En él he tenido que modificar el php.ini para poder importar bases de datos de más de 2MB, al hacerlo se queda como colgado y finalmente mensaje de tiempo excedido.

Compruebo si todo funciona y aparentemente es así hasta que descubro que al guardar artículos no lo hace y me aparece éste error. Yo no he puesto nada y no soy programador, te agradezco mucho tu ayuda pero no entiendo mucho las explicaciones...
  #6 (permalink)  
Antiguo 08/05/2015, 15:59
 
Fecha de Ingreso: octubre-2010
Ubicación: Catalonia
Mensajes: 16
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Error al guardar

De hecho al importar la base de datos me aparece el error 504 Gateway time-out
  #7 (permalink)  
Antiguo 08/05/2015, 16:21
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 al guardar

Cita:
Iniciado por simfomet Ver Mensaje
Te agradezco la respuesta gnzsoloyo pero la cosa es que yo no he puesto nada. Yo tan solo he construido una web en Joomla en local, y una vez finalizada la he subido a un servidor que ya alberga diversas webs en joomla. En él he tenido que modificar el php.ini para poder importar bases de datos de más de 2MB, al hacerlo se queda como colgado y finalmente mensaje de tiempo excedido.

Compruebo si todo funciona y aparentemente es así hasta que descubro que al guardar artículos no lo hace y me aparece éste error. Yo no he puesto nada y no soy programador, te agradezco mucho tu ayuda pero no entiendo mucho las explicaciones...
En primer lugar, lo que hayas hecho en el php.ini no tiene ninguna relación ni impacto en el error que recibes. Es algo completamente independiente, porque ese archivo controla parametros de PHP, pero NO controla el comportamiento de MySQL.

En segundo lugar, y fundamentalmente, si no sabes programar, tampoco sabes resolver el problema, por lo que mi sugerencia es que consigas a alguien que revise los fuentes hasta detectar dónde y por qué se produce el fallo. Es evidente que hay un bug escondido en alguna parte, ya sea provocado por alguna configuración de PHP, o por defectos de código.
En cualquiera de los casos, sin meter los dedos en los scripts de PHP no hay modo de saberlo... y sin conocimientos aunque no sea más que básicos, no podrás hacerlo, ni aunque te pudiésemos ayudar.
Partamos de la base que desconocemos como esta armado tu sitio, y ponernos a revisar todo lo que contiene no es una tarea para hacer como hobby.

Por mi parte, ya te expliqué cuál es el origen del error (y de eso estoy muy seguro), por lo que lo que hay que hacer es ver donde esta ese código en los scripts, y desde donde se lo llama y por qué está llegando un valor inválido.
Pero esa sería tu tarea. No sé si te animas a hacerlo...
__________________
¿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: mysql, select, sql
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 11:23.