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

No se envian los datos, no aumenta el ID de la noticia

Estas en el tema de No se envian los datos, no aumenta el ID de la noticia en el foro de Mysql en Foros del Web. Buenas, tengo una página hecha con Drupal (pero lo posteo acá porque es un tema de MySQL que metí mano y empezó a fallar) El ...
  #1 (permalink)  
Antiguo 06/06/2008, 07:53
Avatar de cauly  
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires
Mensajes: 726
Antigüedad: 22 años, 2 meses
Puntos: 0
Exclamación No se envian los datos, no aumenta el ID de la noticia

Buenas, tengo una página hecha con Drupal (pero lo posteo acá porque es un tema de MySQL que metí mano y empezó a fallar)

El tema es así: en Drupal hay una tabla para guardar datos de las noticias que se envían (id de la noticia, id de la revisión de la noticia, título de la noticia, fecha de creada, si está activa, etc) la tabla esta se llama "node" (hay otra que guarda el cuerpo de la noticia); como cuando se agrega una noticia se insertan los datos en ambas tablas (la otra se llama node_revision; donde va el cuerpo de la noticia).

El tema es que cuando quiero agregar una noticia esta no se envía y me sale este error:

Código PHP:
Duplicate entry '0' for key 2 queryINSERT INTO node (vidtypelanguagetitleuidstatuscreatedchangedcommentpromotemoderatestickytnidtranslateVALUES (0'story''es''Nuevo firmware bla bla DNIe'2015012126765401212676540010000in /home/publicas/public_html/includes/common.inc on line 3303. 
Ahí se ve que el valor de "vid" que inserta es "0" (en el error) y debería ser un número que va creciendo.

Y la estructura de la tabla es esta:

Código PHP:
CREATE TABLE IF NOT EXISTS `node` (
  `
nidint(10unsigned NOT NULL auto_increment,
  `
vidint(10unsigned NOT NULL default '0',
  `
typevarchar(32NOT NULL default '',
  `
titlevarchar(255NOT NULL default '',
  `
uidint(11NOT NULL default '0',
  `
statusint(11NOT NULL default '1',
  `
createdint(11NOT NULL default '0',
  `
changedint(11NOT NULL default '0',
  `
commentint(11NOT NULL default '0',
  `
promoteint(11NOT NULL default '0',
  `
moderateint(11NOT NULL default '0',
  `
stickyint(11NOT NULL default '0',
  `
languagevarchar(12NOT NULL default '',
  `
tnidint(10unsigned NOT NULL default '0',
  `
translateint(11NOT NULL default '0',
  
PRIMARY KEY  (`nid`),
  
UNIQUE KEY `vid` (`vid`),
  
KEY `node_type` (`type`(4)),
  
KEY `uid` (`uid`),
  
KEY `node_moderate` (`moderate`),
  
KEY `node_promote_status` (`promote`,`status`),
  
KEY `node_created` (`created`),
  
KEY `node_changed` (`changed`),
  
KEY `node_status_type` (`status`,`type`,`nid`),
  
KEY `nid` (`nid`),
  
KEY `tnid` (`tnid`),
  
KEY `translate` (`translate`),
  
KEY `node_title_type` (`title`,`type`(4))
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7322 
Lo curioso es que en local tengo instalado lo mismo con las tablas iguales y se envía la noticia bien
  #2 (permalink)  
Antiguo 06/06/2008, 11:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: No se envian los datos, no aumenta el ID de la noticia

¿Cómo generas el valor de vid? Lo que veo es que se trata de un número, pero no es autoincrementable (no puede serlo ya que en una tabla sólo puede haber 1 autoincrementable, en este caso la primary key). Parece como si el código que te lo genera estuviera fallando y al no trasladar dato, carga el valor por defecto, el 0, y puesto que se trata de una valor UNIQUE, cuando tiene un 0 ya no te permite guardar otro.
El problema es que no pasa el valor. Tendrías que mostrar el código que lo genera.
  #3 (permalink)  
Antiguo 07/06/2008, 15:33
Avatar de cauly  
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires
Mensajes: 726
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: No se envian los datos, no aumenta el ID de la noticia

Gracias jurena por responder, mirá al final corté por lo sano y actualicé el sitio desde cero porque en la actualización anterior me salieron mil errores y tuve que modificar mucho a mano de las tablas de la base de datos; ahora anda todo bien. El valor ese VID aparece en varias tabla y andá a saber en cual estaba mal.

Saludos
  #4 (permalink)  
Antiguo 08/06/2008, 07:38
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 2 meses
Puntos: 4
Respuesta: No se envian los datos, no aumenta el ID de la noticia

estabas ingresandp un cero ? y ovbiamente se repite..

insertalo siempre como ''

:P
__________________
Roberto Osses Elgueta
Senior Web Developer
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 02:05.