PHP - pasar parametros o variables a funciones

   
Vista:

pasar parametros o variables a funciones

Publicado por zendi (824 intervenciones) el 18/09/2013 03:04:50
Buenas a todos recibi estas funciones por un post anterior y estoy tratando de aplicar la variable $fecha a estas funciones
y por supuesto la variable la traigo desde otro formulario
pero me arroja errores, mi pregunta es como hago para que funcione.
gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$fecha = $_POST['fecha'];
public function convertDateToMsSQL($fecha )
{
if($this->validateDateEs($fecha ))
{
$values=preg_split('/(\/|-)/',$fecha );
$values[0]=(strlen($values[0])==2?$values[0]:"0".$values[0]);
$values[1]=(strlen($values[1])==2?$values[1]:"0".$values[1]);
$values[2]=(strlen($values[2])==4?$values[2]:substr(date("Y"),0,2).$values[4]);
return $values[2].$values[1].$values[0];
}
return "";
}
/** * Funcion para validar una fecha en formato: * dd/mm/yyyy, d/m/yyyy, d/m/yy */
 
public function validateDateEs($fecha ) {
$pattern="/^(0?[1-9]|[12][0-9]|3[01])[\/|-](0?[1-9]|[1][012])[\/|-]((19|20)?[0-9]{2})$/";
if(preg_match($pattern,$fecha ))
return true;
return false;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

pasar parametros o variables a funciones

Publicado por xve (5515 intervenciones) el 18/09/2013 08:04:10
Hola Zendi, que errores te devuelve?

a simple vista parece que es correcto...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pasar parametros o variables a funciones

Publicado por zendi (824 intervenciones) el 18/09/2013 15:08:51
Hola xve, arroja este error: Parse error: syntax error, unexpected T_PUBLIC in C:\wamp\www\Programa_FEDE_impresoras\binareparada.php on line 41
El asunto es que parece que espera una variable publica, pero no tengo conocimiento de ello.
Tengo que practicar mas al respecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

pasar parametros o variables a funciones

Publicado por xve (5515 intervenciones) el 18/09/2013 22:22:20
Hola Zendi, y cual es la linea 41?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pasar parametros o variables a funciones

Publicado por zendi (824 intervenciones) el 19/09/2013 00:31:27
hola Xve Rectifico es la linea 14 es que estaba muy cansado y vi un 41.
Te explico el error se arroja en esta linea cuyo nro es la 14.
public function convertDateToMsSQL($fecha)
es ahi donde estriba el asunto de las variables publicas., no se como manejarlas.
saludos y disculpa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

pasar parametros o variables a funciones

Publicado por xve (5515 intervenciones) el 19/09/2013 07:48:40
jejeje, no te preocupes, a todos nos pasa...;)


Estas dentro de una clase?
La palabra public se utiliza cuando estas dentro de una clase de PHP... si no estas dentro de una clase, eliminala

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pasar parametros o variables a funciones

Publicado por zendi (824 intervenciones) el 20/09/2013 02:14:00
Xve que tal. Ya no da el error, pero la fecha todavia queda de esta manera: dd/mm/aaaa; cuando deberia quedar asi:aaaa/mm/dd para que postgres la reciba de esta forma. Seguire analizando a ver que puedo solucionar. De todos modos ayudame por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

pasar parametros o variables a funciones

Publicado por xve (5515 intervenciones) el 20/09/2013 10:21:21
Zendi, al final como ha quedado el código?

Muestrame como llamas a las funciones para la conversión de la fecha, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pasar parametros o variables a funciones

Publicado por zendi (824 intervenciones) el 20/09/2013 18:08:56
bueno te envio todo el codigo, en realidad yo coloque la funcion en mi codigo y es este:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
    $connect = pg_connect("host=172.16.4.12 port=5432 dbname=equipos user=administrador password=pgJPJ2002++");
	$bina = $_POST['bina'];
    $idequipo = $_POST['idequipo'];
	$nombreEquipo = $_POST['cmbequipo'];
	$serial = ucfirst(strtolower($_POST['serial']));
	$marca = $_POST['cmbmarca'];
	$modelo = $_POST['cmbmodelo'];
	$unidad = $_POST['cmbunidad'];
	$observacion = ucfirst(strtolower($_POST['observacion']));
	$diagnostico = ucfirst(strtolower($_POST['diagnostico']));
	$frecuencia = $_POST['cmbfrecuencia'];
	$status = $_POST['cmbstatus'];
        $fecha = $_POST['fecha'];
function convertDateToMsSQL($fecha) {
if($this->validateDateEs($fecha)) {
$values=preg_split('/(\/|-)/',$fecha );
$values[0]=(strlen($values[0])==2?$values[0]:"0".$values[0]);
$values[1]=(strlen($values[1])==2?$values[1]:"0".$values[1]);
$values[2]=(strlen($values[2])==4?$values[2]:substr(date("Y"),0,2).$values[4]);
return $values[2].$values[1].$values[0];
}
return "";
}
/** * Funcion para validar una fecha en formato: * dd/mm/yyyy, d/m/yyyy, d/m/yy */ 
function validateDateEs($fecha )
{
$pattern="/^(0?[1-9]|[12][0-9]|3[01])[\/|-](0?[1-9]|[1][012])[\/|-]((19|20)?[0-9]{2})$/";
if(preg_match($pattern,$fecha ))
return true;
return false;
}

AHORA EN EL UPDATE DEBO COLOAR LA VARIABLE $FECHA O CUAL? PORQUE LA FUNCION PROCESA PATTERN TAMBIEN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//******************
$modifica = "UPDATE public.reparados
                SET id_equipo = '$nombreEquipo',
	                serial_equipo = '$serial',
					id_marca = '$marca',
					id_modelo = '$modelo',
					id_unidad = '$unidad',
    				observacion = '$observacion',
	    		    diagnostico = '$diagnostico',
		            fecha_reparacion = '$fecha',
			        id_frecuencia = '$frecuencia',
				    id_status = '$status'
			  WHERE id = $idequipo";
                  @pg_query($connect,$modifica);
//echo $modifica;				  
if ($modifica){
				  echo "<script type='text/javascript'>
				 alert('El registro fue MODIFICADO');
				 window.location='reportebina.php';
				 </script>";
			  }
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

pasar parametros o variables a funciones

Publicado por xve (5515 intervenciones) el 21/09/2013 09:55:05
Hola Zendi, aquí tienes como quedaría... he comentado todo el tema del postgreSQL y he simulado la fecha en formato español...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
// $connect = pg_connect("host=172.16.4.12 port=5432 dbname=equipos user=administrador password=pgJPJ2002++");
// $bina = $_POST['bina'];
// $idequipo = $_POST['idequipo'];
// $nombreEquipo = $_POST['cmbequipo'];
// $serial = ucfirst(strtolower($_POST['serial']));
// $marca = $_POST['cmbmarca'];
// $modelo = $_POST['cmbmodelo'];
// $unidad = $_POST['cmbunidad'];
// $observacion = ucfirst(strtolower($_POST['observacion']));
// $diagnostico = ucfirst(strtolower($_POST['diagnostico']));
// $frecuencia = $_POST['cmbfrecuencia'];
// $status = $_POST['cmbstatus'];
$fecha = "21/09/2013";
 
function convertDateToMsSQL($fecha)
{
	if(validateDateEs($fecha))
	{
		$values=preg_split('/(\/|-)/',$fecha );
		$values[0]=(strlen($values[0])==2?$values[0]:"0".$values[0]);
		$values[1]=(strlen($values[1])==2?$values[1]:"0".$values[1]);
		$values[2]=(strlen($values[2])==4?$values[2]:substr(date("Y"),0,2).$values[4]);
		return $values[2]."-".$values[1]."-".$values[0];
	}
	return "";
}
function validateDateEs($date)
{
    $pattern="/^(0?[1-9]|[12][0-9]|3[01])[\/|-](0?[1-9]|[1][012])[\/|-]((19|20)?[0-9]{2})$/";
    if(preg_match($pattern,$date))
    {
        $values=preg_split("[\/|-]",$date);
        if(checkdate($values[1],$values[0],$values[2]))
            return true;
    }
    return false;
}
 
//******************
$modifica = "UPDATE public.reparados
                SET id_equipo = '$nombreEquipo',
	                serial_equipo = '$serial',
					id_marca = '$marca',
					id_modelo = '$modelo',
					id_unidad = '$unidad',
    				observacion = '$observacion',
	    		    diagnostico = '$diagnostico',
		            fecha_reparacion = '".convertDateToMsSQL($fecha)."',
			        id_frecuencia = '$frecuencia',
				    id_status = '$status'
			  WHERE id = $idequipo";
echo $modifica;
?>

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pasar parametros o variables a funciones

Publicado por zendi (824 intervenciones) el 21/09/2013 20:43:36
Bueno Xve y Elier, quedo bien. Ahora no se si por este mismo foro pudiera preguntarles acerca de la segunda funcion donde aparece la expresion regular y disculpen tanto preguntar pero me enredan bastante estas expresiones, tal vez es falta de costumbre y practica.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pasar parametros o variables a funciones

Publicado por Elier (92 intervenciones) el 20/09/2013 18:35:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$string_fecha = $_POST['fecha'];
 
function convertDateToMsSQL($fecha){
 
$fecha_formateada = "";
 
$fecha = strtotime($fecha);
 
if ($fecha)
{
      // Y-m-d    2013-09-20 o Y/m/d   2013/09/20
     $fecha_formateada =  date ("Y-m-d", $fecha);
}
 
return $fecha_formateada;
 
}
 
$fecha_mssql = convertDateToMsSQL($string_fecha);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pasar parametros o variables a funciones

Publicado por zendi (824 intervenciones) el 21/09/2013 02:49:33
bueno yo diseñe una funcion, bueno diria que no es una funcion en sí, pero realiza el trabajo y tambien se vale. Este es el codigo:

Por favor Comenten, Gracias


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$fecha = $_POST['fecha'];
 
/////////Se valida cuando la fecha es aaaa/mm/dd	
    $ani    = substr($fecha,0,4);
    $mesi   = substr($fecha,5,2);
    $díai   = substr($fecha,8,2);
    $todo = $ani."-".$mesi."-".$díai;
 
if ($fecha === $todo)
{
    $anio  = substr($fecha,0,4);
    $mes   = substr($fecha,5,2);
    $día   = substr($fecha,8,2);
 
   $fecha = $anio."-".$mes."-".$día;
}
/////////Convierte la fecha en:dd/mm/aaaa
else{
    $día2   = substr($fecha,0,2);
    $mes2   = substr($fecha,3,2);
    $anio2  = substr($fecha,6,4);
    $fecha = $anio2."-".$mes2."-".$día2;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pasar parametros o variables a funciones

Publicado por zendi (824 intervenciones) el 22/09/2013 02:08:51
Bueno Xve y Elier, funcionó bien. Ahora no se si por este mismo foro pudiera preguntarles acerca de la segunda funcion donde aparece la expresion regular y disculpen tanto preguntar pero me enredan bastante estas expresiones regulares, tal vez sea por falta de costumbre y practica.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

pasar parametros o variables a funciones

Publicado por xve (5515 intervenciones) el 22/09/2013 09:33:43
Hola Zendi, yo te diría que abrieras un nuevo hilo en el foro para tu pregunta de expresiones regulares...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar