Foros del Web » Programando para Internet » PHP »

Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Sistema Login

Estas en el tema de Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Sistema Login en el foro de PHP en Foros del Web. Hola Amigos espero puedan ayudarme encontre el siguiente script, pero me salen 1 Warning, Código PHP: <?php include( "config.php" );  /*Traemos el archivo config*/ /*Recibimos las variables por el metodo POST*/ $login  =  htmlspecialchars ...
  #1 (permalink)  
Antiguo 18/04/2010, 16:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 94
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Sistema Login

Hola Amigos espero puedan ayudarme encontre el siguiente script, pero me salen 1 Warning,

Código PHP:
<?php

include("config.php"); /*Traemos el archivo config*/
/*Recibimos las variables por el metodo POST*/
$login htmlspecialchars(trim($_POST['login']));
$pass1 trim($_POST['pass1']);
$pass2 trim($_POST['pass2']);
$nombrehtmlspecialchars(trim($_POST['nombre']));
$apaternohtmlspecialchars(trim($_POST['apaterno']));
$amaternohtmlspecialchars(trim($_POST['amaterno']));
$email htmlspecialchars(trim($_POST['email']));

$link=mysql_connect($server,$dbuser,$dbpass);
$query sprintf("SELECT login FROM usuarios WHERE usuarios.login='%s'"mysql_real_escape_string ($login)); 
$result=mysql_query($query);
if(
mysql_num_rows($result)){
  echo 
"El usuario ya existe en la BD";
} else {
//mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
  
if($pass1!=$pass2) {

      echo 
"Los passwords deben coincidir";

      echo 
'Click <a href="form.html">aquí</a> para volver al formulario';

  } else {

    
/* Encriptamos "Ciframos" el password

    // $pass1=crypt($pass2, "semilla"); // ANTES */

    
$pass1=sha1(md5($pass1)); // Ahora
    
    /* $query="INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('$login','$nombre','$apaterno', '$amaterno','$pass1','$email')"; */  // Antes
  
    
$query  =  sprintf("INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('%s','%s','%s', '%s','%s','%s')",  // Ahora
                
mysql_real_escape_string($login),   mysql_real_escape_string($nombre),
                
mysql_real_escape_string($apaterno),mysql_real_escape_string($amaterno), 
                
mysql_real_escape_string($pass1),   mysql_real_escape_string($email));       
    

    
$result=mysql_query($query);

    if(
mysql_affected_rows()){
                
    echo 
"Usuario introducido correctamente";

    } else {

    echo 
"Error introduciendo el usuario";

    } 
/* Cierre del else */

  
/* Cierre del else que corresponde a if(mysql_affected_rows.....) */
/* Cierre del else que corresponde a if(mysql_num_rows...) */
?>
y El siguiente es el error

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\login\sesion\crea_usuarios.php on line 16
Usuario introducido correctamente

el error marca esta linea: if(mysql_num_rows($result)){
espero sus respuestas gracias;

Última edición por moz90; 18/04/2010 a las 16:47 Razón: mas datos
  #2 (permalink)  
Antiguo 18/04/2010, 16:47
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 10 meses
Puntos: 10
Respuesta: Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Si

Te falta asignarle el resultado del query a la función donde te da el error:

Código PHP:
Ver original
  1. //como lo tienes:
  2.  
  3.     $result=mysql_query($query);
  4.  
  5.     if(mysql_affected_rows()){
  6.  
  7. //...tendría que ser:
  8.  
  9.     $result=mysql_query($query);
  10.  
  11.     if(mysql_affected_rows($result)){
  #3 (permalink)  
Antiguo 18/04/2010, 16:53
 
Fecha de Ingreso: mayo-2009
Mensajes: 94
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Si

hola, me sale un warning mas:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\login\sesion\crea_usuarios.php on line 16

Warning: mysql_affected_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\login\sesion\crea_usuarios.php on line 45
Error introduciendo el usuario

:(

salu2
  #4 (permalink)  
Antiguo 18/04/2010, 17:06
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 10 meses
Puntos: 10
Respuesta: Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Si

disculpa amigo, se me cruzaron los cables:

mysql_num_rows($result); si requere el link_resource del query.

mysql_affected_rows() va vacío.
  #5 (permalink)  
Antiguo 18/04/2010, 17:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 94
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Si

Cita:
Iniciado por rpv Ver Mensaje
disculpa amigo, se me cruzaron los cables:

mysql_num_rows($result); si requere el link_resource del query.

mysql_affected_rows() va vacío.
oh ok ok man, si pero es ahi justamente que sale un error, un warning :( a ver si me hechas una mano...

salu2
  #6 (permalink)  
Antiguo 18/04/2010, 17:16
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 10 meses
Puntos: 10
Respuesta: Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Si

ahhhh...cierto.

El error que te da quiere decir que tu query está mal, prueba con esto para ver cuál es el error:

Código PHP:
Ver original
  1. $query="SELECT login FROM usuarios WHERE login='".mysql_real_escape_string ($login)."'";
  2. $result=mysql_query($query);
  #7 (permalink)  
Antiguo 18/04/2010, 17:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Si

Retomando el problema del principio, el error te indica que mysql_num_rows requiere que el primer parametro sea un resource y no le estás brindando lo que te pide. Esto ocurre por lo general cuando la consulta que hiciste está mal hecha, depura tu consulta usando las funciones que te indican el error en la consulta
Código PHP:
Ver original
  1. mysql_query('aqui va tu consulta') or die(mysql_error());
Lee y analiza el error que te dé.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 18/04/2010, 18:20
 
Fecha de Ingreso: mayo-2009
Mensajes: 94
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Si

Cita:
Iniciado por abimaelrc Ver Mensaje
Retomando el problema del principio, el error te indica que mysql_num_rows requiere que el primer parametro sea un resource y no le estás brindando lo que te pide. Esto ocurre por lo general cuando la consulta que hiciste está mal hecha, depura tu consulta usando las funciones que te indican el error en la consulta
Código PHP:
Ver original
  1. mysql_query('aqui va tu consulta') or die(mysql_error());
Lee y analiza el error que te dé.
hola, puse como me dijiste, y me sale un error que no se pq sale, si todo esta bien

Unknown column 'login' in 'field list'

esta es la tabla

CREATE TABLE usuarios(
`id` int( 4 ) NOT NULL AUTO_INCREMENT ,
`nombre` text,
`apaterno` text,
`amaterno` text,
`login` varchar( 40 ) NOT NULL ,
`password` varchar( 80 ) NOT NULL ,
`email` text,
UNIQUE KEY ( id )
);

y este el la consulta query

$query = sprintf("SELECT login FROM usuarios WHERE usuarios.login='%s'", mysql_real_escape_string ($login));
mysql_query($query) or die(mysql_error());

ayuda plis
salu2
  #9 (permalink)  
Antiguo 18/04/2010, 18:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Si

No veo porque no lo reconoce, hazla de esta forma e indícanos que pasa
Código PHP:
Ver original
  1. $query = "SELECT `login` FROM `usuarios` WHERE `login` = '". mysql_real_escape_string ($login) ."'";
  2. mysql_query($query) or die(mysql_error());
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 18/04/2010, 18:48
 
Fecha de Ingreso: mayo-2009
Mensajes: 94
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Si

Cita:
Iniciado por abimaelrc Ver Mensaje
No veo porque no lo reconoce, hazla de esta forma e indícanos que pasa
Código PHP:
Ver original
  1. $query = "SELECT `login` FROM `usuarios` WHERE `login` = '". mysql_real_escape_string ($login) ."'";
  2. mysql_query($query) or die(mysql_error());
amigo definitivamente nose que he hecho mal, a lo mejor es pq modifique el script original, pq ese script es de hace 2 años y al comienzo me daba dos warning por depreceated, pero si grababa los registro y todo bien.
Sin embargo corregi y actualize alguna sentencias, pq eran algo antiguas, sin embargo es recomendable trabajar asi ?, weno les dejo el script para que me digan como debo actualizarlo plis, se los agredeceria bastante si me ayudan

estos son los errores del archivo original
Deprecated: mysql_db_query() [function.mysql-db-query]: This function is deprecated; use mysql_query() instead in C:\wamp\www\login\sesion\crea_usuarios.php on line 18

Deprecated: mysql_db_query() [function.mysql-db-query]: This function is deprecated; use mysql_query() instead in C:\wamp\www\login\sesion\crea_usuarios.php on line 46
Usuario introducido correctamente

salu2
  #11 (permalink)  
Antiguo 18/04/2010, 18:50
 
Fecha de Ingreso: mayo-2009
Mensajes: 94
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con Warning: mysql_num_rows() expects parameter 1 to be resource, Si

Este es el script:

Código PHP:
<?php
include("config.php"); /*Traemos el archivo config*/
/*Recibimos las variables por el metodo POST*/
$login htmlspecialchars(trim($_POST['login']));
$pass1 trim($_POST['pass1']);
$pass2 trim($_POST['pass2']);
$nombrehtmlspecialchars(trim($_POST['nombre']));
$apaternohtmlspecialchars(trim($_POST['apaterno']));
$amaternohtmlspecialchars(trim($_POST['amaterno']));
$email htmlspecialchars(trim($_POST['email']));
/*Hacemos la consulta */
// $query="SELECT * FROM usuarios WHERE login='$login'"; //ANTES

$link=mysql_connect($server,$dbuser,$dbpass);
$query sprintf("SELECT login FROM usuarios WHERE usuarios.login='%s'",  // Ahora
       
mysql_real_escape_string($login)); 
$result=mysql_db_query($database,$query,$link);
if(
mysql_num_rows($result)){
  echo 
"El usuario ya existe en la BD";
} else {
mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
  
if($pass1!=$pass2) {

      echo 
"Los passwords deben coincidir";

      echo 
'Click <a href="form.html">aquí</a> para volver al formulario';

  } else {

    
/* Encriptamos "Ciframos" el password

    // $pass1=crypt($pass2, "semilla"); // ANTES */

    
$pass1=sha1(md5($pass1)); // Ahora
    
    /* $query="INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('$login','$nombre','$apaterno', '$amaterno','$pass1','$email')"; */  // Antes
  
    
$query  =  sprintf("INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('%s','%s','%s', '%s','%s','%s')",  // Ahora
                
mysql_real_escape_string($login),   mysql_real_escape_string($nombre),
                
mysql_real_escape_string($apaterno),mysql_real_escape_string($amaterno), 
                
mysql_real_escape_string($pass1),   mysql_real_escape_string($email));       
    

    
$result=mysql_db_query($database,$query,$link);

    if(
mysql_affected_rows()){
                
    echo 
"Usuario introducido correctamente";

    } else {

    echo 
"Error introduciendo el usuario";

    } 
/* Cierre del else */

  
/* Cierre del else que corresponde a if(mysql_affected_rows.....) */
/* Cierre del else que corresponde a if(mysql_num_rows...) */
?>
ojala que me puedan ayudar a corrregirlo, se los agredeceria bastante, gracias
estos son los warning con este script, que grabar correctamente los registros pero sin embargo presentar 2 warning por Deprecated:

Deprecated: mysql_db_query() [function.mysql-db-query]: This function is deprecated; use mysql_query() instead in C:\wamp\www\login\sesion\crea_usuarios.php on line 18

Deprecated: mysql_db_query() [function.mysql-db-query]: This function is deprecated; use mysql_query() instead in C:\wamp\www\login\sesion\crea_usuarios.php on line 46
Usuario introducido correctamente

salu2

Etiquetas: login, warning, sitemap
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:17.