PHP - Si existe registro que lo actualice si no que porceda

   
Vista:
Imágen de perfil de Jorge Luis

Si existe registro que lo actualice si no que porceda

Publicado por Jorge Luis (13 intervenciones) el 24/11/2014 18:21:28
Hola amigos, tengo un problema, tengo un reloj checado hecho en php, donde si registro un numero de proveedor ej: 6001 me envia a otra pagina para registrar su visita, hasta ahi no tengo problema ya que si me lo registra, el problema es que cuando le ingreso de nuevo del numero 6001 deberia de hacer la busqueda si ya existe solo actualizar el campo de horaout, si lo hace pero en vez de devolverme a la pagina index me devuelve a la pagina de alta de proveedor. anexo codigo ojala me puedan ayudar u orientar.

Codigo PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
if ($codbarras >= '5001' && $codbarras <= '8001'){
 $sql_busca_emp="SELECT * FROM empleados WHERE no_emp='$codbarras'";
 $resultado_nogaf=sqlsrv_query($conex,$sql_busca_emp, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
 echo '<script language="javascript">window.location.href="../../bitacora/registro_entrada.php";</script>';
}else{
	if ($tarjeta = $_POST['cbarras2']);{
 
$conn=  Conectarse();
 
	$consulta2 = ("SELECT CONVERT(char(8), GETDATE(), 108) AS HORA");
	$resultado2 = sqlsrv_query($conn,$consulta2);
	while($lista = sqlsrv_fetch_array($resultado2)){
		 $HORA = $lista['HORA'];
	}{
	$actualizar = "update registro set horaout='$HORA'
						where card_acceso='$tarjeta'
						AND horaout is null";
 
	echo '<script language="javascript">window.location.href="index.php";</script>';
	}
	$que = sqlsrv_query($conn,$actualizar,array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
	sqlsrv_close($conn);
}
}

Anexo pantalla de inicio
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

Si existe registro que lo actualice si no que porceda

Publicado por xve (5519 intervenciones) el 24/11/2014 19:25:57
Hola Jorge, no entiendo muy bien tu código...

Cuando realizas la búsqueda la base de datos, tanto si la encuentra como si no la encuentra, luego ya no haces el update, solo haces el update si el valor no esta entre el 5001 y el 8001...
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 Jorge Luis

Si existe registro que lo actualice si no que porceda

Publicado por Jorge Luis (13 intervenciones) el 24/11/2014 19:53:01
Te explico:
1.- En el campo codbarra se digita un numero dentro del rango 5001 al 8001, si no esta en esa base de datos con el echo abre la pagina para registrar los datos y me regresa a la pagina inicial donde esta mi codbarra.

2.- Luego si vuelvo a digitar ej: Se digito el num 6001 en el paso (1), ahora digito nuevamente el num 6001 me tendria que realizar la busqueda en la bd, si lo encuentra entonces que solo me actualice mi campo de horaout con referencia a ese numero en mi tabla, si no esta en la bd entonces que proceda a realizar nuevamente el registro enviandolo a la pagina...

Espero haberme explicado

Gracias.
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

Si existe registro que lo actualice si no que porceda

Publicado por xve (5519 intervenciones) el 24/11/2014 21:55:49
Hola Jorge, creo que no te entiendo del todo...

Segun entiendo en tu codigo, si digitas el 6001, sequeda dentro de este if:
1
2
3
4
5
if ($codbarras >= '5001' && $codbarras <= '8001'){
 $sql_busca_emp="SELECT * FROM empleados WHERE no_emp='$codbarras'";
 $resultado_nogaf=sqlsrv_query($conex,$sql_busca_emp, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
 echo '<script language="javascript">window.location.href="../../bitacora/registro_entrada.php";</script>';
}else{

Por lo tanto, nunca va a ir al else, que es donde actualizas el valor (update)

Yo creo que tendrías que probar algo así:
1
2
3
4
5
6
7
8
if ($codbarras >= '5001' && $codbarras <= '8001'){
    $sql_busca_emp="SELECT * FROM empleados WHERE no_emp='$codbarras'";
    $resultado_nogaf=sqlsrv_query($conex,$sql_busca_emp, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
    if(sqlsrv_num_rows($resultado_nogaf)>0)
    {
        AQUI EL UPDATE
    }
}else{
De esta manera, si lo encuentra, lo actualizas...

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