Foros del Web » Programando para Internet » PHP »

Consulta a base de datos no devuelve valores

Estas en el tema de Consulta a base de datos no devuelve valores en el foro de PHP en Foros del Web. Tengo una consulta a una base de datos por medio de una función, pero no me devuelve valor algunoa. La llamada a la función es ...
  #1 (permalink)  
Antiguo 02/09/2008, 06:31
Avatar de lyoung  
Fecha de Ingreso: noviembre-2005
Ubicación: Montevideo, la gran capit
Mensajes: 139
Antigüedad: 19 años
Puntos: 0
Consulta a base de datos no devuelve valores

Tengo una consulta a una base de datos por medio de una función, pero no me devuelve valor algunoa.

La llamada a la función es la siguiente:
Código PHP:
$autor_articulo=elige_autor($row_Articulos['id_autor']) 
La función es la siguiente:
Código PHP:
function elige_autor($autor)
{
$query_elautor "SELECT * FROM autor where id_autor=".$autor;
$elautor mysql_query($query_elautor$cnarticulos) or die(mysql_error());
$row_elautor mysql_fetch_assoc($elautor);
$totalRows_elautor mysql_num_rows($elautor);
return 
$row_elautor['nombre_autor'];

Ya confirmé por medio de un echo que id_autor sea un valor válido
comprobé incluso que en phpmyadmin que funcione la consulta
__________________
Todo se ve mejor si le miramos el lado positivo.
  #2 (permalink)  
Antiguo 02/09/2008, 06:36
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 16 años, 3 meses
Puntos: 7
Respuesta: Consulta a base de datos no devuelve valores

¿no te devuelve error mysql en la línea de mysql_num_rows?

¿el campo nombre_autor está bien definido en la tabla?
  #3 (permalink)  
Antiguo 02/09/2008, 06:40
Avatar de lyoung  
Fecha de Ingreso: noviembre-2005
Ubicación: Montevideo, la gran capit
Mensajes: 139
Antigüedad: 19 años
Puntos: 0
Respuesta: Consulta a base de datos no devuelve valores

No devuelve error alguno.
Ni datos tampoco.

Los campos están bien, de hecho, copiando la consulta en phpmyadmin aparece correctamente todo.
__________________
Todo se ve mejor si le miramos el lado positivo.
  #4 (permalink)  
Antiguo 02/09/2008, 06:44
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años, 7 meses
Puntos: 28
Respuesta: Consulta a base de datos no devuelve valores

no veo por ningun sitio que imprimas el valor que te devuelve la funcion...

$autor_articulo=elige_autor($row_Articulos['id_autor']);

aqui simplemente asignas a la variable $autor_articulo el valor devuelto por la funcion pero sino lo imprimes en pantalla...
  #5 (permalink)  
Antiguo 02/09/2008, 06:48
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 16 años, 3 meses
Puntos: 7
Respuesta: Consulta a base de datos no devuelve valores

tienes asignados algún privilegio a la conexión??
  #6 (permalink)  
Antiguo 02/09/2008, 07:03
Avatar de lyoung  
Fecha de Ingreso: noviembre-2005
Ubicación: Montevideo, la gran capit
Mensajes: 139
Antigüedad: 19 años
Puntos: 0
Respuesta: Consulta a base de datos no devuelve valores

Sobre la impresión del resultado, no la había puesto pues me parecía obvio, pero tenés razón, si no ponemos todo el código se puede buscar un error que no es.
el script completo es este:
Código PHP:
<?php 
$autor_articulo
=elige_autor($row_Articulos['id_autor']);
echo 
$autor_articulo
?>
Que en realidad no tiene misterios

Con respecto a los Privilegios, no se que son no como se los doy. (si alguien me aclara este punto, al menos donde leer algo lo agradeceré)
Si se refiere a los permisos, estoy probando en local y todos los permisos habilitados.
__________________
Todo se ve mejor si le miramos el lado positivo.
  #7 (permalink)  
Antiguo 02/09/2008, 07:08
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 17 años
Puntos: 14
Respuesta: Consulta a base de datos no devuelve valores

la variable de conexion $cnarticulos la usas sin mas, sin definirla o pasarla por parametro(que no es correcto), estas dentro de una funcion por lo que debes crear la conexion a la base de datos

Saludos
__________________
My path is lit by my own fire, I only go where I desire
  #8 (permalink)  
Antiguo 02/09/2008, 07:13
Avatar de lyoung  
Fecha de Ingreso: noviembre-2005
Ubicación: Montevideo, la gran capit
Mensajes: 139
Antigüedad: 19 años
Puntos: 0
Respuesta: Consulta a base de datos no devuelve valores

Cita:
Iniciado por foreverOdd Ver Mensaje
la variable de conexion $cnarticulos la usas sin mas, sin definirla o pasarla por parametro(que no es correcto), estas dentro de una funcion por lo que debes crear la conexion a la base de datos

Saludos
En realidad está citada más arriba en la misma función, pero no la puse para evitar los datos, la función completa es:
Código PHP:
function elige_autor($autor)
{
$hostname"host";
$database"base";
$username"usuario";
$password"contraseña";
$cnarticulos mysql_pconnect($hostname_cnarticulos$username_cnarticulos$password_cnarticulos) or trigger_error(mysql_error(),E_USER_ERROR); 

$query_elautor "SELECT * FROM autor where id_autor=".$autor;
$elautor mysql_query($query_elautor$cnarticulos) or die(mysql_error());
$row_elautor mysql_fetch_array($elautor);
$totalRows_elautor mysql_num_rows($elautor);
return 
$row_elautor['nombre_autor'];

Sigo cometiendo errores de comunicación y pido las disculpas del caso.
__________________
Todo se ve mejor si le miramos el lado positivo.
  #9 (permalink)  
Antiguo 02/09/2008, 07:58
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 16 años, 3 meses
Puntos: 7
Respuesta: Consulta a base de datos no devuelve valores

$hostname= "host";
$database= "base";
$username= "usuario";
$password= "contraseña";
$cnarticulos = mysql_pconnect($hostname_cnarticulos, $username_cnarticulos, $password_cnarticulos) or trigger_error(mysql_error(),E_USER_ERROR);

las variables definidas para la conexión no coinciden con las usadas
  #10 (permalink)  
Antiguo 02/09/2008, 08:33
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Consulta a base de datos no devuelve valores

Hi !
Yo haria algo asi:
Código PHP:
function elige_autor($autor) {
    
$hostname"host";
    
$database"base";
    
$username"usuario";
    
$password"contraseña";
    
$cnarticulos mysql_pconnect($hostname$username$password) or trigger_error(mysql_error(),E_USER_ERROR);     
        
mysql_select_db($database$cnarticulos);
    
    
$SQL "SELECT nombre_autor FROM autor WHERE id_autor=".$autor;
    
$query mysql_query($SQL$cnarticulos);
    
    
$reg mysql_fetch_array($query);
    
    return 
$reg["nombre_autor"];

No sé para que calculas el numero de registro de la tabla si ni siquiera lo estas devolviendo tampoco xD...

En fin, espero devuelva algo xD

-ByE-
__________________
--
Mi Portfolio Online! Visitalo!
--
  #11 (permalink)  
Antiguo 02/09/2008, 09:19
Avatar de lyoung  
Fecha de Ingreso: noviembre-2005
Ubicación: Montevideo, la gran capit
Mensajes: 139
Antigüedad: 19 años
Puntos: 0
Respuesta: Consulta a base de datos no devuelve valores

No, en realida las modifiqué por seguridad, la conección anda bien.
__________________
Todo se ve mejor si le miramos el lado positivo.
  #12 (permalink)  
Antiguo 02/09/2008, 11:37
Avatar de lyoung  
Fecha de Ingreso: noviembre-2005
Ubicación: Montevideo, la gran capit
Mensajes: 139
Antigüedad: 19 años
Puntos: 0
Respuesta: Consulta a base de datos no devuelve valores

Cuando uno deja de buscar, encuentra lo que sea...

Había decidido dejar de lado por el momento este problema para dedicarme a otras partes del proyecto y ¡sorpresa!

En otra de las páginas tenía necesidad de la misma solución y funciona bien.

¿Donde está la diferencia? (eso resovería todo)

Resulta que solo faltaba un detalle importante,
Código PHP:
mysql_select_db($database_cnarticulos$cnarticulos); 
Pido las disculpas por las molestias causadas y agradezco la colaboración de todos.

Espero que al menos esto le pueda servir algún otro novato como yo.
__________________
Todo se ve mejor si le miramos el lado positivo.
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 14:08.