Foros del Web » Programando para Internet » PHP »

Cómo inserto una fecha de un calendario en mi base de datos y que un nif no se repita

Estas en el tema de Cómo inserto una fecha de un calendario en mi base de datos y que un nif no se repita en el foro de PHP en Foros del Web. Hola! Estoy haciendo un formulario en el que el usuario tiene que introducir su fecha de nacimiento, para ello he utilizado un calendario php que ...
  #1 (permalink)  
Antiguo 27/08/2008, 12:13
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 7 meses
Puntos: 0
Cómo inserto una fecha de un calendario en mi base de datos y que un nif no se repita

Hola!

Estoy haciendo un formulario en el que el usuario tiene que introducir su fecha de nacimiento, para ello he utilizado un calendario php que se publicó en el foro http://www.forosdelweb.com/f18/calendario-php-586369/

Pero no se introduce en la base de datos. Y de paso también quiero que para introducir un usuario primero mire si el nif ya existe, si existe, que mande un aviso diciendo que ya está registrado y si no, que siga con el registro.

Mi código es:

copia_insertar_usuario.php
Código HTML:
<!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=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<script language="JavaScript" src="../calendario/javascripts.js"></script>
</head>
<body>

<?php
include ("Calendario/Calendario.php");
require ("conexion.php");
require("clasecandidato.php");

//if(!empty($_POST['insercion'])){

	$candidato = new Candidato($_POST[Nif]);
	
	if($candidato->insertarCandidato($_POST[nombre],$_POST[apellidos],$_POST[poblacion],$_POST[Nif],
							$_POST[direccion],$_POST[telefonoFijo],$_POST[movil],
							$_POST[lugarNacimiento], $_POST[hijos], $_POST[correo],
							$_POST[CP], $_POST[fechaNacimiento], $_POST[estadoCivil])){
			
				echo '<center><font size="6" color="red">EL CLIENTE '.$_POST['nombre'].' HA SIDO INSERTADO CORRECTAMENTE</font></center><hr />';
	}else{
		echo '<center><font size="6" color="red">NO SE HA PODIDO INSERTAR EL CLIENTE '.$_POST['nombre'].'</font></center><hr />';
		exit();
	}


?>
</body>
</html> 
clasecandidato.php

Código HTML:
<!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=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<?

class Candidato{

	private $nombre;
	private $apellidos;
	private $lugarNacimiento;
	private $fechaNacimiento;
	private $Nif;
	private $direccion;
	private $poblacion;
	private $CP;
	private $telefonoFijo;
	private $movil;
	private $estadoCivil;
	private $hijos;
	private $correo;
	
	function __construct($Nif){
		$this->Nif= $Nif;
	}

	public function comprobarNif_Candidato($nif){
		require ("conexion.php");
		
		$buscar=$_POST['Nif'];
	    $consultaSQL = "SELECT * FROM candidato WHERE nifCandidato='$buscar'";
		$resultado = mysql_query($consultaSQL);
		
		if (!$result) {
			$repetido=false;
		}
		else{
			$repetido=true;
		}

		mysql_free_result($resultado);
		
		return $repetido;
	}
	
	public function insertarCandidato($nombre, $apellidos, $poblacion, $Nif, $direccion, $telefonoFijo, $movil,
					$lugarNacimiento, $hijos, $correo, $CP, $fechaNacimiento, $estadoCivil) {
					
			require ("conexion.php");
			
			if(Candidato::comprobarNif_Candidato($Nif)){
				echo "Nif repetido\n";
				return false;
			}
			else{
				// Con esta sentencia SQL insertaremos los datos en la base de datos
				mysql_query("INSERT INTO candidato (nombre, apellidos, poblacion, nifCandidato, direccion, telefono, movil, lugarNacimiento, numHijos, email, cp, fechaNacimiento, estadoCivil) VALUES ('$nombre','$apellidos','$poblacion','$Nif','$direccion','$telefonoFijo', '$movil',
					'$lugarNacimiento','$hijos','$correo','$CP', '$fechaNacimiento', '$estadoCivil')");

				mysql_query("INSERT INTO provincia (nombre) VALUES ('{$_POST['provincia']}')");

				mysql_query("INSERT INTO tipocarnet (tipo) VALUES ('{$_POST['label17']}')");

				mysql_query("INSERT INTO carnettipo (fechaExpedicion) VALUES ('{$_POST['fechaExpedicion']}')");

				// Ahora comprobaremos que todo ha ido correctamente
				
				$resultado=mysql_query($consultaSQL);
         
		 		return $resultado;
			}
	}
	/*Cambia el formato de fecha desde mysql a la aplicación.	*/
	function cambiaf_a_mysql($fechaNacimiento){
		if (ereg( "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $fechaNacimiento, $regs )){ 
				echo "$regs[1].$regs[2].$regs[3]";
		//$lafecha=$regs[1]."-".$regs[2]."-".$regs[3]; 
		} else { 
    		echo "Invalid date format: $fechaNacimiento"; // no coincide 
	}
		//return $lafecha;
	}
	
	/*Cambia el formato de fecha a mysql desde la aplicación.	*/
	function cambiaf_desde_mysql($fechaNacimiento){
		ereg( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $fechaNacimiento, $mifecha);
		$lafecha=$mifecha[3]."/".$mifecha[2]."/".$mifecha[1];
		return $lafecha;
	}
}
?>
</body>
</html> 
Gracias!!!!!!!
  #2 (permalink)  
Antiguo 27/08/2008, 13:46
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Cómo inserto una fecha de un calendario en mi base de datos y que un nif n

la fecha la insertas como un string, es decir le debes poner comillas simples en la cadenas sql

Una observacion, cuando creas una clase, en ese archivo solo debe ir el codigo php correspondiente a la clase, no es elegante ni tiene sentido que hagas una clase dentro de un body.
tambien acostumbrate a poner los indices de los arrays entre comillas, excepto los numerico claro esta, esto hace que la interpretacion de tu codigo sea mas rapida y no te arrojara ningun notice...
__________________
My path is lit by my own fire, I only go where I desire
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 21:52.