Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

ultimo id ingresado en una tabla

Estas en el tema de ultimo id ingresado en una tabla en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola amigos, les tengo la siguiente consulta, espero me puedan ayudar. tengo dos funciones que reciben parametros desde el controlador, pero una de las funciones ...
  #1 (permalink)  
Antiguo 28/05/2010, 17:02
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 17 años, 2 meses
Puntos: 1
De acuerdo ultimo id ingresado en una tabla

Hola amigos, les tengo la siguiente consulta, espero me puedan ayudar.
tengo dos funciones que reciben parametros desde el controlador, pero una de las funciones necesita el ultimo id que genero la primera funcion al ingresar el dato

mi primera funcion se encarga de ingresa data a la tabla cliente, al ingresar un dato se autoincrementa el registro necesito usar este ID para mi segunda funcion

hice una tercera funcion antes de ejecutar la segunda funcion y este es el codigo:

function ultimoId(){
$obj = new MySQL();
$consulta=$obj->consulta("SELECT MAX(id_prospecto) FROM cliente");
$num_total_registros=$obj->num_rows($consulta);
if($num_total_registros>0)
{
$total_fila=$obj->num_files($consulta);
for ($i = 0; $i < $total_fila; $i++){
$dt[$i]=mysql_field_name($consulta, $i);
}
while ($registro = $obj->fetch_row($consulta)){
foreach($registro as $numero=>$valor){
$this->$dt[$numero]=$valor;}
}
return true;
}
else{
return false;
}
}


mi gran pregunta es como uso el resultado de esta funcion en la segunda funcion que necesita el ULTIMO_ID

mi segunda funcion es la siguiente:

tambien recibe parametros desde el controlador:

function agregarUsuarios($id_agencia,$id_estatus,$ON_OFF){
$obj = new MySQL();
$consulta=$obj->consulta("insert into usuarios (AQUI NECESITO EL ULTIMO ID,id_agencia,id_estatus,ON_OFF) values('$id_cliente','$id_agencia','$id_estatus','$ON_OFF')");
$num_total_registros=$obj->num_rows($consulta); // ejecuta la consulta para traer al cliente
return $consulta .'<br/>Registro Ingresado Satisfactoriamente '.$obj->getAffect($consulta);

espero me puedan ayudar con esto gracias muchaachos
  #2 (permalink)  
Antiguo 28/05/2010, 17:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: ultimo id ingresado en una tabla

Si estás usando la librería MySQL existe una función que toma el último id insertado mysql_insert_id. La debes llamar justamente después que se hizo el insert. Algo así
Código PHP:
Ver original
  1. mysql_query('aquí va el insert') or die(mysql_error());
  2. $lastId = mysql_insert_id($variable_que_guarda_la_conexion_a_la_base_de_datos);
Si estás usando PDO puedes usar el método lastInsertId.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 28/05/2010, 18:02
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 17 años, 2 meses
Puntos: 1
De acuerdo Respuesta: ultimo id ingresado en una tabla

hola antes que nada muchisimas gracias por responder.

correctamento puedo usar el metodo de una funcion que tengo en mi clase myslq que es asi:
function ultimo_id($consulta)
{
return @mysql_insert_id($consulta);
}

esto perfecto

y lo ejecuto en mi funcion donde inserto el primer registro asi:

$obj = new MySQL();
$consulta=$obj->consulta("CALL insert_prospectos('$nombre','$apellido','$nro_iden tificacion','$fecha_nacimiento','$id_tipo_prospect o','$id_sexo','$id_estado_civil','$fecha_creacion_ prospecto','$id_estatus','$ON_OFF')")or die (mysql_error());
$ulmimoId = $obj->ultimo_id($consulta);
return $consulta;

hasta ahi perfecto ahora mi grandisimo problema es como meto el valor de $ulmimoId en mi segunda funcion para hacer el segundo insert con el valor que contiene esa variable eso es lo que no se hacer y me estoy jalando los pelos no se como trabajar con esa variable dentro de mi otra funcion.

me podrias orientar por favor.
  #4 (permalink)  
Antiguo 28/05/2010, 18:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: ultimo id ingresado en una tabla

Para tomar el valor de una función con return lo haces, así como mencionas.
Código PHP:
Ver original
  1. function foo(){
  2.     return 'bar';
  3. }
  4. function blaz(){
  5.     $candy = foo();
  6.     return $candy;
  7. }
  8. echo blaz();
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 28/05/2010, 18:45
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 17 años, 2 meses
Puntos: 1
De acuerdo Respuesta: ultimo id ingresado en una tabla

asi lo estoy haciendo pero me da error en la variable

function agregarProspecto($nombre,$apellido,$nro_identifica cion,$fecha_nacimiento,$id_tipo_prospecto,$id_sexo ,$id_estado_civil,$fecha_creacion_prospecto,$id_es tatus,$ON_OFF)
{


$obj = new MySQL();
$consulta=$obj->consulta("CALL insert_prospectos('$nombre','$apellido','$nro_iden tificacion','$fecha_nacimiento','$id_tipo_prospect o','$id_sexo','$id_estado_civil','$fecha_creacion_ prospecto','$id_estatus','$ON_OFF')")or die (mysql_error());
$ulmimo=$obj->ultimo_id($consulta);///ESTE ES EL ULTIMO ID INGRESADO EN LA TABLA
return $ulmimo;


}

function agregarUsuarios($id_agencia,$id_estatus,$ON_OFF)

{

$obj = new MySQL();
$valor=agregarProspecto() ///ESTE ES EL VALOR QUE ME ESTOY TRAYENDO DE LA PRIMERA FUNCION EL ULTIMO ID
$consulta=$obj->consulta("CALL insert_usuarios('$valor','$id_agencia','$id_estatus','$ON_OFF')")or die (mysql_error());
return $consulta .'Registro Ingresado Satisfactoriamente ';

}

Última edición por banrey; 29/05/2010 a las 08:08
  #6 (permalink)  
Antiguo 28/05/2010, 22:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: ultimo id ingresado en una tabla

Se puede saber que error da?
  #7 (permalink)  
Antiguo 29/05/2010, 08:18
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 17 años, 2 meses
Puntos: 1
De acuerdo Respuesta: ultimo id ingresado en una tabla

Hola GatorV, como estas.

Amigo este es el erro que me muestra por pantalla

Parse error: syntax error, unexpected T_VARIABLE in C:\AppServ\www\proyecto\clases\clases_usuarios.php on line 113

en la linea 113 tengo este cod:

110.--- function agregarUsuarios($id_agencia,$id_estatus,$ON_OFF){
111.---$obj = new MySQL();
112.---$id_prospecto=agregarProspecto()
113.---$consulta=$obj->consulta("CALL insert_usuarios('$id_prospecto','$id_agencia','$id _estatus','$ON_OFF')")or die (mysql_error());
114.---return $consulta;


el error da al colocar la linea 112, que en teoria es el valor que me estoy trayendo de la primera funcion, algo estoy haciendo mal no se si es el return de la primera funcion o el llamado de la primera funcion en la segunda.

otra duda que tengo es estas funciones estan recibiendo parametros esto no podra ser el error tambien??

espero me puedas ayudar .

muchas gracias como siempre.

saludos.
  #8 (permalink)  
Antiguo 29/05/2010, 08:26
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 17 años, 2 meses
Puntos: 1
De acuerdo Respuesta: ultimo id ingresado en una tabla

probe colocandole un ; a la linea

112.--- $id_prospecto=agregarProspecto();

ya que el error que da era por eso, pero me da otro error que es el siguiente:

Fatal error: Call to undefined function agregarProspecto() in C:\AppServ\www\proyecto\clases\clases_usuarios.php on line 112

que podra ser????

  #9 (permalink)  
Antiguo 29/05/2010, 10:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: ultimo id ingresado en una tabla

Si la función pertenece a la misma clase tienes que usar $this->agregarProspecto()

Saludos.
  #10 (permalink)  
Antiguo 29/05/2010, 12:48
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 17 años, 2 meses
Puntos: 1
De acuerdo Respuesta: ultimo id ingresado en una tabla

correcto amigo y ya lo habia hecho pero tambien me da un error y es el siguiente

Warning: Missing argument 1 for usuarios::agregarProspecto(), called in C:\AppServ\www\proyecto\clases\clases_usuarios.php on line 112 and defined in C:\AppServ\www\proyecto\clases\clases_usuarios.php on line 102
  #11 (permalink)  
Antiguo 29/05/2010, 12:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: ultimo id ingresado en una tabla

Te esta diciendo que agregarProspecto() necesita un argumento, si tu programaste la funcion, tu debes de saber que argumento debes de pasarle.

Saludos.
  #12 (permalink)  
Antiguo 29/05/2010, 13:19
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 17 años, 2 meses
Puntos: 1
De acuerdo Respuesta: ultimo id ingresado en una tabla

si ya lo solvente el problema es que no habia inicializado las variables de la funcion. t etengo una consulta GatorV

es correcto que yo haga estoy para returnar el valor del ultimo id ingresado

$obj = new MySQL();
$consulta=$obj->consulta("CALL insert_prospectos('$nombre','$apellido','$nro_iden tificacion','$fecha_nacimiento','$id_tipo_prospect o','$id_sexo','$id_estado_civil','$fecha_creacion_ prospecto','$id_estatus','$ON_OFF')")or die (mysql_error());
$id=$obj->ultimo_id($consulta);
return $id;

es correcto que yo diga return $id;


para saber el valor que obtuve de hacer esto: $id=$obj->ultimo_id($consulta);

es correcto que haga esto GatorV
  #13 (permalink)  
Antiguo 29/05/2010, 16:17
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: ultimo id ingresado en una tabla

Puedes hacerlo así como también puedes en el return escribirlo directamente
Código PHP:
Ver original
  1. $id=$obj->ultimo_id($consulta);
  2. return $id;
  3.  
  4. //o
  5. return $obj->ultimo_id($consulta);
Lo que debes tener presente es si la variable la vas a usar más de una vez, en ese caso es bueno ingresar el resultado primero en una variable y luego llamar esa variable donde la necesites.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: ultimo, tablas
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 09:52.