PHP - Buscador en PHP con 2 variables

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

Buscador en PHP con 2 variables

Publicado por Jose Maria (7 intervenciones) el 06/09/2019 13:13:30
Este es mi 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bolsa de trabajo</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>
<body>
 
<div class="container">
  <h2>Bolsa de trabajo</h2>
  <form role = 'form' method = 'POST'>
    <div class="form-group">
      <label for="registro">Cod. Registro</label>
      <input type="text" class="form-control" name="registro" placeholder="Introduzca Código de Registro" required>
      <label for="dni">DNI</label>
      <input type="text" class="form-control" name="dni" placeholder="Introduzca DNI" required>
    </div>
    <button type="submit" class="btn btn-default">Consultar</button>
  </form>
<?php
 
if($_POST){
require('conexion.php');
$con = Conectar();
$id = $_POST['registro'];
$SQL = 'SELECT id, dni, nombre, apellidos, puesto_solicitado, admitido, puntos, observaciones FROM bolsa WHERE registro = :reg';
$stmt = $con->prepare($SQL);
$result = $stmt->execute(array(':reg'=>$id));
$rows = $stmt->fetchAll(\PDO::FETCH_OBJ);
if(count($rows)){
foreach ($rows AS $row) {
?>
<div class="panel panel-primary">
  <div class="panel-heading">Información del usuario con registro : <?php print($id)?></div>
  <div class="panel-body">
    <?php print('NOMBRE :'.$row->nombre.'<br>')?>
    <?php print('APELLIDOS :'.$row->apellidos.'<br>')?>
    <?php print('DNI :'.$row->dni.'<br>')?>
    <?php print('PUESTO SOLICITADO :'.$row->puesto_solicitado.'<br>')?>
    <?php print('ADMITIDO :'.$row->admitido.'<br>')?>
    <?php print('PUNTOS :'.$row->puntos.'<br>')?>
    <?php print('OBSERVACIONES :'.$row->observaciones.'<br>')?>
  </div>
</div>
<?php
}
}else{
  echo 'el usuario no existe en la base de datos';
}
}
?>
</div>
 
</body>
</html>

Consigo hacer la busqueda por la variable registro sin error, pero necesito que ademas de registro me busque por la variable dni, pero cuando la incluyo me da error y es que no se como incluirla correstamente.

Gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
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

Buscador en PHP con 2 variables

Publicado por joel (1269 intervenciones) el 06/09/2019 13:51:20
Hola Jose Maria, según veo, seria algo así:

1
2
3
4
$SQL = 'SELECT id, dni, nombre, apellidos, puesto_solicitado, admitido, puntos, observaciones FROM bolsa WHERE registro = :reg AND dni = :dni';
$stmt = $con->prepare($SQL);
$result = $stmt->execute(array(':reg'=>$id));
$result = $stmt->execute(array(':dni'=>$_POST["dni"]));
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: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Buscador en PHP con 2 variables

Publicado por Jose María (7 intervenciones) el 06/09/2019 14:29:34
Aun me falla tras aplicarlo pero infinitas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Buscador en PHP con 2 variables

Publicado por Mauro (1034 intervenciones) el 06/09/2019 15:37:24
¿Qué problema ves?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Buscador en PHP con 2 variables

Publicado por Jose María (7 intervenciones) el 06/09/2019 15:52:08
Con mi codigo suelta lo que hay en la imagen sin mostrar algun error, eso la busqueda solo la hace por registro y me exigen que tambien la haga por dni
new

y con el trozo de codigo facilitado por el amigo que me contesto, me suelta este problema

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\xampp\htdocs\busqueda\index.php on line 32

Notice: Undefined index: dni in C:\xampp\htdocs\busqueda\index.php on line 33

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\xampp\htdocs\busqueda\index.php on line 33
el usuario no existe en la base de datos

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
61
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bolsa de trabajo</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>
<body>
 
<div class="container">
  <h2>Bolsa de trabajo</h2>
  <form role = 'form' method = 'POST'>
    <div class="form-group">
      <label for="registro">Cod. Registro</label>
      <input type="text" class="form-control" name="registro" placeholder="Introduzca Código de Registro" required>
      <label for="dni">DNI</label>
      <input type="text" class="form-control" name="DNI" placeholder="Introduzca DNI" required>
    </div>
    <button type="submit" class="btn btn-default">Consultar</button>
  </form>
<?php
 
if($_POST){
require('conexion.php');
$con = Conectar();
$id = $_POST['registro'];
$SQL = 'SELECT id, dni, nombre, apellidos, puesto_solicitado, admitido, puntos, observaciones FROM bolsa WHERE registro = :reg AND dni = :dni';
$stmt = $con->prepare($SQL);
$result = $stmt->execute(array(':reg'=>$id));            linea 32
$result = $stmt->execute(array(':dni'=>$_POST["dni"]));          linea 33
$rows = $stmt->fetchAll(\PDO::FETCH_OBJ);
if(count($rows)){
foreach ($rows AS $row) {
?>
<div class="panel panel-primary">
  <div class="panel-heading">Información del usuario con registro : <?php print($id)?></div>
  <div class="panel-body">
    <?php print('NOMBRE :'.$row->nombre.'<br>')?>
    <?php print('APELLIDOS :'.$row->apellidos.'<br>')?>
    <?php print('DNI :'.$row->dni.'<br>')?>
    <?php print('PUESTO SOLICITADO :'.$row->puesto_solicitado.'<br>')?>
    <?php print('ADMITIDO :'.$row->admitido.'<br>')?>
    <?php print('PUNTOS :'.$row->puntos.'<br>')?>
    <?php print('OBSERVACIONES :'.$row->observaciones.'<br>')?>
  </div>
</div>
<?php
}
}else{
  echo 'el usuario no existe en la base de datos';
 
}
}
?>
</div>
 
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
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

Buscador en PHP con 2 variables

Publicado por joel (1269 intervenciones) el 06/09/2019 22:16:24
Puede ser que tengas que poner DNI en mayusculas... en vez de:
1
$_POST["dni"]
poner:
1
$_POST["DNI"]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfredo

Buscador en PHP con 2 variables

Publicado por Alfredo (3 intervenciones) el 11/09/2019 18:10:07
1
2
3
4
5
6
7
8
9
10
11
<div class="container">
  <h2>Bolsa de trabajo</h2>
  <form role = 'form' method = 'POST'>
    <div class="form-group">
      <label for="registro">Cod. Registro</label>
      <input type="text" class="form-control" name="registro" placeholder="Introduzca Código de Registro" required>
      <label for="dni">DNI</label>
      <input type="text" class="form-control" name="DNI" placeholder="Introduzca DNI" required>
    </div>
    <button type="submit" class="btn btn-default">Consultar</button>
  </form>


Este es el error amigo, estas queriendo obtener el valor de $_POST['dni']; y en tu formulario tienes puesto DNI en mayusculas.

comentanos si te ayudamos en el problema
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: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Buscador en PHP con 2 variables

Publicado por Jose María (7 intervenciones) el 11/09/2019 18:18:57
Gracias ya lo saque. Ahora lo que me interesaria es poner un condicional, para en el caso de estar admitido no muestre el campo observaciones.

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
61
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bolsa de trabajo</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>
<body>
 
<div class="container">
<h2>Bolsa de trabajo</h2>
<form role = 'form' method = 'POST'>
<div class="form-group">
<label for="registro">Cod. Registro</label>
<input type="text" class="form-control" name="registro" placeholder="Introduzca Código de Registro" required>
<label for="dni">DNI</label>
<input type="text" class="form-control" name="dni" placeholder="Introduzca DNI" required>
</div>
<button type="submit" class="btn btn-default">Consultar</button>
</form><br>
<?php
 
if($_POST){
require('conexion.php');
$con = Conectar();
$id = $_POST['registro'];
$dn = $_POST['dni'];
$SQL = 'SELECT dni, nombre, apellidos, puesto_solicitado, admitido, puntos, observaciones FROM bolsa WHERE registro = :reg AND dni = :di';
$stmt = $con->prepare($SQL);
$result = $stmt ->execute(array(':reg' => $id, ':di' => $dn));
$rows = $stmt->fetchAll(\PDO::FETCH_OBJ);
if(count($rows)){
foreach ($rows AS $row) {
?>
<div class="panel panel-primary">
<div class="panel-heading">Información del usuario con registro : <?php print($id)?></div>
<div class="panel-body">
<?php print('NOMBRE :'.$row->nombre.'<br>')?>
<?php print('APELLIDOS :'.$row->apellidos.'<br>')?>
<?php print('DNI :'.$row->dni.'<br>')?>
<?php print('PUESTO SOLICITADO :'.$row->puesto_solicitado.'<br>')?>
<?php print('ADMITIDO :'.$row->admitido.'<br>')?>
<?php print('PUNTOS :'.$row->puntos.'<br>')?>
<?php print('OBSERVACIONES :'.$row->observaciones.'<br>')?>
</div>
</div>
<?php
}
}else{
echo 'el usuario no existe en la base de datos';
 
}
}
?>
</div>
 
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar