Autor Tema: [PHP][Ayuda] Error en consulta.  (Leído 291 veces)

Desconectado Coals

  • PHPerit@
  • *
  • Mensajes: 4
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
[PHP][Ayuda] Error en consulta.
« en: 03 de Agosto de 2013, 23:20:45 pm »
Buenas, haciendo el registro de una web, me surgieron problemas muy desconcertantes, ya que por más que reviso y reviso, no veo el fallo, a ver si alguno de vosotros me puede echar un cable, y ayudarme a buscar el error.

El error especificamente es que a la hora de ejecutar la consulta ,siempre me da la segunda condición del if, sobre si la consulta se ha hecho con éxito o no, pero siempre me da que no, he probado imprimiendo la consulta para ver si el fallo era de sintaxis o simplemente alguna variable mal nombrada, pero todo bien, hasta he ejecutado la propia consulta que me imprime en la consola SQL del phpmyadmin y me la toma como válida y me registra el usuario.., pero no tengo ni idea de que será. Os dejo el código:

Código: [Seleccionar]
<?php

require_once(
"conexion.php");
require_once("funciones.php");

echo "<meta charset=&#39;utf-8&#39;/>";

$usuario strip_tags(htmlspecialchars($_POST[&#39;usuario&#39;]));
$correo strip_tags(htmlspecialchars($_POST[&#39;correo&#39;]));
$skype strip_tags(htmlspecialchars($_POST[&#39;skype&#39;]));
$password strip_tags(htmlspecialchars($_POST[&#39;password&#39;]));
$password2 strip_tags(htmlspecialchars($_POST[&#39;password2&#39;]));

$sql "SELECT * FROM usuarios WHERE usuario=&#39;".$usuario."&#39; ";
$res mysql_query($sql);

if(isset($_POST[&#39;envio&#39;]))
{
if(mysql_fetch_assoc($res))
{
echo "Este usuario ya existe.";
}
elseif(empty($usario) && empty($password) && empty($correo) && empty($skype))
{
echo "Debes rellenar los campos.";
}
elseif(strlen($usuario) < 4)
{
echo "El usuario debe contener más de 3 carácteres.";
}
elseif(!ValidacionEmail($correo))
{
echo "Debes introducir un emial válido.";
}
elseif(strlen($password) < 5)
{
echo "La contraseña debe contener más de 5 carácteres.";
}
elseif($password != $password2)
{
echo "Las contraseñas deben coincidir.";
}
else
{
$query "INSERT INTO usuarios (usuario, correo, skype, contraseña)
VALUES (&#39;"
.mysql_escape_string($usuario)."&#39;,&#39;".mysql_escape_string($correo)."&#39;,&#39;".mysql_escape_string($skype)."&#39;,&#39;".mysql_escape_string($password)."&#39;)
 "
;

if (mysql_query($query)) 
{
echo "El usuario fue registrado con éxito.";
}
else
{
echo "Hubo un error en el registro.";
}
}
}
else
{
echo "<h1>No estás autorizado para ver esta página.</h1>";
}
?>

PD: El archivo de la conexión está bien incluído, y los datos de la conexión también está todo bien sin error alguno.
PD2: Gracias a todos por echarme un cable. :)
« Última modificación: 04 de Agosto de 2013, 00:33:42 am por Coals »

Comunidad PHPeros

[PHP][Ayuda] Error en consulta.
« en: 03 de Agosto de 2013, 23:20:45 pm »

Desconectado juanito

  • PHPerit@
  • *
  • Mensajes: 23
  • Karma: 1
  • Sexo: Masculino
  • Aprendiendo cada día más
    • Ver Perfil
    • Tutoriales de Programación
Re:[PHP][Ayuda] Error en consulta.
« Respuesta #1 en: 05 de Agosto de 2013, 01:47:04 am »
En el primer if

Código: [Seleccionar]
<?php
if(mysql_fetch_assoc($res))
{
echo "Este usuario ya existe.";
}
?>


cambialo por

Código: [Seleccionar]
<?php
if(mysql_num_rows($res))
{
echo "Este usuario ya existe.";
}
?>


el fetch_assoc no te lanzara true o false a diferencia que num_rows te lanzara 0 = fasle o 1 a mayor que es igual a true.