Foros del Web » Programando para Internet » PHP »

Mostrar Valor de un SP

Estas en el tema de Mostrar Valor de un SP en el foro de PHP en Foros del Web. Hola a todos como están veran tengo este SP para la Insercion el cual me devuelve el ID del registro asi @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: ...
  #1 (permalink)  
Antiguo 23/11/2015, 13:05
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Mostrar Valor de un SP

Hola a todos como están veran tengo este SP para la Insercion el cual me devuelve el ID del registro asi
Código MySQL:
Ver original
  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_segpap_duplicar`(IN `jc_usuario_id_dp` INT(11),
  2. IN `jc_empresa_id_dp` INT(11),
  3. IN `jc_contacto_id_dp` INT(11),
  4. IN `jc_actividad_id_dp` INT(11),
  5. IN `seg_estatus_id_dp` INT(11),
  6. IN `seg_referencia_id_dp` INT(11),
  7. IN `seg_pap_fecha_requerimiento_dp` DATE,
  8. IN `seg_pap_fecha_ultimo_contac_dp` DATE, IN `seg_pap_fecha_proximo_contac_dp` DATE,
  9. IN `jc_unidad_negocio_id_dp` INT(11),
  10. IN `seg_pap_observaciones_dp` VARCHAR(500))
  11.  INSERT INTO seg_pap (jc_usuario_id,jc_empresa_id,jc_contacto_id,jc_actividad_id,seg_estatus_id,seg_referencia_id,seg_pap_fecha_requerimiento,seg_pap_fecha_ultimo_contac,
  12.                     seg_pap_fecha_proximo_contac,jc_unidad_negocio_id,seg_pap_observaciones)
  13.                     VALUES(jc_usuario_id_dp,jc_empresa_id_dp,jc_contacto_id_dp,jc_actividad_id_dp,seg_estatus_id_dp,seg_referencia_id_dp,seg_pap_fecha_requerimiento_dp,seg_pap_fecha_proximo_contac_dp,
  14.                     seg_pap_fecha_ultimo_contac_dp,jc_unidad_negocio_id_dp,seg_pap_observaciones_dp);
  15. SELECT LAST_INSERT_ID() seg_pap_id_dp;
en mi php funciona bien la inserción asi
Código PHP:
Ver original
  1. $query_pap_duplicar = "CALL sp_segpap_duplicar($dsp_usuario,$dsp_contactoempresa,$dsp_contacto,$dsp_actividad,$dsp_estatus,$dsp_referencia,'$dsp_fecharequerimiento','$dsp_fechaultimocontacto','$dsp_fechaproximocontacto',$dsp_unidadnegocio,'$dsp_observaciones')";
  2. mysql_query($query_pap_duplicar,$link)or die(mysql_error());
Ahora lo que quiero es el ID que devuelve el SP no se como hacerlo
  #2 (permalink)  
Antiguo 23/11/2015, 16:04
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Mostrar Valor de un SP

Saludo
Pues para eso asignar a una variable (por ej $rs) el resultado de
llamar a mysql_query, y luego a otra variable (por ej $row)
el resultado de llamar a mysql_fetch_assoc pasandole $rs como parámetro.
Finalmente, se podría hacer un echo a $row['seg_pap_id_dp'].

Código PHP:
Ver original
  1. $rs = mysql_query($query_pap_duplicar,$link)or die(mysql_error());
  2. $row = mysql_fetch_assoc($rs);
  3. echo 'seg_pap_id_dp es '.$row['seg_pap_id_dp'];
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 23/11/2015, 17:29
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: Mostrar Valor de un SP

Hola Y gracias por contestar funciona bien pero ahora me surgio otro problema pues ese Id que recoge del SP lo uso para otra consulta de inserción también y me muestra un error aqui mi codigo
Código PHP:
Ver original
  1. $query_pap_duplicar = "CALL sp_segpap_duplicar($dsp_usuario,$dsp_contactoempresa,$dsp_contacto,$dsp_actividad,$dsp_estatus,$dsp_referencia,'$dsp_fecharequerimiento','$dsp_fechaultimocontacto','$dsp_fechaproximocontacto',$dsp_unidadnegocio,'$dsp_observaciones')";
  2.   $dsp_query = mysql_query($query_pap_duplicar,$link)or die(mysql_error());
  3.   $dsp_row_query = mysql_fetch_assoc($dsp_query);
  4.   $dsp_id = $dsp_row_query['seg_pap_id_dp']; //aqui asigno el Id Devuelto po el SP
  5.   $query_pap_servicio_duplicar = "CALL sp_segpap_servicio_duplicar($dsp_id,$dsp_programa1,'$dsp_valorventa1')"; // Aqui agro otra Inserción en otra tabla llevando ese ID
  6.   mysql_query($query_pap_servicio_duplicar,$link)or die(mysql_error());
  7.   echo $query_pap_servicio_duplicar;
el erro que me muestra es este
Código MySQL:
Ver original
  1. commands out of sync you can't run this command now
no se si sea porque estoy usando multiples consultas
  #4 (permalink)  
Antiguo 23/11/2015, 21:42
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Mostrar Valor de un SP

Saludo.
Pues eso se da porque se quiere hacer otro llamado a un SP
sin liberar recursos primero.

Hay dos soluciones.

La primera, para mysql es ejecutar el primer SP,
cerrar por completo la conexión con mysql_free_result y mysql_close,
y reconectarse nuevamente para ejecutar el segundo SP.

La segunda es cambiarse a mysqli y usar
mysqli_next_result y mysqli_free_result en el intermedio de las dos operaciones.
(que deberías aprovechar pues mysql ya empieza a ser obsoleta)
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 24/11/2015, 08:59
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: Mostrar Valor de un SP

Muchas Gracias por tu respuesta si me pasara a mysqli como seria el cambio es la primera vez que huzo un SP en PHP
  #6 (permalink)  
Antiguo 24/11/2015, 10:37
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: Mostrar Valor de un SP

Hola probe con la libreria de mysql pero me sale un warnning con mysql_close
aquí mi codigo
Código PHP:
Ver original
  1. $query_pap_duplicar = "CALL sp_segpap_duplicar($dsp_usuario,$dsp_contactoempresa,$dsp_contacto,$dsp_actividad,$dsp_estatus,$dsp_referencia,'$dsp_fecharequerimiento','$dsp_fechaultimocontacto','$dsp_fechaproximocontacto',$dsp_unidadnegocio,'$dsp_observaciones')";
  2.   $dsp_query = mysql_query($query_pap_duplicar,$link)or die(mysql_error());
  3.   $dsp_row_query = mysql_fetch_assoc($dsp_query);
  4.   mysql_free_result($dsp_query);
  5.   mysql_close($link);
  6.   $dsp_id = $dsp_row_query['seg_pap_id_dp'];
  7.   $query_pap_servicio_duplicar = "CALL sp_segpap_servicio_duplicar($dsp_id,$dsp_programa1,'$dsp_valorventa1')";
  8.   mysql_query($query_pap_servicio_duplicar,$link)or die(mysql_error());
me sale este warnning
Código PHP:
Ver original
  1. <b>Warning</b>:  mysql_query(): 7 is not a valid MySQL-Link resource in
no se que este haciendo mal
  #7 (permalink)  
Antiguo 24/11/2015, 21:09
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Mostrar Valor de un SP

Saludo
Eso es porque al llamar a mysql_close la variable $link pierde la conexión.
La solución es luego del close, volver a realizar el connect y seleccionar la db.

En cuanto a mysqli, es cuestión de cambiar las funciones de mysql a mysqli,
varia un poco la conexión, pues recibe como cuarto parámetro la bd,
es decir, ya no se haría el select_db y en el mysqli_query va primero la conexión
y luego el query, es decir, al contrario que mysql_query, el cambio no es muy
traumático siempre y cuando tengas el código centralizado.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: fecha, mysql, registro, select, sql, 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 07:25.