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

Como incrementar campo en tabla,no es auto_increment

Estas en el tema de Como incrementar campo en tabla,no es auto_increment en el foro de Mysql en Foros del Web. Tengo una tabla con llave foranea que se actualiza en cascada, pero al momento de introducir un registro el id_producto (q es la llave foranea, ...
  #1 (permalink)  
Antiguo 23/03/2007, 12:46
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Como incrementar campo en tabla,no es auto_increment

Tengo una tabla con llave foranea que se actualiza en cascada, pero al momento de introducir un registro el id_producto (q es la llave foranea, int) no se incrementa, hice un contador pero no me funciona,el tipo de dato es el mismo tanto para uno como para otro campo de las tablas respectivas. Como le hago para que se incremente ese campo ??? También quise poner un auto_increment pero pues solo un campo lo puede tener y ya lo tengo con la primary key. En la tabla padre en el campo id_producto todo va bién porque ese campo está como auto_increment.

Espero puedan ayudarme.
  #2 (permalink)  
Antiguo 23/03/2007, 15:35
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Exclamación Re: Como incrementar campo en tabla,no es auto_increment

Noooo y nunca t va a funcionar, por que??, por que no puedes autoincrementer y "contabilizar" llaves foràneas!!!!, esas llaves dependen de lo que venga de su tabla padre. Es decir, tienes una tabla departamento y otra tabla ciudad, correcto?? En la tabla ciudad llamas el còdigo del departamento:

1. Y si en departamento sòlo tienes 3 campos???
2. No puedes automatizar por medio de un contador la entrada de llaves foràneas por que no sabes en ese momento a quien la pertencerà el registro.

Espero me hayas entendido.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 28/03/2007, 19:02
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: Como incrementar campo en tabla,no es auto_increment

Hola:

Pero entonces porque no me actualiza el campo de la tabla hijo(desc_prod) como la padre(producto), en la tabla hijo en el campo id_producto(tipo dato int) siempre me pone un 1, pero se supone que deben de ser los mismos datos para un campo y otro no? porque al momento de crear la tabla al campo de la llave foranea le puse ON UPDATE CASCADE, etonces no se porque siempre me pone 1 como dato.

Thanks !!!
  #4 (permalink)  
Antiguo 29/03/2007, 20:35
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Como incrementar campo en tabla,no es auto_increment

Hola Nantcy.

Posteame las tablas y las consultas que estas haciendo, para mirarlas y asì descubrir posibles errores!

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 30/03/2007, 11:30
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: Como incrementar campo en tabla,no es auto_increment

Hola:

create table producto
(
id_producto int auto_increment,
id_categoria int not null,
tipo_producto varchar(60),
nombre_prod varchar(60),
primary key(id_producto)
);

create table desc_prod
(
id_desc_prod int auto_increment,
id_producto int not null,
descripcion varchar(200),
precio_fijo float,
precio_min float,
precio_fin float,
precio_oferta float,
caract_tecnolog varchar(200),
fecha_ingre date,
fecha_venta date,
tiempo_ofer time,
cant_ofer int,
primary key(id_desc_prod),
foreign key(id_producto) references producto(id_producto) on update cascade
);

La consulta la tengo asi:

Código PHP:
function agregar()
 {
  echo 
"<form name=ag method=post action=carrocomp.php>";
  echo 
"<input name=agree type=submit id=agree value=Agregar target=_blank>";
  echo 
"</form>";
 } 
      
$link=mysql_connect ("localhost","root""") or die('No se ha podido Conectar');
      if(
$link==true)
       {      
        
mysql_select_db("tienda") or die("No se pudo tener acceso a la Base de Datos");
       
$trozo=explode(" ",$busqueda);
        
$numero=count($trozo);
        
$numRegis=0;
         if(
$numero==1)
           {
            
$rescons="Select nombre_prod,tiempo_ofer,caract_tecnolog,descripcion From producto, desc_prod WHERE producto.id_producto=desc_prod.id_desc_prod LIKE '%$busqueda%' Order By nombre_prod Desc";
            
$resquery=mysql_query($rescons);
            echo 
mysql_errno().": ".mysql_error()."<BR>";
            while(
$filas=mysql_fetch_array($resquery))
              {
              if(
$filas["nombre_prod"] != '')
                {
                 
$nombre=$filas["nombre_prod"];
                }
                 if(
$filas["descripcion"] != '')
                      {
                           
$descrip=$filas["descripcion"];
                      }  
                       if(
$filas["caract_tecnolog"] != '')
                            {
                              
$caract=$filas["caract_tecnolog"];                              
                            }
              
$numRegis++; 
             } 
           }
           
         if(
$numero>1)
          {
          
//HAY QUE CHECAR EL ADD FULLTEXT
           
$rescons="Select nombre_prod,tiempo_ofer,caract_tecnolog,descripcion MATCH(nombre_prod) AGAINST('$busqueda') From producto, desc_prod Where MATCH(nombre_prod) AGIANST('$busqueda') Order By nombre_prod Desc"
           
$resquery=mysql_query($rescons);
           echo 
mysql_errno().": ".mysql_error()."<BR>";
               while(
$filas=mysql_fetch_array($resquery)) 
             {
              if(
$filas["nombre_prod"] != '')
                {
                 
$nombre=$filas["nombre_prod"];
                 
//$numRegis++;
                
}
                 elseif(
$filas["descripcion"] != '')
                      {
                           
$descrip=$filas["descripcion"];
                      }  
                       elseif(
$filas["caract_tecnolog"] != '')
                            {
                              
$caract=$filas["caract_tecnolog"];
                            }
              
$numRegis++;
             } 
          } 
Espero tu ayuda Gracias !!!!
  #6 (permalink)  
Antiguo 30/03/2007, 18:32
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Como incrementar campo en tabla,no es auto_increment

Hola Nantcy.

Si pruebas tu db sin còdigo de por medio, es decir, si haces pruebas directamente desde mysql??, lo has hecho?

Por lo que veo en tu còdigo y en tus tablas todo parece normal, tal vez, como t digo si ejecutas directamente tu proceso a mysql, veràs si es php o mysql, otra cosa, ve haciendo echo's para ver como va el proceso en tu archivo.

Y, a modo de consejo , no mezcles html con php, son cosas totalmente diferentes. Html aparte y php aparte.
Cita:
echo "<form name=ag method=post action=carrocomp.php>";
echo "<input name=agree type=submit id=agree value=Agregar target=_blank>";
echo "</form>";
Saludosy suerte!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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:25.