Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con cálculo último valor campo autoincrementado

Estas en el tema de Problema con cálculo último valor campo autoincrementado en el foro de PHP en Foros del Web. Buenas tardes. Tengo dos tablas dentro de la misma bbdd que se llaman sesiones y medidas. Dentro de sesiones tengo un campo que se llama ...
  #1 (permalink)  
Antiguo 25/02/2013, 12:44
 
Fecha de Ingreso: febrero-2013
Mensajes: 5
Antigüedad: 11 años, 1 mes
Puntos: 0
Problema con cálculo último valor campo autoincrementado

Buenas tardes.


Tengo dos tablas dentro de la misma bbdd que se llaman sesiones y medidas. Dentro de sesiones tengo un campo que se llama sesionId que es autoincremental. Pues bien, quiero copiar el valor de este campo para poder introducirlo después en la tabla medidas.

He probado un huevo de posibilidades. Utilizando: MAX, last_insert_id...

También he hecho el siguiente código:

Código PHP:
//Introduzco los valores de la tabla sesiones
        
$db $this->getDBO();            
        
$query "INSERT INTO #__sesiones (medicoId,pacienteId,IdSesionMedico,fecha,hora,observaciones) VALUES ('".$medico."','".$pacienteId."','".$sesion."','".$fecha."','".$hora."','".$observaciones."')";
        
$db->setQuery($query);
        
$db->query();
    
        
//Obtengo el valor del id
        
$db=&$this->getDBO();
        
$db->setQuery("SELECT count(sesionId) FROM #__sesiones");
        
$datos=$db->loadResult();
        
$db=&$this->getDBO();
        
$db->setQuery("SELECT sesionId FROM #__sesiones");
        
$difsesiones=$db->loadObjectList();
        
$id=0;
        for(
$i=0;$i<$datos;$i++)
            {
            if(
$sesion==$difsesiones[$i]->sesion)
                
$id=$sesion;
            }
        
        
        
        
/*$query = "SELECT max(sesionId) from #__sesiones";
        $db=$this->getDBO();
           $db->setQuery($query);
        $id=$db->loadResult();*/
        
        //Introduzco los datos de las tablas medidas
        
$db $this->getDBO();
        
$medida=1;
        
        
$query "INSERT INTO #__medidas (sesionId,NumeroMedida,PAS,PAD) VALUES ('".$id."','".$medida."','".$PAS1."','".$PAD1."')";
        
$db->setQuery($query);
        
$db->query(); 
He vist múltiples páginas de aquí pero no consigo hacerlo funcionar.

Gracias de antemano.
  #2 (permalink)  
Antiguo 25/02/2013, 12:56
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: Problema con cálculo último valor campo autoincrementado

Primero: En este foro no tratamos temas de programación. Si tu pregunta apunta a una solución por PHP, te paso el post al foro correcto, de lo contrario tendré que eliminar el código de PHP que has posteado, dejando sólo SQL (normas del Foro de BBDD).

Sobre lo que usaste:
- MAX() funciona si y sólo si existen datos en la tabla. Si la tabla está vacía, no devuelve registros.
- LAST_INSERT_ID() devuelve datos sólo si se ejecuta inmediatamente luego del INSERT (momento en que también puedes obtener el valor con funciones del propio lenguaje de programación usado). Fuera de esa situación, los datos devueltos no resultan válidos.

Existe un truco posible para resolver el caso y que recientemente le propuse a otro forista en el Foro de PHP (http://www.forosdelweb.com/f18/mysql...o-1-a-1038991/)
Fijate si te sirve.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 25/02/2013 a las 13:32
  #3 (permalink)  
Antiguo 25/02/2013, 13:06
 
Fecha de Ingreso: febrero-2013
Mensajes: 5
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Problema con cálculo último valor campo autoincrementado

Siento haberme equivocado de subforo. ¿Me los mueves, tú?

Por otro lado, gracias por tu respuesta. Le voy a echar un ojo a la solución que le diste al compañero.

Gracias
  #4 (permalink)  
Antiguo 25/02/2013, 13:32
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: Problema con cálculo último valor campo autoincrementado

Movido a PHP.
__________________
¿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 26/02/2013, 08:36
 
Fecha de Ingreso: febrero-2013
Mensajes: 5
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Problema con cálculo último valor campo autoincrementado

He probado con el siguiente código y tampoco funciona.

Código PHP:
$db $this->getDBO();            
        
$query "INSERT INTO #__sesiones (medicoId,pacienteId,IdSesionMedico,fecha,hora,observaciones) VALUES ('".$medico."','".$pacienteId."','".$sesion."','".$fecha."','".$hora."','".$observaciones."')";
        
$db->setQuery($query);
        
$db->query();
        
$id=$db->insertid(); 
Ayuda por favor!
  #6 (permalink)  
Antiguo 26/02/2013, 09:27
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: Problema con cálculo último valor campo autoincrementado

¡Cuidado con los caracteres que se usan en los nombres de objetos de bases de datos!
Cita:
9.5. Sintaxis de comentarios

El servidor MySQL soporta tres estilos de comentario:

* Desde un carácter '#' hasta el fin de la línea.

* Desde una secuencia '-- ' hasta el final de la línea.
En otras palabras, MySQL puede estar ignorando todo lo que está después del INTO...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 26/02/2013, 11:31
 
Fecha de Ingreso: febrero-2013
Mensajes: 5
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Problema con cálculo último valor campo autoincrementado

Ya está solucionado. Me faltaba un campo autoincremental en la segunda tabla.

Gracias

Etiquetas: campo, insert, mysql, select, tabla, valor
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 16:34.