Foros del Web » Programando para Internet » PHP »

Problemas con consulta usando mysql_result()

Estas en el tema de Problemas con consulta usando mysql_result() en el foro de PHP en Foros del Web. Hola quetal, estoy realizando una consulta a una BD con la siguiente sentencia Cita: $query = mysql_query("SELECT id_solicitud FROM solicitudes_radicadas ORDER BY id_solicitud DESC LIMIT ...
  #1 (permalink)  
Antiguo 25/10/2007, 23:49
Avatar de d-m-k  
Fecha de Ingreso: mayo-2007
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 1
Problemas con consulta usando mysql_result()

Hola quetal,

estoy realizando una consulta a una BD con la siguiente sentencia

Cita:
$query = mysql_query("SELECT id_solicitud FROM solicitudes_radicadas ORDER BY id_solicitud DESC LIMIT 0 , 1");
Lo que quiero hacer es consultar el id_solicitud de una tabla llamada solicitudes_radicadas para poder obtener el ultimo registro insertado y asi calcular el proximo consecutivo a insertar.

Cita:
$id_consecutivo = mysql_result($query, 0, "id_solicitud");
$id_consecutivo += 1;
el problema que tengo es que 2 de cada cinco consultas me estan generando el siguiente error.

"Warning: mysql_result(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\solicitud2\clases\clases.php on line 579
1"


La verdad no he podido identificar la causa del error, tambien intente mediante la funcion mysql_free_result(), que libera memoria despues de realizada la consulta y me sigue saliendo el error.

Habra alguna manera para poder solventar sin problemas la consulta y hallar el consecutivo correctamente...?

o talvez es mejor modificar el script que se genera en la sentencia $query, para realizar la operacion directamente en dicha consulta?.


Gracias.
  #2 (permalink)  
Antiguo 26/10/2007, 00:06
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Problemas con consulta usando mysql_result()

Prueba con esto:
Código PHP:
$sql "SELECT id_solicitud FROM solicitudes_radicadas ORDER BY id_solicitud DESC LIMIT 1";
$result mysql_query($sql);
$id_consecutivo mysql_result($result0"id_solicitud"); 
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 26/10/2007, 00:12
Avatar de d-m-k  
Fecha de Ingreso: mayo-2007
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 1
Re: Problemas con consulta usando mysql_result()

Hey marvin gracias por la respuesta, pero lamentablemente aun no me funciona.. no se que podria hacer para poder obtener el consecutivo y sumarle 1 directamente desde la sentencia.


Gracias
  #4 (permalink)  
Antiguo 26/10/2007, 00:17
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Problemas con consulta usando mysql_result()

Trata con mysql_fetch_...

Asi como:
Código PHP:
$sql "SELECT id_solicitud FROM solicitudes_radicadas ORDER BY id_solicitud DESC LIMIT 1";
$result mysql_query($sql);
if(
$data mysql_fetch_array($result)){
    
$id_consecutivo $data['id_solicitud'];
    
$id_consecutivo++;

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 26/10/2007, 00:26
Avatar de d-m-k  
Fecha de Ingreso: mayo-2007
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 1
Re: Problemas con consulta usando mysql_result()

Bueno marvin, pues al parecer obtengo el mismo resultado tambien intente cerrrar la conexion y volverla a abrir... mediante mysql_close(); y luego llamando al archivo de conexion mediante un include_once, pero me sale lo mismo....

No se si talvez el problema que tengo sea de sesiones o cookies... sin embargo voy a seguir mirando a ver...


Gracias
  #6 (permalink)  
Antiguo 26/10/2007, 00:29
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Problemas con consulta usando mysql_result()

Puedes poner la query que estas ejecutando aca ?
y agregale unos or die(mysql_error()) para saber si se cae en algun lado.

Esop!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 26/10/2007, 00:38
Avatar de d-m-k  
Fecha de Ingreso: mayo-2007
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 1
De acuerdo Re: Problemas con consulta usando mysql_result()

Pues marvin que podria decirte... el error que me arroja es este...


Warning: mysql_result(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\solicitud2\clases\clases.php on line 586,


pero no se si estoy ejecutando la sentencia bien
Código PHP:

$sql 
"SELECT id_solicitud FROM solicitudes_radicadas ORDER BY id_solicitud DESC LIMIT 1";
  if (
$sql){
    
$result mysql_query($sql);
    
$id_consecutivo mysql_result($result0"id_solicitud");
    echo 
$id_consecutivo;    
  }else {
    echo 
"este es el error que se genera --> " mysql_error($sql);
  } 
  #8 (permalink)  
Antiguo 26/10/2007, 01:02
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Problemas con consulta usando mysql_result()

Ponle esto:
Código PHP:
$sql "SELECT id_solicitud FROM solicitudes_radicadas ORDER BY id_solicitud DESC LIMIT 1"
  if (
$sql){ 
    
$result mysql_query($sql) or die("Error: ".mysql_error()); 
    
$id_consecutivo mysql_result($result0"id_solicitud") or die("Error: ".mysql_error()); 
    echo 
$id_consecutivo;     
  }else { 
    echo 
"este es el error que se genera --> " mysql_error($sql); 
  } 
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #9 (permalink)  
Antiguo 26/10/2007, 01:11
 
Fecha de Ingreso: octubre-2007
Ubicación: Madrid, España
Mensajes: 221
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Problemas con consulta usando mysql_result()

Esta es mi propuesta:
Código PHP:
$consulta "SELECT id_solicitud FROM solicitudes_radicadas ORDER BY id_solicitud DESC LIMIT 0 , 1";
mysql_select_db("prueba"$localhost);
$resultado mysql_query($consulta) or die(mysql_error());
$linea mysql_fetch_row($resultado);
$id_consecutivo $linea[0] + 1;
echo 
"resultado: ".$id_consecutivo
  #10 (permalink)  
Antiguo 26/10/2007, 13:14
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 225
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: Problemas con consulta usando mysql_result()

por q no usas mysql_num_rows es mejor recojes lo que tienes y le sumas 1 o creea una tabla de consecutivos y tomas el valor de hay de esa forma no sobrecargaras el mysql cuando tengas mucho contenido en la base de datos
  #11 (permalink)  
Antiguo 26/10/2007, 13:22
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Problemas con consulta usando mysql_result()

Está diciendo que mysql_query no devuelve un resource MySQL result, eso sólo pasa cuando la consulta falla, es decir que hay un error en la consulta... fijate que te devuelve mysql_error después de una consulta fallida, probablemente te ayude a encontrar tu error =)
  #12 (permalink)  
Antiguo 26/10/2007, 18:16
Avatar de d-m-k  
Fecha de Ingreso: mayo-2007
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 1
Re: Problemas con consulta usando mysql_result()

Cita:
Está diciendo que mysql_query no devuelve un resource MySQL result, eso sólo pasa cuando la consulta falla, es decir que hay un error en la consulta... fijate que te devuelve mysql_error después de una consulta fallida, probablemente te ayude a encontrar tu error =
Seppo, la consulta si se realiza y pues todo esta bien... el problema es que 2 de cada cinco consultas generan un error.

bueno muchachos ya puede resolver el pequeño inconveniente usando mysql_num_rows y realizando una operacion matematica directamente sobre la consulta generando un campo de auxiliar como alias...


Código PHP:
//Aqui llamo al archivo de conexion. este archivo contiene ya definida la conexion.

include_once ("conex.php"

//Aqui evaluo si el consecutivo esta en cero
$sql mysql_query("select *from solicitudes_radicadas"); 

//si está en cero entonces deja la variable $id_consecutivo en 1.
 
if (mysql_num_rows($sql) == 0){
   
$id_consecutivo 1;

//sino entonces realiza una consulta y le suma 1 al resultado obtenido y lo
//deja en un campo alterno --> consecutivo
}else{
   
$sql mysql_query("select id_solicitud + 1 as consecutivo from  solicitudes_radicadas order by id_solicitud DESC LIMIT 1");

//Aqui le asigno el resultado de la consulta a la variable $id_consecutivo.
   
$id_consecutivo mysql_result($sql0"consecutivo");
}

//Aqui lo muestro
 
echo "Solicitud No. " $id_consecutivo "<br>"
Gracias, las pistas que dejaron me sirvieron. hasta la próxima xD.
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 19:29.