Foros del Web » Programando para Internet » PHP »

Problema al mostrar variable

Estas en el tema de Problema al mostrar variable en el foro de PHP en Foros del Web. ¡Hola!, Tengo una base de datos con usuarios, que tenía una tabla con distintos datos: ID , username , password y email . Añadí una ...
  #1 (permalink)  
Antiguo 05/01/2012, 06:00
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años
Puntos: 1
Problema al mostrar variable

¡Hola!,

Tengo una base de datos con usuarios, que tenía una tabla con distintos datos: ID, username, password y email. Añadí una nueva columna a la tabla, un nuevo dato, llamado points, con el fin de poder implementar un sistema de puntos.

Pongamos que la base de datos se llama basedatos y la tabla users (donde $consulta es la variable, y en config.php están los datos de acceso a la base de datos), ¿sería correcto usar esto?:
Código:
<?php

include('config.php');

$consulta = mysql_query("SELECT points FROM users") or die ("Error en la consulta");

echo '$consulta';

?>
Me falla, me muestra lo siguiente: Resource id #6 (o también con otros números).

¿Alguna solución? Tengo mal el código, supongo, pero no sé cómo corregirlo.

Gracias de antemano.
  #2 (permalink)  
Antiguo 05/01/2012, 06:05
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: Problema al mostrar variable

Hola ignaoa, primero debes obtener los resultados de tu $consulta , si los resultados los estaras presentando constantemente, creo que lo mejor seria crear una variable de session cuando el usuario se logee, saludos.





Código PHP:
Ver original
  1. $consulta = mysql_query("SELECT points FROM users") or die ("Error en la consulta");
  2. while ($rows=mysql_fetch_array($consulta))
  3. {
  4.      echo 'puntos : '.$rows['points'].';
  5. }
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #3 (permalink)  
Antiguo 05/01/2012, 06:16
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años
Puntos: 1
Respuesta: Problema al mostrar variable

Gracias, pero por algún error en las comillas o algo no se me ve :S

¿Y cómo podría hacer una variable de sesión?
  #4 (permalink)  
Antiguo 05/01/2012, 06:23
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: Problema al mostrar variable

Prueba de esta manera:

Código PHP:
Ver original
  1. $consulta = mysql_query("SELECT points FROM users") or die ("Error en la consulta");
  2. while ($rows=mysql_fetch_array($consulta))
  3. {
  4.     $puntos=$rows['points'];
  5. }
  6.   echo 'la cantidad de puntos es : '.$puntos;


Respecto a la variable de session, como lo haces tu para identificar el ingreso de un Usuario?, como lo identificas cuando cambia de pagina? o mejor dicho podrías explicar un poco mas para que necesitas el sistema de puntos y como realizas el login



Saludos
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #5 (permalink)  
Antiguo 05/01/2012, 06:24
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Problema al mostrar variable

El ejemplo que te han dado debería ser así:
Código PHP:
$consulta mysql_query("SELECT points FROM users") or die ("Error en la consulta");
while (
$rows=mysql_fetch_array($consulta))
{
     echo 
'puntos : '.$rows['points'];

Q se le ha colado una comilla.


Veamos, eso de "Resource id6#" es correcto. mysql_query devuelve una "consulta", pero no los valores de ella. Para acceder a los valores de una consulta, tienes q hacer algo así

Código PHP:
$aqui_el_array_de_valores mysql_fetch_array($consulta);

//Y para verlos:
echo $aqui_el_array_de_valores['nombre_del_campo_sql']; 
Ánimo! :)
__________________
>> Eleazan's Source
>> @Eleazan
  #6 (permalink)  
Antiguo 05/01/2012, 06:34
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años
Puntos: 1
Respuesta: Problema al mostrar variable

De momento va bien, no hace falta lo de la sesión. Era por lo de las comillas. Muchísimas gracias a los dos :) Si tengo algun problema más, no dudaré en preguntar.

Gracias otra vez,
¡Saludos!
  #7 (permalink)  
Antiguo 05/01/2012, 07:23
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años
Puntos: 1
Respuesta: Problema al mostrar variable

Siento el doble post, pero me surge una duda. ¿Cómo hago para poner esa variable en medio de otro texto mostrado por echo? Es decir, tengo un texto mostrado por echo con el nombre de usuario y un "Cerrar sesión", y quiero poner el número de puntos por ahí en medio.

Código:
    $consulta = mysql_query("SELECT points FROM users") or die ("Error en la consulta");
    while ($rows=mysql_fetch_array($consulta))
    {
        $puntos=$rows['points'];
    }
      echo 'la cantidad de puntos es : '.$puntos;
Aquí intentaste que $rows['points'] se convirtiera en $puntos, pero no me funciona :S
  #8 (permalink)  
Antiguo 05/01/2012, 07:58
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Problema al mostrar variable

Con los echo, para concatenar se usa así:

Código PHP:
echo 'Esto es un texto y una variable' $variable ' y por aqui sigue el texto'
Supongo q es esto lo q preguntas... las cadenas / código html van entre comillas (simples o dobles), y si usas el punto "concatenas" con una variable, u otra cadena.

Un saludo!
__________________
>> Eleazan's Source
>> @Eleazan
  #9 (permalink)  
Antiguo 05/01/2012, 11:36
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años
Puntos: 1
Respuesta: Problema al mostrar variable

Sí, es eso, pero como el valor de la variable sólo me sale si pongo lo siguiente, con el while:

Código:
$consulta = mysql_query("SELECT points FROM users") or die ("Error en la consulta");
while ($rows=mysql_fetch_array($consulta))
{
     echo 'puntos : '.$rows['points'];
}
Ahora ya entiendo cómo poner la variable en medio de lo otro, gracias. Pero sólo me la lee si el echo está dentro de ese while...
  #10 (permalink)  
Antiguo 06/01/2012, 06:10
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años
Puntos: 1
Respuesta: Problema al mostrar variable

Otra vez perdón, pero no nos fijamos en una cosa. Ahora hay dos usuarios registrados, y me salen los puntos que tiene uno y los puntos que tiene el otro en el perfil de UN usuario. Yo quiero que se extraigan los datos (en este caso, los puntos) del usuario que está logueado. ¿Cómo lo hago, entonces? La "row" del usuario se llama "username".
  #11 (permalink)  
Antiguo 08/01/2012, 13:23
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años
Puntos: 1
Respuesta: Problema al mostrar variable

Disculpad, de verdad, por escribir tanto post seguido, ¡pero necesito respuesta, por favor!
  #12 (permalink)  
Antiguo 10/01/2012, 09:27
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: Problema al mostrar variable

Hola ignaoa agrega un where en tu consulta donde le indicas que condicion se debe cumplir para que te obtenga los puntos por ejemplo

Código MySQL:
Ver original
  1. SELECT points FROM users WHERE id_user='$mivariableid'


Saludos.


__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #13 (permalink)  
Antiguo 13/01/2012, 17:22
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años
Puntos: 1
Respuesta: Problema al mostrar variable

Muchísimas gracias :) Te lo agradezco mucho.

Etiquetas: mysql, tabla, variables, usuarios
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 17:33.