Foros del Web » Programando para Internet » PHP »

Tengo un problema con mysql_num_rows

Estas en el tema de Tengo un problema con mysql_num_rows en el foro de PHP en Foros del Web. Hola gente. Necesito ayuda. Estoy aprendiendo el tema de las sesiones y estoy intentando realizar una práctica. La práctica consiste en crear una sesión con ...
  #1 (permalink)  
Antiguo 23/05/2011, 18:21
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 0
Tengo un problema con mysql_num_rows

Hola gente. Necesito ayuda.

Estoy aprendiendo el tema de las sesiones y estoy intentando realizar una práctica.
La práctica consiste en crear una sesión con los datos de un usuario y solo si estos son correctos dará acceso a más páginas.

El error me lo da con la pagina authmain.php

Lo he repasado varias veces y espero que no sea un error tonto,
el error es
mysql_num_rows(): supplied argument is not a valid MySQL result resource in /xxx/xxx/authmain.php on line 16

que falla?
Gracias de antemano.

su codigo es
Código:
<?php
session_start();

if (isset($_POST['userid']) && isset($_POST['password']))
{
  // if the user has just tried to log in
  $userid = $_POST['userid'];
  $password = $_POST['password'];

  $db_conn = mysql_connect('localhost', 'xxx', 'xxxx');
  mysql_select_db('productos', $db_conn);
  $query = 'select * from productos '
           ."where nombre='$userid' "
           ." and clave=password('$password')";
  $result = mysql_query($query, $db_conn);
  if (mysql_num_rows($result) >0 )
  {
    // if they are in the database register the user id
    $_SESSION['valid_user'] = $userid;    
  }
}
?>
<html>
<body>
<h1>Home page</h1>
<? 
  if (isset($_SESSION['valid_user']))
  {
    echo 'You are logged in as: '.$_SESSION['valid_user'].' <br />';
    echo '<a href="logout.php">Log out</a><br />';
  }
  else
  {
    if (isset($userid))
    {
      // if they've tried and failed to log in
      echo 'Could not log you in';
    }
    else 
    {
      // they have not tried to log in yet or have logged out
      echo 'You are not logged in.<br />';
    }

    // provide form to log in 
    echo '<form method="post" action="authmain.php">';
    echo '<table>';
    echo '<tr><td>Userid:</td>';
    echo '<td><input type="text" name="userid"></td></tr>';
    echo '<tr><td>Password:</td>';
    echo '<td><input type="password" name="password"></td></tr>';
    echo '<tr><td colspan="2" align="center">';
    echo '<input type="submit" value="Log in"></td></tr>';
    echo '</table></form>';
  }
?>
<br>
<a href="members_only.php">Members section</a>
</body>
</html>
  #2 (permalink)  
Antiguo 23/05/2011, 19:38
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Tengo un problema con mysql_num_rows

Creo que si no existen filas deberias colocar un else

if (mysql_num_rows($result) >0 )
{
// if they are in the database register the user id
$_SESSION['valid_user'] = $userid;
}

else
echo "No existe la sesion";
  #3 (permalink)  
Antiguo 23/05/2011, 19:41
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Tengo un problema con mysql_num_rows

al comienzo te falta abrir un parentesis

if ((isset($_POST['userid']) && isset($_POST['password']))
  #4 (permalink)  
Antiguo 24/05/2011, 05:26
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Tengo un problema con mysql_num_rows

Gracias por la respuesta, pero el error se encuentra en la linea donde aparece mysql_num_rows($resultado) no se si la consulta está mal realizada o si es otra cosa pero me estoy volviendo loco buscando y probando. He probado lo paréntesis que has dicho pero si no me equivoco estaban bien antes.

A ver si algún iluminado entra y me ayuda.
  #5 (permalink)  
Antiguo 24/05/2011, 10:11
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Tengo un problema con mysql_num_rows

Llevo un rato probando y creo que se debe a la consulta sql. Puede ser?
Podría ser algo de la configuración del servidor??

Nadie lo sabe?
  #6 (permalink)  
Antiguo 24/05/2011, 10:15
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Tengo un problema con mysql_num_rows

Saludos

1. Imprime tu sentencia y ejecutala en un cliente mysql

Código PHP:
Ver original
  1. $query = "select * from productos where nombre='$userid'
  2.            and clave=password('$password')";
  3. echo $query;

2. Agrega a tus consultas la funcion mysql_error()

Código PHP:
Ver original
  1. $result = mysql_query($query, $db_conn) or die ("error en sentencia".mysql_error());
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #7 (permalink)  
Antiguo 24/05/2011, 10:18
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Tengo un problema con mysql_num_rows

Guarda el valor en una variable y haz la comparacion con esa variable:

Código PHP:
Ver original
  1. $numeroRegistros = mysql_num_rows($result);
  2.  
  3. if ($numeroRegistros > 0 ){
  4.    // aca mas codigo
  5. }
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #8 (permalink)  
Antiguo 24/05/2011, 10:23
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Tengo un problema con mysql_num_rows

Saludos jotaincubus

No es relevante para el caso ya que if (mysql_num_rows($result) >0 ) opera igual a como lo indicas
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Etiquetas: Ninguno
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 01:39.