Foros del Web » Programando para Internet » PHP »

alguien ve el error?

Estas en el tema de alguien ve el error? en el foro de PHP en Foros del Web. ustedes entiende, estoy perdiendo mucho tiempo en algo q no lo merece. form_general.php: <html> <head> </head> <body> <?php if ($_post){ $conexion=mysql_connect("localhost","root","") or die("Problemas en la ...
  #1 (permalink)  
Antiguo 06/08/2011, 22:59
 
Fecha de Ingreso: julio-2011
Mensajes: 29
Antigüedad: 12 años, 8 meses
Puntos: 1
alguien ve el error?

ustedes entiende, estoy perdiendo mucho tiempo en algo q no lo merece. form_general.php:

<html>
<head>


</head>
<body>
<?php

if ($_post){




$conexion=mysql_connect("localhost","root","")
or die("Problemas en la conexion");
mysql_select_db("miproyecto",$conexion) or
die("Problemas en la seleccion de la base de datos");




foreach ($form_general as $input => $output)
{
$form_general=array('nombre' => $_POST['nombre'], 'apellido' => $_POST['apellido'], 'foto' => $_POST['foto'], 'e_mail' => $_POST['e_mail'], 'provincia' => $_POST['provincia'], 'barrio' => $_POST['barrio'], 'edad' => $_POST['edad'], 'remuneracion_pretendida' => $_POST['remunaracion_pretendida'], 'comentario_publico' => $_POST['comentario_publico']);

mysql_query("insert into general ($input) value ($output)", $conexion) or die("Problemas en el select".mysql_error());

}

mysql_close($conexion);

echo "tus datos se han enviado";

}

?>
<h1>Gracias por mostrarte como candidato! "click en guardar para grabar tus datos", luego "click en siguiente" </h1>
<h2>Ahora debes llenar este formulario</h2>
<h3>todos los datos son opcionales, pero sirven para que los empleadores puedan encontrarte!</h3>
<form action="form_general.php" method="post" enctype="multipart/form-data">

Nombre: <input type="text" name="nombre" size="25" maxlength="50"><br><br>
Apellido: <input type="text" name="apellido" size="35" maxlength="100">
<br><br>
Debes mostrar una pequeña foto tuya: <input type="file" name="foto"> <br><br>

Correo electrónico: <input type="text" value="@" name="e_mail" size="40" maxlength="100">
<br><br>


Provincia y barrio:

<select name="provincia" onchange="slctryole(this,this.form.select3)">
<option>- - - - - -</option>
<option value="buenos aires">buenos aires</option>
<option value="entre rios">entre rios</option>
<option value="cordoba">cordoba</option>
<option value="santa fe">santa fe</option>
<option value="chubut">chubut</option>
<option value="chaco">chaco</option>
<option value="corrientes">corrientes</option>
<option value="tucuman">tucuman</option>
<option value="santa cruz">santa cruz</option>
<option value="formosa">formosa</option>
<option value="salta">salta</option>
<option value="jujuy">jujuy</option>
<option value="san juan">san juan</option>
<option value="san luis">san luis</option>
<option value="mendoza">mendoza</option>
<option value="rio negro">rio negro</option>
<option value="neuquen">neuquen</option>
</select>
<select name="barrio">
<option>- - -seleccionar- -</option>

<option>Agronomía </option>
<option>Almagro </option>
<option>Balvanera </option>
<option>Barracas </option>
<option>Belgrano </option>
<option>Boedo </option>
<option>Caballito </option>
<option>Chacarita </option>
<option>Coghlan </option>
<option>Colegiales </option>
<option>Constitución </option>
<option>Flores </option>
<option>Floresta </option>
<option>La Boca </option>
<option>La Paternal </option>
<option>Liniers </option>
<option>Mataderos </option>
<option>Monte Castro </option>
<option>Monserrat </option>
<option>Nueva Pompeya </option>
<option>Núñez </option>
<option>Palermo </option>
<option>Parque Avellaneda </option>
<option>Parque Chacabuco </option>
<option>Parque Chas </option>
<option>Parque Patricios </option>
<option>Puerto Madero </option>
<option>Recoleta </option>
<option>Retiro </option>
<option>Saavedra </option>
<option>San Cristóbal </option>
<option>San Nicolás </option>
<option>San Telmo </option>
<option>Vélez Sársfield </option>
<option>Versalles </option>
<option>Villa Crespo </option>
<option>Villa del Parque </option>
<option>Villa Devoto </option>
<option>Villa General Mitre </option>
<option>Villa Lugano </option>
<option>Villa Luro </option>
<option>Villa Ortúzar </option>
<option>Villa Pueyrredón </option>
<option>Villa Real </option>
<option>Villa Riachuelo </option>
<option>Villa Santa Rita </option>
<option>Villa Soldati </option>
<option>Villa Urquiza</option>
</select>
</br></br>


<tr>
<td>Edad:
<br>
<input type="radio" name="edad" value="0_20"> 0-20
<br>
<input type="radio" name="edad" value="20_40" checked> 20-40
<br>
<input type="radio" name="edad" value="40_60"> 40-60
<br>
<input type="radio" name="edad" value="60_100"> 60-100</td>
</br></br>

</tr>

Remuneracion pretendida <select id="remuneracion_pretendida" name="remuneracion_pretendida" >
<option value=''>A convenir</OPTION>
<option value="34">$0 - $1000</option>
<option value="35">1000 - $1500</option>
<option value="36">$1500 - $2000</option>
<option value="37">$2500 - $3000</option>
<option value="51">$3000 - $3250</option>
<option value="41">$3250 - $3500</option>
<option value="53">$3500 - $3750</option>
<option value="54">$3750 - $4000</option>
<option value="42">$4000 - $4500</option>
<option value="55">$4500 - $5000</option>
<option value="43">$5000 - $5500</option>
<option value="56">$5500 - $6000</option>
<option value="44">$6000 - $7000</option>
<option value="57">$7000 - $8000</option>
<option value="58">$8000 - $9000</option>
<option value="45">$9000 - $10000</option>
<option value="46">$10001 - $15000</option>
<option value="47">más de $15000</option>
</select>

</br></br>
Tiene algun comentario que quiera hacer publico?
<br>
<textarea cols="40" rows="5" name="comentario_publico">Escriba aquí su comentario...</textarea>
<br><br>


<table width="50%" border="0" align="center" cellpadding="10" cellspacing="0">
<tr>
<td><div align="center">
<input type="submit" value="Enviar datos">
</div></td>
<td><div align="center">
<input type="Reset" value="Borrar todo">
</div></td>
</tr>
</table>
<div class="floatFix">

<div class="izq"><span class="bullet"><<</span>

<div class="der">
<a href="form_estudios.php"><b>siguiente</b></a>&nbsp;<span class="bullet">>></span></div>

</div>
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 06/08/2011, 23:02
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: alguien ve el error?

Tenemos que adivinar? que error te marca? que parte no te funciona?

if ($_post) { ???

no será $_POST ?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 06/08/2011, 23:05
 
Fecha de Ingreso: julio-2011
Mensajes: 29
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: alguien ve el error?

lleno el form y no se inserta en la bd mysql.
y ahora no me funciona el boton submit, no me direcciona a la pagina otra vez
  #4 (permalink)  
Antiguo 07/08/2011, 00:03
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: alguien ve el error?

en el foreach esta el problema cuando recorres el foreach por primera vez que datos tiene el array $form_general...y mas encima tratas de ingresar el $input y $output que no existen...
  #5 (permalink)  
Antiguo 07/08/2011, 04:32
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: alguien ve el error?

Tu problema está aquí:
Código PHP:
Ver original
  1. foreach ($form_general as $input => $output) {
  2.     $form_general=array('nombre' => $_POST['nombre'], 'apellido' => $_POST['apellido'], 'foto' => $_POST['foto'], 'e_mail' => $_POST['e_mail'], 'provincia' => $_POST['provincia'], 'barrio' => $_POST['barrio'], 'edad' => $_POST['edad'], 'remuneracion_pretendida' => $_POST['remunaracion_pretendida'], 'comentario_publico' => $_POST['comentario_publico']);
  3.  
  4.     mysql_query("insert into general ($input) value ($output)", $conexion) or die("Problemas en el select".mysql_error());
  5. }

Está muy mal planteado, en primer lugar, el array $form_general lo montas en la primera ejecución del foreach, pero la primera ejecución no llega nunca, porque la cabecera del foreach utiliza el array $form_general, que todavía no existe.

Aún así, cuando saques la declaración del array fuera, no puedes usar $input y $output para la consulta como lo haces, no tiene ningún sentido, $input y $output son el nombre de un campo y el valor del mismo. Pero la consulta está mal insertada, en caso de que lo arreglaras, te insertaría un registro rellenando sólo el nombre, otro sólo con el apellido y así sucesivamente.

Tienes que montar una consulta conjunta, que inserte todos los datos a la vez. Algo así:
Código PHP:
Ver original
  1. $sql = "INSERT INTO General (nombre, apellido, foto, e_mail, provincia, barrio, edad, remuneracion_pretendida, comentario_publico) VALUES ('";
  2. $sql .= $_POST['nombre'] . "', '";
  3. $sql .= $_POST['apellido'] . "', '";
  4. $sql .= $_POST['foto'] . "', '";
  5. $sql .= $_POST['e_mail'] . "', '";
  6. $sql .= $_POST['provincia'] . "', '";
  7. $sql .= $_POST['barrio'] . "', ";
  8. $sql .= $_POST['edad'] . ", '";
  9. $sql .= $_POST['remuneracion_pretendida'] . "', '";
  10. $sql .= $_POST['comentario_publico'] . "')";
  11.  
  12. mysql_query($sql, $conexion) or die("Problemas en el select".mysql_error());

De todas formas, aunque arregles eso y lo pongas como te digo, habrá cosas que mejorar. Por ejemplo, es muy optimista pensar que la foto se va a insertar, ya que en $_POST['foto'] va el nombre de la foto, pero tienes que hacer muchas más cosas para rescatar la foto en si e insertarla.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: html, mysql, sql, formulario
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 18:05.