Autor Tema: php obtener el teléfono de una base de datos insertando nombre y apellidos  (Leído 9101 veces)

jga

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 31
    • Ver Perfil
Hola a todos , estoy intentando crear un php que devuelva el telefono de una tabla de una base de datos , insertando el nombre y apellidos pero me da errores por todos lados y no consigo entenderlo


la tabla es esta

http://subefotos.com/ver/?0773b601f9d17b8cc9392caad95cf9edo.png



el formulario
Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<label for="textfield"></label>
<form id="form1" name="form1" method="post" action="recibe telefonos.php">
  <p>Busqueda   de telefonos</p>
  <p>Nombre</p>
  <p>
    <label for="textfield2"></label>
    <input type="text" name="nombre" id="textfield2" />
  </p>
  <p>Apellidos</p>
  <p>
    <label for="textfield3"></label>
    <input type="text" name="apellidos" id="textfield3" />
  </p>
  <p>
    <input type="submit" name="button" id="button" value="Buscar" />
  </p>
</form>
</body>
</html>

el php
Código: [Seleccionar]
<?php$nombre=$_POST['nombre'];$apellido = $_POST['apellidos'];?>

<?php$connect=mysqli_connect("127.0.0.1","jorge","","prueba");if ($connect)	{echo "conexion realizada.</br>";		$selec= "select telefono from persona where apellidos='$apellido' and nombre='$nombre'" ; 				$telefono=mysqli_query($connect,$selec);		if ($telefono==""){ echo " no hay ningun telefono con ese nombre y apellidos ";}				else {echo "el telefono de  ".$nombre."  ".$apellido."  es  ".$telefono;}				if (mysqli_close($connect)){echo " </br> desconexion realizada ";}		}     else {echo "error en la desconexion ";}?>


Gracias y un abrazo.
« Última modificación: 20 de Octubre 2014, 12:44 por Alex Rodríguez »

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Hola! Parece que se ven algunas cosas raras, por ejemplo en el html:

¿Para qué tienes este label fuera del form? <label for="textfield"></label>

Y también, para qué tener el label vacío. Veo más normal que el label envuelva a un texto o al mismo input antes que tenerlo vacío

  <p>
    <label for="textfield3">
    <input type="text" name="apellidos" id="textfield3" />
</label>
  </p>


También parece que tienes errores en la sintaxis de php, por ejemplo en $selec= "select telefono from persona where apellidos='$apellido' and nombre='$nombre'" ;

no estás haciendo bien los cierres de comillas ni introduciendo el operador . para concatenar las variables con el texto, con lo cual la consulta no parece que se vaya a generar bien.

Fíjate en cómo hace las concatenaciones de variables con las sentencias de consulta a la base de datos aquí usando el operador . :

https://www.aprenderaprogramar.com/foros/index.php?topic=1291.msg7217#msg7217

http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

jga

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 31
    • Ver Perfil
Gracias por las anotaciones Mastermind he reestructurado el codigo y  va ok , es que estoy empezando con php y eso se nota ::) pero es un gran apoyo que me ayudeis como hasta ahora  , gracias de nuevo y un abrazo .

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Hola, pega por favor el código reestructurado, así colaboramos para ayudar a otras personas que estén haciendo algo parecido. Saludos!!!  ;D

jga

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 31
    • Ver Perfil
A la orden!



formulario de carga de los datos

Código: [Seleccionar]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<link type="text/css" rel="stylesheet" href="estilos.css" />
</head>

<body>
<?phpinclude "cabecera.html"?>

<div id="principal">

<form method="post" action="insertar agenda.php">
<h1>Introduzca sus datos</h1>
<p><br />
 
  Nombre<input name="nombre" type="text" />
</p>
<p><br />
  apellidos<input name="apellidos" type="text" />
</p>
<p><br />
  telefono<input name="tlfno" type="text" />
</p>
<p><br />
  e-mail<input name="email" type="text" /><br />
</p>
<input name="" type="submit" value="Registrar" />




</form>
</div>
<?phpinclude "pie.html"?>

</body>
</html>

PHP que inserta los datos en la bbdd


Código: [Seleccionar]
<?php$connect=mysqli_connect("localhost","root","","academia");if ($connect) {		echo "conexion exitosa. <br />";		$id='';//auto incrementa sola el compo id , tambien se puede usar auto_increment y `rimary key al crear la tabla		$nombre= $_POST ['nombre'];		$apellidos= $_POST ['apellidos'];		$telefono= $_POST ['tlfno'];		$email= $_POST ['email'];		$consulta="insert into agenda values ('$id','$nombre','$apellidos',$telefono,'$email')";				$resultado=mysqli_query($connect,$consulta);				if ($resultado) {			echo "perfil almacenado. <br />";		}		else {			echo "error en la ejecución de la consulta. <br />";		}				if (mysqli_close($connect)){ 			echo "desconexión realizada. <br />";		} 		else {			echo "error en la desconexión";		}}?>


la hoja de estilos y la cabecera y el pie no los creo necesarios , ademas son facilitos.

Espero que ayude , un abrazo.

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2052
    • Ver Perfil
Hola, sí que ayuda, nos puede servir de referencia a otras personas para consultar, poner un ejemplo o comentar, revisar... Gracias por subirlo!!!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".