Duda con php

zaidner

Bovino maduro
#1
Hola que tal bakunos, esta vez vengo a que me echen la mano(sin albur xD ), bueno al grano, estoy creando una pagina con base de datos, pero el problema radica en que al momento que se registren y bueno si el nombre de usuario ya existe que le indique al usuario con un mensaje que ese nombre ya esta en uso, pero al momento de enviar los datos me marca este error:

Warning: mysql_num_rows() expects parameter 1 to be resource

y aca les dejo el codigo:

include ("conexion.php");

$nombre = htmlentities ($_POST['nombre_txt']);
$usuario = htmlentities ($_POST['usuario_txt']);
$email = htmlentities ($_POST['email_txt']);
$password = htmlentities ($_POST['password_txt']);
$cpassword = htmlentities ($_POST['passwordc_txt']);
$sexo = htmlentities ($_POST['sexo_slc']);
$nacimiento = htmlentities ($_POST['nacimiento_txt']);

if($password!=$cpassword) {
echo "Las contraseñas no coinciden";
}
else{

$seleccion = "SELECT * FROM usuarios WHERE usuario = '$usuario'";
$revisar = $conexion->query($seleccion);
$username_exist = mysql_num_rows($revisar); //aqui me indica que esta el error

if ($username_exist>0) {
echo "EL nombre de usuario o la cuenta de correo estan ya en uso";
}else{
$consulta = "INSERT INTO usuarios (nombre, usuario, email, password, sexo, nacimiento ) VALUES
('".$nombre."', '".$usuario."', '".$email."', '".$password."', '".$sexo."', '".$nacimiento."')";

$ejecutar_consulta = $conexion->query($consulta);

echo "El usuario $usuario ha sido registrado de manera satisfactoria.";
}
}


les agradeceria bastante que me mencionaran donde se encuentra el error :D
 
#3
creo que deberias de cambiar $revisar por $usuario ya que $revisar no esta reciviendo ningun valor en tu base de datos o serciorate duplicar la tabla al momento de la creacion
 

dmntnes

Bovino maduro
#4
$seleccion = "SELECT * FROM usuarios WHERE usuario = '$usuario'";
$revisar = $conexion->query($seleccion);
$username_exist = mysql_num_rows($revisar); //aqui me indica que esta el error
Es el codigo tal cual?
Prueba (sin albur) $seleccion="SELECT * FROM usuarios WHERE usuario= ' ".$usuario." ' ";
(atencion separe las comillas para que puedas distinguirlas)
sino jala avisas y seguimos checando
 
#5
haber releyendo tu codigo creo que te deberia quedar de la siguiente manera

$revisar = mysql_query("select count(*) as total from usuarios where usuario='$usuario'") or die(mysql_error());
list($total) = mysql_fetch_row($revisar);

checa por aqui andaremos cualquier cosa
 

osoluche_

Bovino maduro
#6
aa ok, si tu defines usuario = ' $usuario ' le estas diciendo que $usuario es una cadena, literalmente...
Lo que debes hacer es poner en tu caso usuario = '" . $usuario . "'

Esto es porque vas a concatenar un valor string a tu consulta, primero las comillas simples que dicen sera un string tu valor, despues las dobles para concatenar el valor de $usuario.

Salu2
 
Arriba