Autor Tema: php obtener el teléfono de una base de datos insertando nombre y apellidos  (Leído 6940 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>
<?php
include "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>
<?php
include "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: 2050
    • 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".