Perfil de un usuario, problema!

Iniciado por den_22, 5 Marzo 2010, 04:44 AM

0 Miembros y 1 Visitante están viendo este tema.

den_22

Hola que tal, estoy haciendo un modificar perfil. La cuestion es que quiero que el usuario al presionar sobre modificar perfil le aparezcan algunos datos que completó en el registro, y los demás deba rellenarlo.
Tengo un Warning en la linea 11 del getdata.php:"mysql_fetch_array(): supplied argument is not a valid MySQL result resource"

Lo que tengo hasta ahora es lo siguiente:

modificarperfil.php:
Código (php) [Seleccionar]
<?php
 
include("function.php");
include(
"getdata.php");
include(
"connect.php"); //incluimos el connect.php que contiene los datos de la conexión a la db y la sesión
 
if(!isset($_GET['usuario'])){
echo 
'No se ha seleccionado ningun usuario.'
}else{
 
 
$query=mysql_query("SELECT * FROM prueba WHERE usuario=$usuario ");
if(
mysql_num_rows($usuario)>0){
$query=mysql_fetch_array($usuario);
 
//todo comprobado, ahora solo falta mostrar los datos
echo 'Bienvenid@ <b>'.$usuario[usuario].'</b><br>';
 
 
}else{
 
echo 
'El usuario seleccionado no existe';
}
}
?>



El function.php:

Código (php) [Seleccionar]
<?php
 
 
 
 
function getfname($usuario)
{
    
$query mysql_query("select * from prueba where usuario=$usuario");
    
$getnamemysql_fetch_array($query);
    
$firstname$getname["firstname"];
    return 
$firstname;
}
 
function 
getlname($usuario)
{
    
$query =mysql_query("select * from prueba where usuario=$usuario");
    
$getnamemysql_fetch_array($query);
    
$lastname=$getname["lastname"];
    return 
$lastname;
}
 
 
function 
getusuario($usuario)
{
    
$query=mysql_query("select * from prueba where usuario=$usuario");
    
$getname=mysql_fetch_array($query);
    
$usuario=$getname["usuario"];
    return 
$usuario;
}
 
function 
getgender ($usuario)
{
    
$query=mysql_query("select * from prueba where usuario=$usuario");
    
$getname=mysql_fetch_array($query);
    
$gender=$getname["Genero"];
    return 
$gender;
}
 
 
 
 
?>



El getdata.php:

Código (php) [Seleccionar]
<?php
 
 
 
include "connect.php";
 
$query=mysql_query("select * from prueba where usuario=$usuario");
$getname=mysql_fetch_array($query);  //linea 11 aqui esta el warning
 
$firstname=$getname["firstname"];
$lastname=$getname["lastname"];
$usuario=$getname["usuario"];
$gender=$getname["genero"];
 
 
?>



Lo que yo quiero es que me aparezcan en el formulario los datos a los que consulta en la bd.
En el formulario lo hago de esta forma:
Código (php) [Seleccionar]
<tr>
      <td width="219">Nombre:</td>
      <td width="270"><input name="firstname" type="text" id="firstname" value="<?php echo $firstname;?>"></td>
    </tr>


Esta es la base de datos, al hacer la consulta me devuelve un valor vacio, pero está completo ese valor.

Código (sql) [Seleccionar]
CREATE TABLE `prueba` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
`firstname` varchar(32) collate utf8_unicode_ci NOT NULL DEFAULT '',
`lastname` varchar(40) collate utf8_unicode_ci NOT NULL DEFAULT '',
  `usuario` varchar(32) collate utf8_unicode_ci NOT NULL DEFAULT '',
  `pass` varchar(32) collate utf8_unicode_ci NOT NULL DEFAULT '',
`sexo` varchar (32) collate utf8_unicode_ci NOT NULL DEFAULT '',
  `email` varchar(255) collate utf8_unicode_ci NOT NULL DEFAULT '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `usuario` (`usuario`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;



Gracias por leerlo, den_22

Nakp

Código (php,2,3) [Seleccionar]
$query=mysql_query("SELECT * FROM prueba WHERE usuario=$usuario ");
if(mysql_num_rows($usuario)>0){
$query=mysql_fetch_array($usuario);


en vez de $usuario... no es $query?
Ojo por ojo, y el mundo acabará ciego.

Castg!

mira, trata de primero definir las variables, y despues aplicarlas:

Código (php) [Seleccionar]
<?php
 
 
 
include "connect.php";
 
$firstname=$getname["firstname"];
$lastname=$getname["lastname"];
$usuario=$getname["usuario"];
$gender=$getname["genero"];
 
$query=mysql_query("select * from prueba where usuario=$usuario");
$getname=mysql_fetch_array($query);  //linea 11 aqui esta el warning
  
?>


contanos que onda...

Nakp

ehm... las define en otro archivo que es incluido antes de tratarlo :P el error no va por ahi xD
Ojo por ojo, y el mundo acabará ciego.

WHK

será talves porque te da error al hacer la query?
encierra en comillas el nombre o mysql te lo va a tomar como tabla u objeto en ves de string.

Castg!

nakp= donde? nunca definio $usuario :S. tambien estaria probar lo que decis...

whk= o tambien puede que el usuario tenga espacios :S

Nakp

en getdata.php, revisa los codigos ps xD es el segundo archivo que incluye
Ojo por ojo, y el mundo acabará ciego.

Castg!

#7
sisi, getdatalovi xD pero fijate que son todas funciones, y no veo que las llame :S


ademas lo mio esta erroneo :S
Código (php) [Seleccionar]

<?php
 
 
 
include "connect.php";
 
$firstname=$getname["firstname"];
$lastname=$getname["lastname"];
$usuario=$getname["usuario"];
$gender=$getname["genero"];
 
$query=mysql_query("select * from prueba where usuario=$usuario");
$getname=mysql_fetch_array($query);  //linea 11 aqui esta el warning
 
?>


estaba bien como lo pusiste, el unico problema debe ser el que nombra whk.

Nakp

#8
el problema esta en modificarperfil.php, en estas lineas


Código (php,13,14) [Seleccionar]
<?php
 
include("function.php");
include(
"getdata.php");
include(
"connect.php"); //incluimos el connect.php que contiene los datos de la conexi&#243;n a la db y la sesi&#243;n
 
if(!isset($_GET['usuario'])){
echo 
'No se ha seleccionado ningun usuario.'
}else{
 
 
$query=mysql_query("SELECT * FROM prueba WHERE usuario=$usuario ");
if(
mysql_num_rows($usuario)>0){
$query=mysql_fetch_array($usuario);
 
//todo comprobado, ahora solo falta mostrar los datos
echo 'Bienvenid@ <b>'.$usuario[usuario].'</b><br>';
 
 
}else{
 
echo 
'El usuario seleccionado no existe';
}
}
?>


pero hace referencia a getdata.php porque ahi es donde se define el argumento que se le esta pasando a mysql_fetch_array(), el cual no es un "resultset"

en getdata.php no hay funciones xD esas estan en function.php, igual le faltan las comillas simples al rededor de $usuario




ahora que lo veo, si se refiere a eso xD hahahaha estoy hablando de errores posteriores :xD
Ojo por ojo, y el mundo acabará ciego.

Castg!

me confundo... tenes razon, me guie por el nombre de las funciones y no por el nombre del archivo ¬¬ jajaj. pero entonces, de donde sacas el $usuario!?!?!? en getdata primero usa un $usuario y despues lo declara  :o