Foros del Web » Programando para Internet » PHP »

Problema con: mysql_num_rows

Estas en el tema de Problema con: mysql_num_rows en el foro de PHP en Foros del Web. Veran recientemente he publicado un tema sobre un codigo de registro de usuarios, no encontre solucion asi que busque en el foro y encontre un ...
  #1 (permalink)  
Antiguo 11/01/2008, 10:41
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Pregunta Problema con: mysql_num_rows

Veran recientemente he publicado un tema sobre un codigo de registro de usuarios, no encontre solucion asi que busque en el foro y encontre un buen codigo, pero da el siguiente problema:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/sites/1/iespana.es/v/i/videoheavy/site/prueba2/comprueba.php on line 10

El codigo en cuestion se encarga de reconocer a los usuarios, es este:
Código PHP:
<?
session_start
();
$server='imysql04';
$database='i5250678';
$dbpass='7yddsd3ialzy6ukh';
$dbuser='i5250678';
$query="SELECT * FROM usuarios WHERE login='$login'";
$link=mysql_connect($server,$dbuser,$dbpass); 
$result=mysql_db_query($nombredb,$query,$link); 
if(
mysql_num_rows($result)==0){
echo 
'No existe ningun usuario con ese nombre'
} else { 
$array=mysql_fetch_array($result); 
if(
$array["password"]==crypt($pass,"semilla") ){ 
$SESSION["login"]=$login;
$SESSION["nombre"]=$array["nombre"]; 
$SESSION["apellidos"]=$array["apellidos"]; 
session_register("SESSION"); 
header("location:user.php");
} else { 
echo 
'Password Incorrecto'


?>
Al codigo anteriora se le llama desde login.php que es donde el usuario intoduce su username y su contraseña para que el sistema lo reconozca y pueda acceder, el codigo de login.php es el siguiente:

Cita:
<?
session_start();
if(isset($SESSION)){
header("location: user.php");
} else {
?>
<html><head><title>Necesita identificación! </title></head>
<body>
<form action="comprueba.php" method="POST">
<PRE><font color="#00EE00"><b>Login:</b></font> <input type="text" name="login"></PRE>
<PRE><font color="#00EE00"><b>Password:</b></font> <input type="password" name="pass"></PRE>
<pre><input type="submit" value="Entrar"> <font color="#0000FF"><b><a href="http://videoheavy.iespana.es/prueba2/formulario.html" target="videos">¿Usuario no registrado?</a></b></font></PRE>
</form>
</body></html>
<?
}
?>
Tambien les dejo el codigo de la tabla mysql que cree:
Código PHP:
CREATE table usuarios 
id TINYINT(4AUTO_INCREMENT
nombre TEXT(8), 
apellidos TEXT(20), 
login VARCHAR(40), 
password VARCHAR(20), 
email TEXT(30), 
UNIQUE (id) ); 
He buscado en el foro y hay temas similares pero en ninguno se da respuesta, tambien he estado buscando en google haber si encontraba una solucion pero nada, asi que no me queda otro recurso que molestarles haber si ustedes podrian darme una solucion. Saludos y mil gracias a todos.
__________________
Videos de Metal

Última edición por juanitTo; 11/01/2008 a las 10:59
  #2 (permalink)  
Antiguo 11/01/2008, 10:53
Avatar de manyametal  
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Problema con: mysql_num_rows

No será que primero haces una selecion en la tabla usuarios sin haber seleccionado antes una bd...
Primero tenes que elegir la bd "mysql_select_db" y luego la consulta sql...
Tambien tienes un error sintactico en la consulta

<?
session_start();
$server='imysql04';
$database='i5250678';
$dbpass='7yddsd3ialzy6ukh';
$dbuser='i5250678';
$link = mysql_connect($server, $dbuser, $dbpass);
mysql_select_db($database,$link);
$query="SELECT * FROM usuarios WHERE login=' ".$login." ' ", $link;

Última edición por manyametal; 11/01/2008 a las 11:03
  #3 (permalink)  
Antiguo 11/01/2008, 10:59
Avatar de rodolfochaves  
Fecha de Ingreso: enero-2008
Mensajes: 14
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Problema con: mysql_num_rows

Prueba con esto a ver si te funciona adema comprueba q la variable $login se esta recibiendo puedes hacer un echo $login para comprobar.

<?
session_start();
$server='imysql04';
$database='i5250678';
$dbpass='7yddsd3ialzy6ukh';
$dbuser='i5250678';
$query="SELECT * FROM usuarios WHERE login='$login'";
$link=mysql_connect($server,$dbuser,$dbpass);
mysql_select_db=($database,$link);
$result=mysql_db_query($query,$link);
if(mysql_num_rows($result)==0){
echo 'No existe ningun usuario con ese nombre';
} else {
$array=mysql_fetch_array($result);
if($array["password"]==crypt($pass,"semilla") ){
$SESSION["login"]=$login;
$SESSION["nombre"]=$array["nombre"];
$SESSION["apellidos"]=$array["apellidos"];
session_register("SESSION");
header("location:user.php");
} else {
echo 'Password Incorrecto';
}
}
?>

Espero q te funcione.

Última edición por rodolfochaves; 11/01/2008 a las 11:09
  #4 (permalink)  
Antiguo 11/01/2008, 14:37
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Re: Problema con: mysql_num_rows

Me sigue saliendo lo mismo:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/sites/1/iespana.es/v/i/videoheavy/site/prueba2/comprueba.php on line 11
No existe ningun usuario con ese nombre
No se que puede ser, gracias a ambos por su atencion, alguna otra sugerencia? Si conocen algun otro codigo que sirva para restringir el aceso y que solo se metan los usuarios que previamente ellos hayan metido sus datos en una db mediante un formulaario diganlo por favor
__________________
Videos de Metal

Última edición por juanitTo; 11/01/2008 a las 15:13
  #5 (permalink)  
Antiguo 12/01/2008, 08:47
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Re: Problema con: mysql_num_rows

nadie sabe ayudarme? Nadie sabe arreglarlo o un script diferente para el registro de usuarios con mysql?
__________________
Videos de Metal
  #6 (permalink)  
Antiguo 12/01/2008, 10:32
Avatar de Cristiaen  
Fecha de Ingreso: enero-2008
Mensajes: 29
Antigüedad: 16 años, 3 meses
Puntos: 0
Mensaje Re: Problema con: mysql_num_rows

$query='SELECT * FROM `usuarios` WHERE `login` = "' . $login . '";';

Prueba cambiando esa línea, a ver si funciona

Última edición por Cristiaen; 12/01/2008 a las 10:34 Razón: Error
  #7 (permalink)  
Antiguo 12/01/2008, 11:57
Avatar de manyametal  
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Problema con: mysql_num_rows

Te dejo un ejemplo sencillo para acceder si solo esta registrado.. Capaz q te sirve, a mi me funciona bien

Código PHP:
<?php
$usuario
=$_POST['usuario'];
$pass=$_POST['pass'];

login($usuario$pass);

function 
login($usuario$pass){
$usu =0;
$link mysql_connect("server""usuario","contrasena");
mysql_select_db("bd",$link);
// Primeros comprobamos el usuario.
$consultaUsuariomysql_query("SELECT * FROM usuarios where nombre= '".$usuario."' and login= '".$pass."' " $link);
//Para saber si existe usuario
while($rowmysql_fetch_assoc($consultaUsuario)) {
$usu 1;
}

if(
$usu == 1) {
echo 
"Bienvenido";
header("Location:index.php");

}else{
echo 
"El nick y/o contraseña ingresados no son correctos ";
header("Location:login.php");
}

}

?>
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:39.