Foros del Web » Programando para Internet » PHP »

Salida defectuosa

Estas en el tema de Salida defectuosa en el foro de PHP en Foros del Web. Al armar una cadena de texto en la cual se incluye el valor (número entero) de una variable que toma su valor así: Cita: SELECT ...
  #1 (permalink)  
Antiguo 18/01/2009, 19:33
 
Fecha de Ingreso: julio-2008
Mensajes: 109
Antigüedad: 15 años, 9 meses
Puntos: 0
Salida defectuosa

Al armar una cadena de texto en la cual se incluye el valor (número entero) de una variable que toma su valor así:
Cita:
SELECT numero FROM visitas WHERE registro_id=$registro_id
me muestra en la salida:

Cita:
Visitas: " resource id #(el número de visitas)"
Cómo hago para que me salga solo el número?
  #2 (permalink)  
Antiguo 18/01/2009, 20:09
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Respuesta: Salida defectuosa

¿Esa cadena la estás enviando a un motor de Base de Datos para ejecutarse?
¿Que lenguaje estás usando?
¿Cuál es el motor de base de datos?
¿Como estas ejecutando la consulta (con que funciones)?
¿Cómo obtenés el resultado de la consulta?
¿Como imprimís los resultados obtenidos?
  #3 (permalink)  
Antiguo 18/01/2009, 20:18
 
Fecha de Ingreso: julio-2008
Mensajes: 109
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Salida defectuosa

Deduzco de tus preguntas que me faltó poner algún dato...
Uso php y mysql, e imprimo con un echo la consulta es tal cual se ve agregarle un mysql_query y listo!
la idea es obtener las visitas que están vinculadas con cierto id en esa misma tabla solo hay dos columnas "registro_id" y "numero" (de visitas) quizás esa no sea la mejor manera?
  #4 (permalink)  
Antiguo 18/01/2009, 20:51
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Respuesta: Salida defectuosa

Bien, con los datos que me proporcionaste, deduzco que estás haciendo algo así:

Código PHP:
$registro_id = ... // De algún lado lo obtenés
$sql "SELECT numero FROM visitas WHERE registro_id=$registro_id" // Armás la consulta
$resultado mysql_query($sql// Ejecutas la consulta
echo "Visitas: $resultado" 
Si estoy en lo correcto, el error consiste en que la función mysql_query() no te devuelve los resultados de la consulta, te devuelve un apuntador al resultado de la consulta. Cuando convertís ese apuntador a string (por ejemplo usándolo en un echo como es tu caso), lo que imprime es el id del apuntador o como le llama PHP: resource id.

Para obtener los resultados de las consultas, es necesario aplicar la función mysql_fetch_array() de la siguiente manera:

Código PHP:
$visitas_fila mysql_fetch_array($resultado
con esa línea obtenés un array con los campos del resultado de la consulta. Luego con esta línea:

Código PHP:
$visitas $visitas_fila["numero"
obtenés el contenido del campo numero, que el dato que te interesa.

El código quedaría más o menos así:

Código PHP:
$registro_id = ... // De algún lado lo obtenés
$sql "SELECT numero FROM visitas WHERE registro_id=$registro_id" // Armás la consulta
$resultado mysql_query($sql// Ejecutas la consulta
$visitas_fila mysql_fetch_array($resultado)
$visitas $visitas_fila["numero"]
echo 
"Visitas: $visitas" 
  #5 (permalink)  
Antiguo 18/01/2009, 21:20
 
Fecha de Ingreso: julio-2008
Mensajes: 109
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Salida defectuosa

me da este error :
Cita:
Parse error: syntax error, unexpected T_VARIABLE in ../public_html/info.php on line 16
Cita:
line 16: $visitas_fila = mysql_fetch_array($resultado)
pero sin duda esa es la idea, obtener un resultado basado en la columna de al lado

Última edición por martuanez; 18/01/2009 a las 21:26
  #6 (permalink)  
Antiguo 18/01/2009, 22:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Salida defectuosa

Tema trasladado a PHP.

http://www.forosdelweb.com/f21/funci...-datos-413499/
  #7 (permalink)  
Antiguo 18/01/2009, 22:55
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Salida defectuosa

A la linea 15 le falta el ";" al final.
  #8 (permalink)  
Antiguo 19/01/2009, 06:39
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Salida defectuosa

A esa y a todas las demás. Evidentemente hiciste un copy&paste de los códigos de TolaWare.

  #9 (permalink)  
Antiguo 19/01/2009, 07:24
 
Fecha de Ingreso: septiembre-2008
Mensajes: 65
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Salida defectuosa

Hola que tal,

Para saber simplemente el numero de registro que devuelbe la consulta usa mejor esta funcion de php para mysql

$total_registros = mysql_num_rows($resultado);

esto te dara el numero de registros devueltos en la select.

Espero te sirva.
  #10 (permalink)  
Antiguo 19/01/2009, 07:33
 
Fecha de Ingreso: julio-2008
Mensajes: 109
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Salida defectuosa

Cita:
Evidentemente hiciste un copy&paste de los códigos de TolaWare.
Pues sí, con excepción del fetch array, antes, era el mismo codigo con menos variables, pero como lo vi hecho de esa manera en otros lados me imagine que tendría alguna ventaja y el nombre que le puso a las variables definitivamente es más simple que el que yo les puse, entonces me base en KISS ( keep it simple, stupid!)para seguir su ejemplo,

Cita:
Hola que tal,

Para saber simplemente el numero de registro que devuelbe la consulta usa mejor esta funcion de php para mysql

$total_registros = mysql_num_rows($resultado);

esto te dara el numero de registros devueltos en la select.

Espero te sirva.
Ok gracias, me servira en el futuro
  #11 (permalink)  
Antiguo 19/01/2009, 07:59
 
Fecha de Ingreso: julio-2008
Mensajes: 109
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Salida defectuosa

Ya me funciona !!
Conclusión: usé mysql_fetch_array para obtener el resultado de la consulta y le puse ";" a todo el codigo que había generado (que burro!!)que era más que lo que se veía a simple vista...

muchas gracias , TolaWare, elbetonet, okram, Ronruby y GatorV!!

Dejo unos links por si alguien le interesa el tema

http://www.php.net/manual/es/function.mysql-query.php

http://www.php.net/manual/es/functio...etch-array.php
http://www.php.net/manual/es/functio...tch-object.php
http://www.php.net/manual/es/function.mysql-result.php

Última edición por martuanez; 19/01/2009 a las 08:06
  #12 (permalink)  
Antiguo 19/01/2009, 08:07
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Respuesta: Salida defectuosa

Me alegro que hayas podido hacerlo andar.

Perdón por lo de los punto y coma. Estoy programando mucho en Ruby y ahí no es necesario poner los punto y coma, y como que ya me estoy habituando a ello :P
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 05:43.