Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error mysql_num_rows() expects parameter 1 to be resource

Estas en el tema de Error mysql_num_rows() expects parameter 1 to be resource en el foro de PHP en Foros del Web. Buenas. Veran, intento realizar un test online. Entonces en un momento del codigo quiero comprobar si el email de usuario existe en la base de ...
  #1 (permalink)  
Antiguo 23/05/2013, 13:32
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años, 6 meses
Puntos: 4
Error mysql_num_rows() expects parameter 1 to be resource

Buenas.
Veran, intento realizar un test online.
Entonces en un momento del codigo quiero comprobar si el email de usuario existe en la base de datos.
Si existe, se agregan sus respuestas.
Si no existe, se crea un nuevo registro en la base de datos y se agregan sus respuestas.
Pero a la hora de comprobar si existe, me da error.

Obviando las variables, los datos de conexion y demas, la parte del codigo es esta:
Código PHP:
//Comprobamos si existe el email
$sql="Select FROM * test_online_1
WHERE Email = '$email'"
;
$result mysql_query($sql$conectar);
//Si existe, introducimos datos
if((mysql_num_rows($result)>=1') or die ($sql . mysql_error() . '<hr />'))
{
$sql= "UPDATE test_online_1
SET Ver1='
$select1'
WHERE Email = '
$email'";
$result = mysql_query($sql);
}
//Si no existe, creamos e insertamos datos
else
{$sql="INSERT INTO test_online_1 (ID, Nombre, Email, Ver1) VALUES (
NULL, '
$nombre', '$email', '$select1)";
$result = mysql_query($sql);
};
};
//Comprobamos que se insertan los datos
if( mysql_affected_rows() >= 1 )
  echo "
Funciona";
else
  echo "
No se pudieron guardar los datos" . mysql_error() . "" . mysql_errno(); 
Cuando envio el formulario, me reporta este error:
Código:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/.../enviar.php on line 112
Select FROM * test_online_1 WHERE Email = '[email protected]'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM * test_online_1 WHERE Email = '[email protected]'' at line 1
La linea 112, obviamente, es la que corresponde a mysql_num_rows

Que estoy haciendo mal?
He probado muchas cosas y nada, se ve que hay algo que estoy pasando por alto :(

Gracias por la ayuda.
Un saludo
  #2 (permalink)  
Antiguo 23/05/2013, 13:36
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Error mysql_num_rows() expects parameter 1 to be resource

La consulta esta mala!!!

Cita:
Select FROM * test_online_1 WHERE Email = '[email protected]'
Deberia ser

Cita:
Select * FROM test_online_1 WHERE Email = '[email protected]'
  #3 (permalink)  
Antiguo 23/05/2013, 13:37
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 7 meses
Puntos: 17
Respuesta: Error mysql_num_rows() expects parameter 1 to be resource

La primera linea de código está mal:

$sql="Select * FROM test_online_1 y no $sql="Select FROM * test_online_1

Saludos
  #4 (permalink)  
Antiguo 23/05/2013, 13:56
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Error mysql_num_rows() expects parameter 1 to be resource



4 horas probando cosas y no me di cuenta

Bueno, pero me surge otra duda y error.

Si introduzco una direccion email que SI existe, funciona. Introduce los datos en la base de datos.

Pero si escribo una direccion que no existe, al pulsar enviar, me imprime esto en la pantalla:

Select * FROM test_online_1 WHERE Email = '[email protected]'

Y con esto ya me he perdido del todo...
:(
Alguna idea?
  #5 (permalink)  
Antiguo 23/05/2013, 14:02
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Error mysql_num_rows() expects parameter 1 to be resource

mira tenes una comilla simple de mas despues del 1 en la linea

Cita:
if((mysql_num_rows($result)>=1)
  #6 (permalink)  
Antiguo 23/05/2013, 14:09
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Error mysql_num_rows() expects parameter 1 to be resource

Perdon, esa comilla simple ha sido un error al pegar aqui el codigo.
Vuelvo a poner aqui el codigo tal cual lo tengo:

Código PHP:
<?php
//Datos de conexion
include("conectar.php");
//    Nos conectamos a phpmyadmin
$conectar mysql_connect($dbhost$dbuser$dbpasswd);
//    Comprobamos que  nos pudieramos conectar a phpmyadmin
if (!$conectar) {
    die(
'No se pudo conectar a la base: ' mysql_error());
}
//    Nos conectamos a la base
mysql_select_db($dbname);
//Cogemos los campos del formulario

$select1=$_POST['select1'];
$email $_POST['email'];
$nombre $_POST['nombre'];
//Comprobamos si existe el email
$sql="Select * FROM  test_online_1
WHERE Email = '$email'"
;
$result mysql_query($sql$conectar);
$row = @mysql_fetch_array($result);
//Si existe, introducimos datos
if((mysql_num_rows($result)>=1) or die ($sql mysql_error() . '<hr />'))
{
$sql"UPDATE test_online_1
SET Ver1='$select1'
WHERE Email = '$email'"
;
$result mysql_query($sql$conectar) or die ($sql mysql_error() . '<hr />');
}
//Si no existe, creamos e introducimos datos
else
{
$sql="INSERT INTO test_online_1 (ID, Nombre, Email, Ver1
) VALUES (
NULL, '$nombre', '$email', '$select1'
)"
;
$result mysql_query($sql) or die ($sql mysql_error() . '<hr />');
};
//Comprobamos que se insertan los datos
if( mysql_affected_rows() >= )
  echo 
"Funciona";
else
  echo 
"No se pudieron guardar los datos. " mysql_error() . ". " mysql_errno();

?>
  #7 (permalink)  
Antiguo 23/05/2013, 14:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error mysql_num_rows() expects parameter 1 to be resource

¿Y no te parece que esto:
Código PHP:
Ver original
  1. $row = @mysql_fetch_array($result);
debería ir después de verificar que haya registros?

No puedes hacer un fetch_array() sobre algo que vuelve nulo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 23/05/2013, 14:19
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Error mysql_num_rows() expects parameter 1 to be resource

Cierto.
Eso no formaba parte de mi codigo inicial, lo puse cuando me ocurria el error del al principio.

Pero aunque lo ponga despues de verificar, lo quite, haga lo que haga, no cambiar el error que tengo ahora.
Me sigue imprimiendo el mismo mensaje.
Gracias!!
  #9 (permalink)  
Antiguo 23/05/2013, 14:48
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Error mysql_num_rows() expects parameter 1 to be resource

Os prometo que estoy a punto de llorar
:S

No consigo entender que parte del codigo hace que se impra eso, ni porque no llega a "else" cuando no existe ningun registro...

Le he dado mil vueltas.
He encontrado otros codigos por internet que son identicos a lo que tengo.
En que estoy fallando??
  #10 (permalink)  
Antiguo 23/05/2013, 15:04
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Error mysql_num_rows() expects parameter 1 to be resource

Quita esto del if

Cita:
or die ($sql . mysql_error() . '<hr />'
  #11 (permalink)  
Antiguo 23/05/2013, 15:11
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Error mysql_num_rows() expects parameter 1 to be resource

...
Mil millones de gracias.
Esto demuestra que ya basta de codigo por hoy.
Si sigo no voy a ser capaz de dar pie con bola.
Muchas gracias, de verdad, ya esta todo solucionado por dos tonterias de nada que tenia delante y no veia!!

Un saludo!

Etiquetas: expects, formulario, mysql, parameter, registro, resource, select, sql, variables
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 16:52.