PHP - Ayuda Con PHP Y Forms

   
Vista:

Ayuda Con PHP Y Forms

Publicado por Fabian (3 intervenciones) el 18/05/2017 19:07:43
Estimados:

les cuento mi problematica, estoy haciendo un registro de visitas, en el cual se debe buscar primero un contacto en una base de datos, luego de seleccionado el contacto (mediante radio button), se debe enviar el registro seleccionado al formulario de registro de visitas, donde el usuario llena el resto de los campos, luego de ingresada la visita se debe guardar toda la informacion en la BD en tabla de visitas.

actualmente el código me presenta problemas en el envío del contacto a traves del radio button (ya que me arroja un error en el query de insert hacía la BD) envíando la información al formulario de visitas.

aquí el código:

Busqueda de contacto
este es el formulario donde busca el contacto y lo despliega en una tabla para seleccionarlo con el radio button y enviarlo al formulario de registro de visistas.

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<!DOCTYPE html>
<html lang="en">
 
<head>
<title>Contactos</title>
<link href="estilos_table.css" rel="stylesheet" type="text/css">
</head>
 
<body>
 
<h1>Busqueda Contacto</h1>
<br>
<div class="group">
 
<h2> Contactos </h2>
 
<form id="Busqueda" method="post">
 
     <center><label for="Buscar">Buscar <span>(Nombre o apellido)</span></label></center>
     <center><input type="text" size="35" maxlength="35" name="buscar" required/> </center>
      </p>
      <center> <input class="form-btn" name="submit" type="submit" value="Buscar" /></center>
</form>
<?php
 
/**
* busqueda por nombre contacto
*/
 
if($_POST['buscar']){
 $subs_busqueda=utf8_decode($_POST['buscar']);
 $host_db = "localhost";
 $user_db = "root";
 $pass_db = "";
 $db_name = "visita_test";
 $tbl_name = "contactos";
 $conexion = new mysqli($host_db, $user_db, $pass_db, $db_name);
 
 if ($conexion->connect_error) {
 die("La conexion falló: " . $conexion->connect_error);
}
 
mysqli_select_db($conexion,$db_name);
$consulta= "SELECT nombre FROM visita_test.contactos where nombre LIKE '%$subs_busqueda%'ORDER BY nombre ASC";
 
$resultado=mysqli_query($conexion,$consulta);
 
$count = mysqli_num_rows($resultado);
 
 if ($count = 0)
{
 
header('Location: Fail2.html');
 
} else {
 
echo " <table border = 1 cellspacing = 1 cellpadding = 1> <tr><th>Nombre</th><th>Check</th></tr>";
 
while ($row = mysqli_fetch_row($resultado)){
 
    echo " <tr> <td>".$row[0]."</td> <td><input type='radio' name= NombreC value='".$row[0]."'</td></tr>";
 
if(isset($_POST['envio'])){
 
    if(!empty($_POST['NombreC'])) {
   $subs_contacto=$_POST['NombreC'];
 
     }
    }
    }
}
}
 
?>
</br>
</br>
</br>
<center><input class="form-btn"  onClick="javascript:history.back(-1);" name="submit" type="button" value="Volver" /></center>
</br>
<form action="registroVisitas.html" method="post">
<input type="submit" name="envio" value="Registrar" />
</form>
</div>
</body>
</html>

Formulario registro de visitas:

aqui se ingresa la informacion de la visita, y recibo el contacto por POST , luego envio toda la informacion a otro formulario.

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
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Formulario de Registro Visitas</title>
<link href="estilos.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="group">
  <form action="registroVisitas.php" method="post">
  <h2>Formulario de Registro</h2>
      <label for="Rut">Rut <span>(sin puntos y con guion,ejemplo:12345678-0)</span></label>
      <input type="text" size="10" maxlength="10" name="rut" required/>
     </p>
      <label for="nombre">Nombre <span>(requerido)</span></label>
      <input type="text" name="nombre" class="form-input" required/>
      </p>
      <label for="apellido">Apellido <span>(requerido)</span></label>
      <input type="text" name="apellido" class="form-input" required />
      </p>
      <label for="email">Email <span></span></label>
      <input type="email" name="email" class="form-input" />
      </p>
      <input type='hidden' name='contacto' value="<?php. $_POST['NombreC'] .?>"/>
      </p>
      <label for="comentario">Comentario <span></span></label>
      <input type="text" name="comentario" class="form-input"/>
     <center> <input class="form-btn" name="submit" type="submit" value="Registrar" /></center>
    </p>
</form>
  </p>
  </br>
 <center><input class="form-btn"  onClick="javascript:history.back(-1);" name="submit" type="button" value="Atrás" /></center>
  </div>
</body>
</html>

Ingreso de visitas

en este formulario recojo toda la información y la envio a traves de un insert hacía la BD, en la tabla de visitas, acá se me genera el error ya que no hace la insercion de los datos por error de "Mysqli" (mysqli_error() expects exactly 1 parameter, 0 given).


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
62
63
64
65
<!DOCTYPE html>
 
<html lang="en">
<head>
 <title>Registro Visitas</title>
<link href="estilos.css" rel="stylesheet" type="text/css">
 <meta charset = "utf-8">
</head>
<body>
<div class="group">
 <center><input class="form-btn"  onClick="javascript:history.back(-1);" name="submit" type="button" value="Volver" /></center>
 </br>
<?php
 $host_db = "localhost";
 $user_db = "root";
 $pass_db = "";
 $db_name = "visita_test";
 $tbl_name = "visitas";
 $conexion = new mysqli($host_db, $user_db, $pass_db, $db_name);
 
 if ($conexion->connect_error) {
 die("La conexion falló: " . $conexion->connect_error);
}
$subs_rut =  utf8_decode($_POST['rut']);
$subs_name = utf8_decode($_POST['nombre']);
$subs_last = utf8_decode($_POST['apellido']);
$subs_email = utf8_decode($_POST['email']);
$subs_contacto=utf8_decode($_POST['contacto']);
$subs_comentario = utf8_decode($_POST['comentario']);
 
require("funciones.php");
if (valida_rut($subs_rut)== false)
{
echo 'El rut no es valido';
exit;
}
mysqli_select_db($conexion,$db_name);
$consulta= "SELECT * FROM visita_test.visitas WHERE rut = '$subs_rut'";
 
$resultado=mysqli_query($conexion,$consulta);
$count = mysqli_num_rows($resultado);
 if ($count > 0)
{
header('Location: Fail.html');
} else {
 
$insert_value = "INSERT INTO visita_test.visitas (`ID_Visitas` ,`rut` ,`nombre` ,`apellido` ,`email` ,`fecha` ,`hora` ,`contacto` ,`comentario`)
    VALUES (NULL,'$subs_rut','$subs_name','$subs_last','$subs_email',current_date(),current_time(),'$subs_contacto','$subs_comentario')";
 
mysqli_select_db($conexion,$db_name);
$retry_value =mysqli_query($conexion,$insert_value);
 
if (!$retry_value) {
   die('Error: ' . mysqli_error());
}
 
header('Location: Success.html');
}
mysqli_close($conexion);
 
?>
</div>
 </body>
 
</html>

Agradecido de cualquier ayuda que me puedan brindar!!!
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 [abZeroX]

Ayuda Con PHP Y Forms

Publicado por [abZeroX] (129 intervenciones) el 19/05/2017 00:11:04
Hola, intenta de cambiar las lineas 53-55 del ultimo archivo adjuntado por estas:
1
2
3
if (!$retry_value) {
   die('Error: ' . mysqli_error($conexion));
}

Esto deberia solucionar el problema de mysqli_error, luego compartenos el error que te muestra al ejecutarlo.
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

Ayuda Con PHP Y Forms

Publicado por Fabian (3 intervenciones) el 19/05/2017 19:53:40
Hola:

mira este es el mensaje que me arroja:

Error: 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 'NombreC'] .?>','asdasd')' at line 2
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 [abZeroX]

Ayuda Con PHP Y Forms

Publicado por [abZeroX] (129 intervenciones) el 19/05/2017 23:15:57
Hola, es un error de sintaxis lo que marca, y esto se debe al valor que trae cargado la variable $_POST['contancto'], que en vez de guarda un valor en si esta almacenando literalmente el nombre de la variable.
Intenta cambiar la linea del archivo de Formulario registro de visitas:

1
<input type='hidden' name='contacto' value="<?php. $_POST['NombreC'] .?>"/>

Por esta:

1
<input type='hidden' name='contacto' value="<?php $_POST['NombreC']; ?>" />

Nos comentas como te fue.
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

Ayuda Con PHP Y Forms

Publicado por Fabian (3 intervenciones) el 20/05/2017 07:42:18
Hola,

mira ya hice el cambio que me mencionaste y, a parte le agregue un "echo" adelante y funciono sin problemas

1
<input type='hidden' name='contacto' value="<?php echo $_POST['NombreC']; ?>" />

así que se me soluciono el problema!

MUCHAS GRACIAS!!!!!!!!!!!!!!
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