Foros del Web » Programando para Internet » PHP »

Error de datos

Estas en el tema de Error de datos en el foro de PHP en Foros del Web. hola amigos de foro de php estoy intentando introducir los datos de un formulario en una base de datos en access, pero a la hora ...
  #1 (permalink)  
Antiguo 31/08/2006, 04:54
 
Fecha de Ingreso: agosto-2006
Mensajes: 26
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta Error de datos

hola amigos de foro de php
estoy intentando introducir los datos de un formulario en una base de datos en access, pero a la hora de abrir el formulario donde se encuentra el botón de enviar me sale el siguiente error
[Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de datos en la expresión de criterios.
seguramente sea por los numero o las comillas en campos numericos pero es que intento cambiar el campo , es decir quitarles las comillas a estos campos y me sale error.
aqui os envio todo el codigo del formulario.

Código PHP:
body {
    background-color: #CCCCCC;
}
.Estilo1 {font-size: 12px}
.Estilo2 {font-family: "Times New Roman", Times, serif}
-->
</style></head>
<body>

 <form action="insert_dapersonal.php">
<table width="78%"  border="1" bordercolor="#009966">
  <tr>
     <td width="5%" scope="col"><div align="left"><span class="Estilo1"><span class="Estilo1"><span class="Estilo2">Nom</span></span></span></div></td>
    <th width="19%" scope="col">
            <div align="left">
                <input type="text" name="Nom">
    </div></th>
    <td width="7%" scope="col"><div align="left"><span class="Estilo1">Cognoms</span></div></td>
    <th width="19%" scope="col">
           <div align="left">
               <input type="text" name="Cognoms">
    </div></th>
    <td width="5%" scope="col"><div align="left" class="Estilo1">
      <div align="left">DNI</div>
    </div></td>
    <th width="45%" class="Estilo1" scope="col">
           <div align="left">
               <input type="text" name="DNI">
      </div></th>
  </tr>
  <tr>
    <td height="24"><div align="left"><span class="Estilo1"><span class="Estilo1"><span class="Estilo2">Estat</span></span></span></div></td>
    <td>
            <div align="left">
                <select name="Estat"><option value="<?php include_once ("c:\adodb\adodb.inc.php"); $connexio NewADOConnection("access");
 
$dsn "Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\RRHHprg.mdb;"
 
$sql ="select * from VEstats"

 
$connexio->Connect($dsn) or die ("No s'ha pogut connectar amb la BD");
 
$rs $connexio->Execute($sql);
 print 
$rs->fields['1'].' '.$rs->fields['1'].'<BR>';
 print 
$rs->GetMenu('VEstat',$rs,false);
 
 
?>">
                      </select>
              </div></td>
    <td><div align="left"><span class="Estilo1">Noperari</span></div></td>
    <td>
          <div align="left">
              <input type="text" name="Noperari">
            </div></td>
    <td><div align="left" class="Estilo1">Localitat</div></td>
    <td>
      <div align="left">
        <input type="text" name="Localitat">
      </div></td>
  </tr>
  <tr>
    <td><div align="left"><span class="Estilo1"><span class="Estilo1"><span class="Estilo2">Adre&ccedil;a</span></span></span></div></td>
    <td><div align="left"><span class="Estilo2">
        <input type="text" name="Adreça">
    </span></div></td>
    <td class="Estilo1"><div align="left"><span class="Estilo2">Prov&iacute;ncia</span></div></td>
    <td><div align="left"><span class="Estilo2">
        <input type="text" name="Província">
    </span></div></td>
    <td class="Estilo1"><div align="left">CP</div></td>
    <td>
      <div align="left">
        <input type="text" name="CP">
      </div></td>
  </tr>
  <tr>
    <td><div align="left"><span class="Estilo1"><span class="Estilo1"><span class="Estilo2">Email</span></span></span></div></td>
    <td><div align="left"><span class="Estilo2">
        <input type="text" name="Email">
    </span></div></td>
    <td class="Estilo1"><div align="left"><span class="Estilo2">Tel&egrave;fon</span></div></td>
    <td><div align="left"><span class="Estilo2">
        <input type="text" name="Telèfon">
    </span></div></td>
    <td class="Estilo1"><div align="left">Nacionalitat</div></td>
    <td>
      <div align="left">
        <input type="text" name="Nacionalitat">
      </div></td>
  </tr>
  <tr>
    <td><div align="left"><span class="Estilo1">DNaixement</span></div></td>
    <td><div align="left"><span class="Estilo2">
        <input type="text" name="DNaixement">
    </span></div></td>
    <td class="Estilo1"><div align="left"><span class="Estilo2">NFills</span></div></td>
    <td><div align="left"><span class="Estilo2">
        <input type="text" name="NFills">
    </span></div></td>
    <td class="Estilo1"><div align="left">Ecivil</div></td>
    <td>
      <div align="left">
        <select name="ECivil">
          <option>Solter/a</option>
          <option>Casat/a</option>
          <option>Divorciat/da</option>
          <option>Separat/da</option>
          <option>Vidu/a</option>
        </select>
      </div></td>
  </tr>
  <tr>
    <td><div align="left"><span class="Estilo1"><span class="Estilo1"><span class="Estilo2">PResid&egrave;ncia</span></span></span></div></td>
    <td><div align="left"><span class="Estilo2">
        <input type="text" name="PResidència">
    </span></div></td>
    <td class="Estilo1"><div align="left"><span class="Estilo2">NSS</span></div></td>
    <td><div align="left"><span class="Estilo2">
        <input type="text" name="NSS">
    </span></div></td>
    <td><div align="left" class="Estilo1">Empresa</div></td>
    <td>
      <div align="left">
        <select name="Empresa">
          <option value="">
        </select>
      </div></td>
  </tr>
  <tr>
    <td><div align="left"><span class="Estilo1"><span class="Estilo1"><span class="Estilo2">Departament</span></span></span></div></td>
    <td><div align="left"><span class="Estilo2">
        <select name="Departament">
          <option value="<?php include_once ("c:\adodb\adodb.inc.php"); $connexio NewADOConnection("access");
 
$dsn "Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\RRHHprg.mdb;"
 
$sql ="select distinct * from VDepartaments"

 
$connexio->Connect($dsn) or die ("No s'ha pogut connectar amb la BD");
 
$rs $connexio->Execute($sql);
 print 
$rs->fields['1'].' '.$rs->fields['1'].'<BR>';
 print 
$rs->GetMenu('Departament',$rs,false);
 
 
?>">
        </select>
    </span></div></td>
    <td class="Estilo1"><div align="left"><span class="Estilo2">&Agrave;rea</span></div></td>
    <td><div align="left"><span class="Estilo2">
        <select name="Area">
          <option value="<?php include_once ("c:\adodb\adodb.inc.php"); $connexio NewADOConnection("access");
 
$dsn "Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\RRHHprg.mdb;"
 
$sql ="select  * from VArees"

 
$connexio->Connect($dsn) or die ("No s'ha pogut connectar amb la BD");
 
$rs $connexio->Execute($sql);
 print 
$rs->fields['1'].' '.$rs->fields['1'].'<BR>';
 print 
$rs->GetMenu('VArees',$rs,false);
 
 
?>">
        </select>
    </span></div></td>
    <td><div align="left" class="Estilo1">Lloc Treball </div></td>
    <td>
      <div align="left">
        <select name="LTreball">
          <option value="<?php include_once ("c:\adodb\adodb.inc.php"); $connexio NewADOConnection("access");
 
$dsn "Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\RRHHprg.mdb;"
 
$sql ="select  * from VLTreball"

 
$connexio->Connect($dsn) or die ("No s'ha pogut connectar amb la BD");
 
$rs $connexio->Execute($sql);
 print 
$rs->fields['1'].' '.$rs->fields['1'].'<BR>';
 print 
$rs->GetMenu('VLTreball',$rs,false);
 
 
?>">
        </select>
      </div></td>
  </tr>
  <tr>
    <td><div align="left"><span class="Estilo1"><span class="Estilo1"><span class="Estilo2"></span></span></span></div></td>
    <td><div align="left">
              <input type="submit" name="Submit" value="Enviar"><?php 
    
include_once("c:\adodb\adodb.inc.php");
    
$conn NewADOConnection("access");
    
$dsn "Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\bd1.mdb;";
    
$conn->Connect($dsn) or die ("No s'ha pogut connectar amb la BD");
    
$sql ="INSERT INTO Personal VALUES ('".$_POST['Nom'] . "','" .$_POST['Cognoms'] ."','" .$_POST['DNI'] . "','" .$_POST['Estat'] . "','" .$_POST['Noperari'] . "','" .$_POST['Localitat'] . "','" .$_POST['Adreça'] . "','" .$_POST['Província'] . "','" .$_POST['CP'] . "','" .$_POST['Email'] . "','" .$_POST['Telèfon'] . "','" .$_POST['Nacionalitat'] . "','" .$_POST['DNaixement'] . "','" .$_POST['NFills'] . "','" .$_POST['ECivil'] . "','" .$_POST['PResidència'] . "','" .$_POST['NSS'] . "','" .$_POST['Empresa'] . "','" .$_POST['Departament'] . "','" .$_POST['Area'] . "','" .$_POST['LTreball'] . "');";
    
$recordSet $conn->Execute($sql); 
    if (!
$recordSet)  
        print 
$conn->ErrorMsg(); 
    else 
    while (!
$recordSet->EOF) { 
        print 
$recordSet->fields[0].' '.$recordSet->fields[1].'<BR>'
        
$recordSet->MoveNext(); 
    } 

?>
</table></form>
</body>
</html>
gracias de antemano,

hasta luego

Última edición por Cluster; 31/08/2006 a las 07:29
  #2 (permalink)  
Antiguo 31/08/2006, 08:24
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Eso parece ser, en esta linea:

Código PHP:
$sql ="INSERT INTO Personal VALUES ('".$_POST['Nom'] . "','" .$_POST['Cognoms'] ."','" .$_POST['DNI'] . "','" .$_POST['Estat'] . "','" .$_POST['Noperari'] . "','" .$_POST['Localitat'] . "','" .$_POST['Adreça'] . "','" .$_POST['Província'] . "','" .$_POST['CP'] . "','" .$_POST['Email'] . "','" .$_POST['Telèfon'] . "','" .$_POST['Nacionalitat'] . "','" .$_POST['DNaixement'] . "','" .$_POST['NFills'] . "','" .$_POST['ECivil'] . "','" .$_POST['PResidència'] . "','" .$_POST['NSS'] . "','" .$_POST['Empresa'] . "','" .$_POST['Departament'] . "','" .$_POST['Area'] . "','" .$_POST['LTreball'] . "');";
    
$recordSet $conn->Execute($sql); 
deberías asegurarte que los valores que pasas a campos de texto vayan entre comillas simples ('), los valores de fecha entre simbolos # y en formato mm-dd-yyyy, los numeros sin comillas y sin #.
  #3 (permalink)  
Antiguo 01/09/2006, 01:13
 
Fecha de Ingreso: agosto-2006
Mensajes: 26
Antigüedad: 17 años, 8 meses
Puntos: 0
Exclamación Error

Hola gracias por contestar este es el error que sale cuando hago lo que me has dicho


[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis en la instrucción INSERT INTO.
  #4 (permalink)  
Antiguo 01/09/2006, 08:02
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Y como dejaste la instruccion sql luego de los cambios que te indiqué?
  #5 (permalink)  
Antiguo 07/09/2006, 01:31
 
Fecha de Ingreso: agosto-2006
Mensajes: 26
Antigüedad: 17 años, 8 meses
Puntos: 0
Lo siento por no haber contestado antes pero es que donde trabajo hemos estado con bastantes problemas y teniamos que solucionarlos también hemos abierto una nueva nave y hay que prepararla

esta es la sentencia después de lo que me dijistes

$sql ="INSERT INTO Personal VALUES ('".$_POST['Nom'] ."','".$_POST['Cognoms'] ."','".$_POST['DNI'] ."','".$_POST['Estat'] ."',".$_POST['Noperari'] .",'".$_POST['Localitat'] ."','".$_POST['Adreça'] ."','".$_POST['Província'] ."',".$_POST['CP'] .",'".$_POST['Email'] ."',".$_POST['Telèfon'] .",'".$_POST['Nacionalitat'] ."',#".$_POST['DNaixement'] ."#,".$_POST['NFills'] .",'".$_POST['ECivil'] ."','".$_POST['PResidència'] ."',".$_POST['NSS'] .",'".$_POST['Empresa'] ."','".$_POST['Departament'] ."','".$_POST['Area'] ."','".$_POST['LTreball'] ."');";

Error de sintaxis en la instrucción INSERT INTO.

Pido otra vez disculpas

Gracias de antemano
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 19:07.