Foros del Web » Programando para Internet » PHP »

Formulario no guarda en tabla mysql

Estas en el tema de Formulario no guarda en tabla mysql en el foro de PHP en Foros del Web. Hola nuevamente... Tengo un formulario, el cual necesito guardarlo en una tabla mysql... el problema es que el php que guarda no me arroja error ...
  #1 (permalink)  
Antiguo 29/11/2011, 12:14
 
Fecha de Ingreso: noviembre-2011
Mensajes: 121
Antigüedad: 12 años, 5 meses
Puntos: 0
Formulario no guarda en tabla mysql

Hola nuevamente...

Tengo un formulario, el cual necesito guardarlo en una tabla mysql... el problema es que el php que guarda no me arroja error alguno, pero tampoco guarda la info que quiero...

Este es el formulario

Código:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<style type="text/css">
<!--
.Estilo5 {font-family: Arial; font-size: 12; }
.Estilo6 {font-size: 12}
-->
</style>
<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }
//-->
</script>
</head>

<?php
$nompro = $_POST['proy'];
$numope = $_POST['noper'];
$admpro = $_POST['admpro'];
$nomcon = $_POST['contacto'];
$direc = $_POST['direccion'];
$telef = $_POST['telefono'];
$correo = $_POST['correo'];
$pertenece = $_POST['pert'];
$filename="opttec/regiones.txt";
$regiones=file($filename);
?>


<body>


<form action="pruebaproy.php" method="post" name="f1" target="_self" id="f1">


<table width="72%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
      <table width="102%"  align="center" border="0" cellspacing="4" cellpadding="0">
      <tr>
        <td width="49%" ><div align="right"><span class="Estilo5">Nombre del Proyecto : </span></div></td>
        <td width="51%"><span class="Estilo5">
          <input name="nompro" type="text" id="nompro" size="50" maxlength="80" value="<?php echo trim($nompro) ?>"  />
        </span></td>
      </tr>
         <tr>
        <td width="49%"><div align="right"><span class="Estilo5">N&uacute;mero de Operaci&oacute;n : </span></div></td>
        <td width="51%"><span class="Estilo6">
          <input name="numope" type="text" id="numope" size="6" maxlength="6" value="<?php echo trim($numope) ?>"/>
          </span></td>
      </tr>
          <td><div align="right"><span class="Estilo5">Administrador del Proyecto : </span></div></td>
        <td><span class="Estilo6">
          <input name="admpro" type="text" id="admpro" size="50" maxlength="80" value="<?php echo trim($admpro) ?>"/>
          </span></td>
      </tr>
      <tr>
        <td><div align="right"><span class="Estilo5">Nombre del Contacto : </span></div></td>
        <td><span class="Estilo6">
          <input name="nomcon" type="text" id="nomcon" size="50" maxlength="80" value="<?php echo trim($nomcon) ?>"/>
        </span></td>
      </tr>
      <tr>
        <td><div align="right"><span class="Estilo5">Región : </span></div></td>
                
<td><select name="selregion" onchange="cambia_region()">
			<option value="0" SELECTED>Seleccione una Region</option>
<?php
				for($z=1;$z < count($regiones);$z++) {
			echo '<option value="'.$z.'">'.$regiones[$z].'</option>';	
			}
			
			?>
			</select></td>
          </tr>			
         <tr>
            <td><div align="right"><span class="Estilo5">Comuna : </span></div></td>
<td><select name="comuna">
<option value="-">-</option>
</select></td>
         </tr>
                 
      <tr>
        <td><div align="right"><span class="Estilo5">Direcci&oacute;n : </span></div></td>
        <td><span class="Estilo6">
          <input name="direc" type="text" id="direc" size="50" maxlength="200" value="<?php echo trim($direc) ?>"/>
          </span></td>
      </tr>
      <tr>
        <td><div align="right"><span class="Estilo5">Tel&eacute;lefono : </span></div></td>
        <td><span class="Estilo6">
          <input name="telef" type="text" id="telef" size="50" maxlength="50" value="<?php echo trim($telef) ?>"/>
          </span></td>
      </tr>
      <tr>
        <td width="49%"><div align="right"><span class="Estilo5">Correo : </span></div></td>
        <td width="51%"><span class="Estilo6">
          <input name="correo" type="text" id="correo" value="<?php echo trim($correo) ?>" size="50" maxlength="50"/>
          </span></td>
      </tr>
      <tr>
        <td height="40"><div align="right"><span class="Estilo5">Pertenece a : </span></div></td>
        <td><span class="Estilo5">
           <select name="pertenece" id="per">
<?php
echo '<option value="opt"'; if (trim($pertenece)=="opt") echo 'selected="selected"'; echo '>OPTIMIZA Chile S.A.</option>';
echo '<option value="eje"'; if (trim($pertenece)=="eje") echo 'selected="selected"';echo '>Ejercito</option>';
echo '<option value="arm"'; if (trim($pertenece)=="arm") echo 'selected="selected"';echo '>Armada</option>';
echo '<option value="avi"'; if (trim($pertenece)=="avi") echo 'selected="selected"';echo '>Aviación</option>';
echo '<option value="car"'; if (trim($pertenece)=="car") echo 'selected="selected"';echo '>Carabineros</option>';
echo '<option value="con"'; if (trim($pertenece)=="con") echo 'selected="selected"';echo '>Constructora</option>';
echo '<option value="adm"'; if (trim($pertenece)=="adm") echo 'selected="selected"';echo '>Adm. Edificio</option>';
echo '<option value="otr"'; if (trim($pertenece)=="otr") echo 'selected="selected"';echo '>Otro</option>';
?>
	</select>
        </span></td>
      </tr>
      <tr>
        <td width="49%"><div align="right"></div></td>
        <td width="51%"><label>
          <input name="CREAR PROYECTO" type="submit" id="CREAR PROYECTO" onclick="MM_validateForm('nompro','','R','numope','','R','admpro','','R','nomcon','','R','direc','','R','telef','','R','correo','','RisEmail');return document.MM_returnValue" value="CREAR PROYECTO" />
          </label>
        <BR /></td>
      </tr>
    </table>
  
    </td>
     </tr>
</table></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>


</form>

<script> 

<?php

 


		for($z2=1;$z2 < count($regiones);$z2++) {
				$filenamemod="opttec/ciudades/".rtrim($regiones[$z2]).".txt";
						
				$textomod=file($filenamemod);
				
				
				echo 'var comunas_'.$z2.'=new Array("-"';
				for($zmod=1;$zmod<count($textomod);$zmod++) {
								echo ',"'.rtrim($textomod[$zmod]).'"';	
			}	
			echo ')'.chr(13).chr(10);
			}
?>

function cambia_region(){

var selregion
selregion = document.f1.selregion[document.f1.selregion.selectedIndex].value
	
if (selregion != 0) {
		//si estaba definido, entonces coloco las opciones de la comuna correspondiente.
		//selecciono el array de comuna adecuado
mis_comunas=eval("comunas_" + selregion)
		//calculo el numero de comunas
num_comunas = mis_comunas.length
		//marco el número de comunas en el select
document.f1.comuna.length = num_comunas
		//para cada comuna del array, la introduzco en el select
for(i=1;i < num_comunas;i++){
document.f1.comuna.options[i].value=mis_comunas[i]
document.f1.comuna.options[i].text=mis_comunas[i]
		}	
 }else{
		//si no había comuna seleccionada, elimino las comunas del select
	document.f1.comuna.length = 1
		//coloco un guión en la única opción que he dejado
document.f1.comuna.options[0].value = "-"
document.f1.comuna.options[0].text = "-"
	}
	//marco como seleccionada la opción primera de comuna
	document.f1.comuna.options[0].selected = true
}
</script>
</body>
</html>
y este es el php que deberia guardar en la tabla...

Código PHP:
<HTML>
<HEAD>
<TITLE>Producto.php</TITLE>
</HEAD>
<BODY>
<?php
$proy
=$_POST['proy'];
$noper=$_POST['noper'];
$admpro=$_POST['admpro'];
$contacto=$_POST['contacto'];
$region=$_POST['region'];
$comuna=$_POST['comuna'];
$direccion=$_POST['direccion'];
$telefono=$_POST['telefono'];
$correo=$_POST['correo'];
$pert=$_POST['pert'];
$link = @mysql_connect("localhost""root","")
     or die (
"Error al conectar a la base de datos.");
@
mysql_select_db("optchile"$link)
     or die (
"Error al conectar a la base de datos.");
$query "INSERT INTO proyectos (proy,noper,admpro,contacto,region,comuna,direccion,telefono,correo,pert)\n"
        
"VALUES ('$proyecto','$noper','$admpro','$contacto','$region','$comuna','$direccion','$telefono','$correo',$pert') \n";

mysql_query($query);
mysql_close($link);
?>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="nueproyectopt.php">Ingresar otro registro</a></div>
</BODY>
</HTML>
Muchas gracias nuevamente por la ayuda que me puedan dar...
  #2 (permalink)  
Antiguo 29/11/2011, 12:20
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Formulario no guarda en tabla mysql

No estoy seguro, pero creo que tienes el script que guarda en otro archivo mientras que mandas los datos al mismo script (_self) del formulario.

Respecto a que no muestre error, coloca esto al inicio de tu php para que te marque cualquier error, que lo debe haber si recibes no recibes el $_POST

error_reporting(E_ALL);
ini_set("display_errors", 1);
  #3 (permalink)  
Antiguo 29/11/2011, 12:23
 
Fecha de Ingreso: septiembre-2010
Mensajes: 51
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Formulario no guarda en tabla mysql

vos tenes:
Código PHP:
 mysql_query($query); 
proba así:

mysql_query($query,$link) or die(mysql_error());
  #4 (permalink)  
Antiguo 29/11/2011, 12:26
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Formulario no guarda en tabla mysql

Te aconsejo ENORMEMENTE que mientras estes en etapa de desarrollo utilices OR DIE para saber que error esta arrojando MySql porque si no te muestra ningun error lo mas probable es que el error este en la sentencia SQL

Código PHP:
Ver original
  1. mysql_query($query) or die (mysql_error());
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 30/11/2011, 10:41
 
Fecha de Ingreso: noviembre-2011
Mensajes: 121
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Formulario no guarda en tabla mysql

Este error me aparece...

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 '')' at line 2
  #6 (permalink)  
Antiguo 30/11/2011, 15:24
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Formulario no guarda en tabla mysql

O.o que rayos es esto en la sentencia SQL ?

\n" . "VALUES

que yo sepa una sentencia de INSERT es así:

INSERT INTO unaTabla (campo1, campo2, campoN) VALUES (valor1, valor2, valorN);

Y listo pare de contar, no es necesario pasarle un salto de linea \n, fíjate en eso a ver si te funciona.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #7 (permalink)  
Antiguo 01/12/2011, 07:57
 
Fecha de Ingreso: noviembre-2011
Mensajes: 121
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Formulario no guarda en tabla mysql

Ahi funcionó!!!!!!! muchisimas gracias!!!!!...

Los datos del menú Regiones no logro que sea grabado en la tabla...

dejo los nuevos codigos

formulario:

Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<style type="text/css">
<!--
.Estilo5 {font-family: Arial; font-size: 12; }
.Estilo6 {font-size: 12}
-->
</style>
<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }
//-->
</script>
</head>

<?php
$proy 
$_POST['proy'];
$noper $_POST['noper'];
$admpro $_POST['admpro'];
$contacto $_POST['contacto'];
$direccion $_POST['direccion'];
$telefono $_POST['telefono'];
$correo $_POST['correo'];
$pertenece $_POST['pertenece'];
$filename="opttec/regiones.txt";
$regiones=file($filename);
?>


<body>


<form action="pruebaproy.php" method="post" name="f1" target="_self" id="f1">


<table width="72%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
      <table width="102%"  align="center" border="0" cellspacing="4" cellpadding="0">
      <tr>
        <td width="49%" ><div align="right"><span class="Estilo5">Nombre del Proyecto : </span></div></td>
        <td width="51%"><span class="Estilo5">
          <input name="proy" type="text" id="proy" size="50" maxlength="80" value="<?php echo trim($proy); ?>"  />
        </span></td>
      </tr>
         <tr>
        <td width="49%"><div align="right"><span class="Estilo5">N&uacute;mero de Operaci&oacute;n : </span></div></td>
        <td width="51%"><span class="Estilo6">
          <input name="noper" type="text" id="noper" size="6" maxlength="6" value="<?php echo trim($noper); ?>"/>
          </span></td>
      </tr>
          <td><div align="right"><span class="Estilo5">Administrador del Proyecto : </span></div></td>
        <td><span class="Estilo6">
          <input name="admpro" type="text" id="admpro" size="50" maxlength="80" value="<?php echo trim($admpro); ?>"/>
          </span></td>
      </tr>
      <tr>
        <td><div align="right"><span class="Estilo5">Nombre del Contacto : </span></div></td>
        <td><span class="Estilo6">
          <input name="contacto" type="text" id="contacto" size="50" maxlength="80" value="<?php echo trim($contacto?>"/>
        </span></td>
      </tr>
      <tr>
        <td><div align="right"><span class="Estilo5">Región : </span></div></td>
                
<td><select name="region" onChange="cambia_region()" id="region">
            <option value="0" SELECTED>Seleccione una Región</option>
<?php
                
for($z=1;$z count($regiones);$z++) {
            echo 
'<option value="'.$z.'">'.$regiones[$z].'</option>';    
            }
            
            
?>
            </select></td>
          </tr>            
         <tr>
            <td><div align="right"><span class="Estilo5">Comuna : </span></div></td>
<td><select name="comuna" id="comuna" Type="text">
<option value="-">-</option>
</select></td>
         </tr>
                 
      <tr>
        <td><div align="right"><span class="Estilo5">Direcci&oacute;n : </span></div></td>
        <td><span class="Estilo6">
          <input name="direccion" type="text" id="direccion" size="50" maxlength="200" value="<?php echo trim($direccion?>"/>
          </span></td>
      </tr>
      <tr>
        <td><div align="right"><span class="Estilo5">Tel&eacute;lefono : </span></div></td>
        <td><span class="Estilo6">
          <input name="telefono" type="text" id="telefono" size="50" maxlength="50" value="<?php echo trim($telefono?>"/>
          </span></td>
      </tr>
      <tr>
        <td width="49%"><div align="right"><span class="Estilo5">Correo : </span></div></td>
        <td width="51%"><span class="Estilo6">
          <input name="correo" type="text" id="correo" value="<?php echo trim($correo?>" size="50" maxlength="50"/>
          </span></td>
      </tr>
      <tr>
        <td height="40"><div align="right"><span class="Estilo5">Pertenece a : </span></div></td>
        <td><span class="Estilo5">
           <select name="pertenece" id="pertenece">
             <option value="OPTChile S.p.A.">OPTChile S.p.A.</option>
             <option value="Ejercito">Ejercito</option>
             <option value="Armada">Armada</option>
             <option value="Aviacion">Aviacion</option>
             <option value="Carabineros">Carabineros</option>
             <option value="Constructora">Constructora</option>
             <option value="Adm. Edificio">Adm. Edificio</option>
             <option value="Otro">Otro</option>
    </select>
        </span></td>
      </tr>
      <tr>
        <td width="49%"><div align="right"></div></td>
        <td width="51%"><label>
          <input name="CREAR PROYECTO" type="submit" id="CREAR PROYECTO" onClick="MM_validateForm('nompro','','R','numope','','R','admpro','','R','nomcon','','R','direc','','R','telef','','R','correo','','RisEmail');return document.MM_returnValue" value="CREAR PROYECTO" />
          </label>
        <BR /></td>
      </tr>
    </table>
  
    </td>
     </tr>
</table></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>


</form>

<script> 

<?php

 


        
for($z2=1;$z2 count($regiones);$z2++) {
                
$filenamemod="opttec/ciudades/".rtrim($regiones[$z2]).".txt";
                        
                
$textomod=file($filenamemod);
                
                
                echo 
'var comunas_'.$z2.'=new Array("-"';
                for(
$zmod=1;$zmod<count($textomod);$zmod++) {
                                echo 
',"'.rtrim($textomod[$zmod]).'"';    
            }    
            echo 
')'.chr(13).chr(10);
            }
?>

function cambia_region(){

var selregion
selregion = document.f1.selregion[document.f1.selregion.selectedIndex].value
    
if (selregion != 0) {
        //si estaba definido, entonces coloco las opciones de la comuna correspondiente.
        //selecciono el array de comuna adecuado
mis_comunas=eval("comunas_" + selregion)
        //calculo el numero de comunas
num_comunas = mis_comunas.length
        //marco el número de comunas en el select
document.f1.comuna.length = num_comunas
        //para cada comuna del array, la introduzco en el select
for(i=1;i < num_comunas;i++){
document.f1.comuna.options[i].value=mis_comunas[i]
document.f1.comuna.options[i].text=mis_comunas[i]
        }    
 }else{
        //si no había comuna seleccionada, elimino las comunas del select
    document.f1.comuna.length = 1
        //coloco un guión en la única opción que he dejado
document.f1.comuna.options[0].value = "-"
document.f1.comuna.options[0].text = "-"
    }
    //marco como seleccionada la opción primera de comuna
    document.f1.comuna.options[0].selected = true
}
</script>
</body>
</html>
el que envia a la db

Código PHP:
<HTML>
<HEAD>
<TITLE>Producto.php</TITLE>
</HEAD>
<BODY>
<?php
$proy
=strtoupper($_POST['proy']);
$noper=strtoupper($_POST['noper']);
$admpro=strtoupper($_POST['admpro']);
$contacto=strtoupper($_POST['contacto']);
$region=strtoupper($_POST['region']);
$comuna=strtoupper($_POST['comuna']);
$direccion=strtoupper($_POST['direccion']);
$telefono=strtoupper($_POST['telefono']);
$correo=strtoupper($_POST['correo']);
$pert=strtoupper($_POST['pertenece']);
$link = @mysql_connect("localhost""root","")
     or die (
"Error al conectar a la base de datos.");
@
mysql_select_db("optchile"$link)
     or die (
"Error al conectar a la base de datos.");
$query "INSERT INTO proyectos (proy,noper,admpro,contacto,region,comuna,direccion,telefono,correo,pert) VALUES ('$proy','$noper','$admpro','$contacto','$region','$comuna','$direccion','$telefono','$correo','$pert')";

mysql_query($query,$link) or die (mysql_error());
mysql_close($link);
?>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="nueproyectopt.php">Ingresar otro registro</a></div>
</BODY>
</HTML>
el resto anda de maravillas!!!!

Etiquetas: formulario, html, mysql, registro, tabla, guardar
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 15:18.