PHP - consulta datos con php

 
Vista:
sin imagen de perfil
Val: 27
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

consulta datos con php

Publicado por locunar (6 intervenciones) el 31/01/2019 20:00:33
Buenas, estoy un poco desesperado porque no consigo sacar un simple registro adelante. El php saca los datos del formulario html y los guarda en la base de datos. Ahora lo que querria hacer es una comprovación, para saber si el email o el usuario ya existen. En el caso de que existan, que no registre, y en el caso de que no existan, que registre. Ya he probado mil cosas que he encontrado por ahi, pero me dan error.
(Lo de $password y $cpassword es lo que te sale en muchas paginas de "repite tu contraseña")

Adjunto el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
//Variables de Registro
$email = $_GET['email'];
$usuario = $_GET['user'];
$password = $_GET['pass'];
$cpassword = $_GET['cpass'];
$xp = "0";
 
//Variables de conexion
$db = "prueba";
$dbu = "prueba";
$dbp = "test";
$host = "test";
$tabla = "usuarios";
 
//conection to BD
$dblink = mysqli_connect($host,$dbu,$dbp);
 
//Select DB
$seldb = mysqli_select_db($dblink,$db);
 
mysqli_query($dblink,"SET NAMES 'utf8'");
 
if( $password == $cpassword ){
 
  $salt = md5($password);
 
 
  ql_query = "INSERT INTO `$db`.`$tabla` (`user`,`email`,`password`,`xp`) VALUES ('$usuario','$email','$salt','$xp');";
 
  $sql = mysqli_query($dblink,$sql_query);
 
  if($sql) {
       //We need the last id for insert into
       header("Location: ../index.html");
  }else {
    echo 'NO Saved on database $db Problems with url|'.$dblink;
  }
}else {
  echo 'Las contraseñas no coinciden';
}
 
//Close off the MySQL connection to save resources.
mysqli_close($dblink);
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de santi
Val: 588
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

consulta datos con php

Publicado por santi (204 intervenciones) el 01/02/2019 01:46:10
Hola,

Tendrías que hacer primero la consulta a la bbdd con los datos del post para saber si existe el usuario:

1
2
3
4
5
6
7
8
9
10
11
12
13
$user_check = "SELECT * FROM usuarios WHERE nombre='$usuario' OR email='$email' LIMIT 1";//compruebas si existe este registro en la bbdd
 
$resultado = mysqli_query($dblink, $user_check);
 
$user = mysqli_fetch_assoc($resultado);
 
  if ($user) {//si existe el usuario
    if ($user['usuario'] === $usuario && $user['email'] === $email) {//si existe el nombre de usuario o el email
      //este usuario existe en la base de datos
    }else{
        //el nombre de usuario ni el email existe
    }
  }

Prueba a ver ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 27
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

consulta datos con php

Publicado por locunar (6 intervenciones) el 01/02/2019 07:42:59
El * de después del select que quiere decir?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

consulta datos con php

Publicado por joel (1269 intervenciones) el 01/02/2019 09:01:29
Determina los campos que quieres que devuelve la consulta... al poner * indicas que te devuelve todos los campos de la tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 27
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

consulta datos con php

Publicado por locunar (6 intervenciones) el 01/02/2019 10:23:54
Muchas gracias. He aplicado lo que me ha pasado santi y me queda asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
//Variables de Registro
$email = $_GET['email'];
$usuario = $_GET['user'];
$password = $_GET['pass'];
$cpassword = $_GET['cpass'];
$xp = "0";
 
//Variables de conexion
$db = "prueba";
$dbu = "prueba";
$dbp = "test";
$host = "test";
$tabla = "usuarios";
 
//conection to BD
$dblink = mysqli_connect($host,$dbu,$dbp);
 
//Select DB
$seldb = mysqli_select_db($dblink,$db);
 
mysqli_query($dblink,"SET NAMES 'utf8'");
 
$user_check = "SELECT * FROM usuarios WHERE nombre='$usuario' OR email='$email' LIMIT 1";//compruebas si existe este registro en la bbdd
 
$resultado = mysqli_query($dblink, $user_check);
 
$user = mysqli_fetch_assoc($resultado);
 
  if ($user) {//si existe el usuario
    if ($user['usuario'] === $usuario && $user['email'] === $email) {
      //este usuario existe en la base de datos
      echo "El email ya existe <a href=\"../registro.html\">\"VOLVER\"</a></center>";
    }else{
        //el nombre de usuario ni el email existe
        echo "El usuario ya existe <a href=\"../registro.html\">\"VOLVER\"</a></center>";
    }
  }else{
    if( $password == $cpassword ){
 
      $salt = md5($password);
 
      $sql_query = "INSERT INTO `$db`.`$tabla` (`user`,`email`,`password`,`xp`) VALUES ('$usuario','$email','$salt','$xp');";
 
      $sql = mysqli_query($dblink,$sql_query);
 
      if($sql) {
           //We need the last id for insert into
           header("Location: ../index.html");
      }else {
        echo "Error de conexión <a href=\"../registro.html\">\"VOLVER\"</a></center>";
      }
    }else {
      echo "Las contraseñas no coinciden <a href=\"../registro.html\">\"VOLVER\"</a></center>";
    }
  }
 
//Close off the MySQL connection to save resources.
mysqli_close($dblink);
?>

Ahora cuando no existe, si que registra, pero cuando el usuario ya existe me saca el mensaje "error de conexión VOLVER" que es el echo del else del if($sql) Como puedo solucionar esto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar