Foros del Web » Programando para Internet » PHP »

Me inserta un campo antes de llenarlo

Estas en el tema de Me inserta un campo antes de llenarlo en el foro de PHP en Foros del Web. Hola a todos estoy haciendo un formulario para llenar mi MYSql, el tema es que cuanto ejectuto el archivo me llena la base de datos ...
  #1 (permalink)  
Antiguo 19/10/2010, 01:14
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 17 años, 3 meses
Puntos: 7
Pregunta Me inserta un campo antes de llenarlo

Hola a todos estoy haciendo un formulario para llenar mi MYSql, el tema es que cuanto ejectuto el archivo me llena la base de datos en blanco y despues si lleno los campos los llena con la info ingresda,

aca dejo el codigo que no se porque se ejecuta antes de apretar el boton el llenado..

Muchas GRacias a todoa
Saludos de antemano
Fede



Código PHP:
<HTML>
    <form name="form1" method="post" action="index.php">

nombre<input name="nombre" type="text" id="nombre" value=""<br>
apellido<input name="apellido" type="text" id="apellido" value=""<br>
ELEFONO<input name="telefono" type="text" id="telefono" value=""<br>

<input type="submit" name="submit" value="enviar">
</form>
</HTML>
<?

    
include ("includes/config.php");
    include (
"includes/funciones.php");
    
//nos conectamos a mysql
    
$cnx conectar ();
    
    
$campos "nombre,apellido,telefono";
    
$valores "'".$_POST['nombre']."',";
    
$valores .= "'".$_POST['apellido']."',";
    
$valores .= "'".$_POST['telefono']."'";
    
$sql "INSERT INTO directorio ($campos) VALUES($valores)";
    
$res mysql_query($sql) or die(mysql_error());
    echo 
"Registro ingresado.<br><a href='listado.php'>regresar</a>";
    
mysql_close($cnx);
    exit;

?>
  #2 (permalink)  
Antiguo 19/10/2010, 01:36
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 18 años
Puntos: 32
Respuesta: Me inserta un campo antes de llenarlo

Hola.

Cuando hace el submit, lo que hace es volver a cargar la pagina, recoge los datos que contienen el formulario y lo envía a index.php, pero al hacerlo borra los valores porque pones value="", es decir eliminar el valor y lo enviar por post a index.php.

Lo puedes hacer de dos formas

Insertas el código php arriba de todo y pones una condición.

Código PHP:
<? 
if (isset($_POST[submit]))
    {
    include (
"includes/config.php");
    include (
"includes/funciones.php");
    
//nos conectamos a mysql
    
$cnx conectar ();
    
    
$campos "nombre,apellido,telefono";
    
$valores "'".$_POST['nombre']."',";
    
$valores .= "'".$_POST['apellido']."',";
    
$valores .= "'".$_POST['telefono']."'";
    
$sql "INSERT INTO directorio ($campos) VALUES($valores)";
    
$res mysql_query($sql) or die(mysql_error());
    echo 
"Registro ingresado.<br><a href='listado.php'>regresar</a>";
    
mysql_close($cnx);
    
    }

?>
<HTML>
    <form name="form1" method="post" action="index.php">

nombre<input name="nombre" type="text" id="nombre" value=""<br>
apellido<input name="apellido" type="text" id="apellido" value=""<br>
ELEFONO<input name="telefono" type="text" id="telefono" value=""<br>

<input type="submit" name="submit" value="enviar">
</form>
</HTML>
Obserba que he quitado exit() para que llegue al final del todo, no es necesario ponerlo, ya que si no, la pantalla se quedaría en blanco.


o la otra forma de hacer es dejarle los valores al formulario de esta forma
Código PHP:
nombre<input name="nombre" type="text" id="nombre" value="<?echo $_POST[nombre]?>"<br>
apellido<input name="apellido" type="text" id="apellido" value="<?echo $_POST[apellido]?>"<br>
TELEFONO<input name="telefono" type="text" id="telefono" value="<?echo $_POST[telefono]?>"<br>

Pruébalo y comenta.

Suerte.
  #3 (permalink)  
Antiguo 19/10/2010, 11:46
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 17 años, 3 meses
Puntos: 7
De acuerdo Respuesta: Me inserta un campo antes de llenarlo

Muchas GRacias por tu ayuda, si me sirvio el codigo,
Gracias y Saludos.!!

Etiquetas: inserta, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:29.