PHP - buscar por dos campos y preguntar con php

 
Vista:
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscar por dos campos y preguntar con php

Publicado por zendi (1056 intervenciones) el 12/05/2015 21:15:21
tengo este query donde consulto para hallar tanto la cedula como el apellido:
como haria para combinar tanto la cedula como el apellido?
Es decir la idea es hacer la busqueda combinadamente. Seria una clave por registro.
Ahora No se si debiera hacerse a nivel de base de datos.

Pero este es el caso:
Que si la cedula y el apellido no existen arroje un mensaje de error
si la cedula esta correcta pero el apellido no; que de otro mensaje de error
si la cedula no esta correcta y el apellido si; tambien habria otro mensaje de error.
Ahora si ambos estan correctos, traería la consulta.

El asunto es que no logro controlar esto.

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
55
56
57
58
59
60
61
$cedula = $_POST['cedula'];
$apellido = $_POST['apellido'];
$query="SELECT cedula FROM public.pacientes WHERE cedula=$cedula AND apellido=$apellido ";
$res=@pg_query($connect,$query);
if(@pg_num_rows($res)==0)
{
	<script type='text/javascript'>
	var agree=confirm("La Cedula aún no esta Registrada.\nDebe registrarse con la Cedula del  Representante\npara optar por una Cita¿Desea Registrarse Ahora mísmo?");
	if (agree)
		window.location='crearhistoria.php?nro=<?php echo $cedula?>';
	else
		window.location='citas.php';
	</script>
	<?php
}
else
{
	if ($_POST['cedula'])
	{
		$consulta2 = "SELECT pacientes.nrohistoria,
		pacientes.nombres,
		pacientes.apellidos,
		pacientes.direccion,
		pacientes.cta_correo,
		pacientes.telefono,
				pacientes.fecha_nac,
		pacientes.id_paciente
								FROM pacientes
				WHERE public.pacientes.cedula = {$_POST['cedula']}";
		$consulta3 = @pg_query($connect,$consulta2);
		$consulta3 = @pg_fetch_array($consulta3);
}
 
////////////////////tuve que hacer otra pregunta por apellido
 
	$apellido=$_POST['apellido'];
 
	if(isset($_POST['apellido']) && $_POST['buscar'])
	{
		$result=pg_query($connect,"SELECT apellidos FROM pacientes WHERE apellidos=$apellido");
		if($row=pg_num_rows($result)<0)
		{
				echo "<script type='text/javascript'>
				alert('Este apellido no Existe');
				window.location='';
				</script>";
		}
		else
		{
			$consulta2 = "SELECT pacientes.nrohistoria,
								pacientes.nombres,
								pacientes.apellidos,
								pacientes.direccion,
								pacientes.cta_correo,
								pacientes.telefono,
								pacientes.fecha_nac,
								pacientes.id_paciente
						FROM pacientes
						WHERE public.pacientes.cedula = {$_POST['cedula']}";
					$consulta3 = @pg_query($connect,$consulta2);
					$consulta3 = @pg_fetch_array($consulta3);

Si alguien pudiera ayudarme, por aqui estoy intentandolo pero nada que funciona.
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 Alberto
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscar por dos campos y preguntar con php

Publicado por Alberto (351 intervenciones) el 12/05/2015 21:24:31
Hola...

Solo una pequeña pregunta para comprender mejor el planteamiento...

Si la cédula esta correcta pero el apellido no; que de otro mensaje de error

Con este enunciado te refieres a que el apellido existe pero no coincide con el que se encuentra en la base de datos o a que el apellido no existe en su totalidad; es decir, que esta vació el campo.
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscar por dos campos y preguntar con php

Publicado por zendi (1056 intervenciones) el 12/05/2015 21:41:14
Que tal.

Si efectivamente, si existe pero no pertenece a un apellido que no exista que de un mensaje de error
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscar por dos campos y preguntar con php

Publicado por zendi (1056 intervenciones) el 12/05/2015 22:09:41
Perdon rectifico,


si encuentra la cedula pero no pertenece a un apellido que exista; que de un mensaje de error

si encuentra la cedula y el apellido no; arroje un mensaje de error

si no encuentra la cedula y el apellido tampoco; que de otro mensaje de error

si no encuebtra la cedula y el apellido si; tambien habria otro mensaje de error.

Ahora si ambos estan correctos o existen o los encuentra
, traería la consulta.


En los actuales momentos si funciona solo para con la cedula:

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
$nrohistoria = $_POST['nrohistoria'];
		$cedula = $_POST['cedula'];
		$apellido = $_POST['apellido'];
		if($cedula && $_POST['buscar'])
		{
		$query="SELECT cedula FROM public.pacientes WHERE cedula=$cedula";
		$res=@pg_query($connect,$query);
			  if(@pg_num_rows($res)==0)
				{
				  echo "<script type='text/javascript'>
				 alert('Esta CEDULA no es correcta');
				 window.location='';
				 </script>";
				}
			  else
				{
					if ($_POST['cedula'])
					   {
					   $consulta2 = "SELECT pacientes.nrohistoria,
											 pacientes.nombres,
											 pacientes.apellidos,
											 pacientes.direccion,
											 pacientes.cta_correo,
											 pacientes.telefono,
											 pacientes.fecha_nac,
											 pacientes.id_paciente
										FROM pacientes
									   WHERE public.pacientes.cedula = {$_POST['cedula']}";
									$consulta3 = @pg_query($connect,$consulta2);
									$consulta3 = @pg_fetch_array($consulta3);
 
 
						 }
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 Alberto
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscar por dos campos y preguntar con php

Publicado por Alberto (351 intervenciones) el 12/05/2015 22:28:45
Hola...

De acuerdo a mi experiencia no vería como buena práctica buscar mediante un campo el cual podemos decir que se encuentra abierto; es decir, no controlas lo que el usuario pueda ingresar, sin embargo, debo tener en mente que eres consciente ante esa situación...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$cedula=$_POST['cedula'];
$apellido=$_POST['apellido'];
$query="SELECT * FROM public.pacientes WHERE cedula = '".$cedula."' AND apellido = '".$apellido."'";
$res=pg_query($connect,$query);
if (pg_affected_rows($res) > 0){
	while($row = pg_fetch_array($res)){
		if ($row['cedula'] == $cedula && $row['apellido'] != $apellido){
			echo "Cedula EXISTE. Apellido NO EXISTE.";
		} else if ($row['cedula'] != $cedula && $row['apellido'] == $apellido){
			echo "CEDULA INCORRECTA, APELLIDO CORRECTO.";
		} else if ($row['cedula'] == $cedula && $row['apellido'] == $apellido){
			echo "CEDULA Y APELLIDO CORRECTOS,";
		}
	}
} else {
	echo "NO EXISTE CEDULA NI APELLIDO.";
}

No estoy seguro si es lo que necesitas... NO EH PROBADO EL CÓDIGO ya que lo acabo de hacer por lo que cualquier duda y/o inconveniente, aquí estamos.

Aunque siendo honesto la solución mas correcta sería dos consultas diferentes, una para CÉDULA y otra respectiva para APELLIDO, después de todo si te pones a pensar el existe o no existe ya lo tienes cuando agregas el filtro mediante WHERE, por lo cual solo debes saber si existe te devuelve un registro o no mediante pg_affected_rows().

Suerte!
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscar por dos campos y preguntar con php

Publicado por zendi (1056 intervenciones) el 12/05/2015 22:46:11
Bueno lo voy a aplicar a ver.

Pero quiero dejarte el codigo completo:
revisalo cuando puedas, en negrita esta la validacion, este formulario es para pedir una cita a través de la cedula y el apellido, por eso lo de la validacion, la idea es para proteger la privacidad de los usuarios.

y gracias Alberto por tu ayuda.

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
<?php
   $connect = pg_connect("host=localhost port=5432 dbname=pediatria user=postgres password=movilnet");
   $especialidad = "SELECT * FROM especialidad ORDER BY descripcion";
   error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <script language="JavaScript" src="calendario.js"></script>
      <script language="JavaScript" src="overlib_mini.js"></script>
<SCRIPT type="text/javascript">
var patron = new Array(2,2,4)
var patron2 = new Array(1,3,3,3,3)
function mascara(d,sep,patron,nums)
{
if(d.valant != d.value){
	val = d.value
	largo = val.length
	val = val.split(sep)
	val2 = ''
	for(r=0;r<val.length;r++){
		val2 += val[r]
	}
	if(nums){
		for(z=0;z<val2.length;z++){
		  if(isNaN(val2.charAt(z))){
			letra = new RegExp(val2.charAt(z),"g")
			val2 = val2.replace(letra,"")
		   }
		}
	}
	val = ''
	val3 = new Array()
	for(s=0; s<patron.length; s++){
		val3[s] = val2.substring(0,patron[s])
		val2 = val2.substr(patron[s])
	}
	for(q=0;q<val3.length; q++){
		if(q ==0){
			val = val3[q]
		}
		else{
			if(val3[q] != ""){
				val += sep + val3[q]
			}
		}
	}
	d.value = val
	d.valant = val
	}
}
 
 
/***/
function validatePass(campo) {
    var RegExPattern = /(^[0-9]+.[0-9]+$)/;
    var errorMessage = 'Debe Escribir el Peso con un punto y decimales';
    if ((campo.value.match(RegExPattern)) && (campo.value!='')) {
    } else {
        alert(errorMessage);
        campo.focus();
    }
}
 
function validateTalla(talla) {
    var RegExPattern = /(^[0-9]+.[0-9]+$)/;
    var errorMessage = 'Debe Escribir la Talla con un punto y decimales';
    if ((talla.value.match(RegExPattern)) && (talla.value!='')) {
    } else {
        alert(errorMessage);
        talla.focus();
    }
}
 
function validateCircEncef(circenc) {
    var RegExPattern = /(^[0-9]+.[0-9]+$)/;
    var errorMessage = 'Debe Escribir el Perimetro Craneal con un punto y decimales';
    if ((circenc.value.match(RegExPattern)) && (circenc.value!='')) {
    } else {
        alert(errorMessage);
        circenc.focus();
    }
}
 
function validateCircBrazo(circbra) {
    var RegExPattern = /(^[0-9]+.[0-9]+$)/;
    var errorMessage = 'Debe Escribir la Circunferencia del Brazo con un punto y decimales';
    if ((circbra.value.match(RegExPattern)) && (circbra.value!='')) {
    } else {
        alert(errorMessage);
        circbra.focus();
    }
}
 
 
 
//
//
function validate_fecha(fecha)
{
    //var patron=new RegExp("^(19|20)+([0-9]{2})([/-])([0-9]{1,2})([-])([0-9]{1,2})$");
    var patron=new RegExp("^([0-9]{1,2})([/])([0-9]{1,2})([/])(19|20)+([0-9]{2})$");
//	alert(fecha+"hola2");
//	alert(patron);	
    if(fecha.search(patron)==0)
    { //alert("hola3");
        var values=fecha.split("/");
        if(isValidDate(values[0],values[1],values[2]))
        {//alert("hola4");
            return true;
        }
    }
	//alert("hola5");
    return false;
}
 
function isValidDate(day,month,year)
{
    var dteDate;
 
    // En javascript, el mes empieza en la posicion 0 y termina en la 11 
    //   siendo 0 el mes de enero
    // Por esta razon, tenemos que restar 1 al mes
    month=month-1;
    // Establecemos un objeto Data con los valore recibidos
    // Los parametros son: año, mes, dia, hora, minuto y segundos
    // getDate(); devuelve el dia como un entero entre 1 y 31
    // getDay(); devuelve un num del 0 al 6 indicando siel dia es lunes,
    //   martes, miercoles ...
    // getHours(); Devuelve la hora
    // getMinutes(); Devuelve los minutos
    // getMonth(); devuelve el mes como un numero de 0 a 11
    // getTime(); Devuelve el tiempo transcurrido en milisegundos desde el 1
    //   de enero de 1970 hasta el momento definido en el objeto date
    // setTime(); Establece una fecha pasandole en milisegundos el valor de esta.
    // getYear(); devuelve el año
    // getFullYear(); devuelve el año
    dteDate=new Date(year,month,day);
    //alert(((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear())));
    //Devuelva true o false...
    return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
}
 
 
function calcularEdad()
{
var fecha=document.getElementById("user_date").value; if(validate_fecha(fecha)==true) {
// Si la fecha es correcta, calculamos la edad 
var values=fecha.split("-");
var dia = values[2];
var mes = values[1];
var ano = values[0]; // cogemos los valores actuales 
var fecha_hoy = new Date();
var ahora_ano = fecha_hoy.getYear();
var ahora_mes = fecha_hoy.getMonth();
var ahora_dia = fecha_hoy.getDate(); // realizamos el calculo 
var edad = (ahora_ano + 1900) - ano;
if ( ahora_mes < (mes - 1))
{
edad--;
}
  if (((mes - 1) == ahora_mes) && (ahora_dia < dia))
   {
    edad--;
   }
if (edad > 1900)
 {
 edad -= 1900;
 }
      if(edad==0)
       {
	    edad=ahora_mes-mes;
	    console.log(ahora_mes+"-"+mes);
	    document.getElementById("result").innerHTML="Tienes "+edad+" meses";
       }
       else
       {
         document.getElementById("result").innerHTML="Tienes "+edad+" años";
       }
  }
  else{
   document.getElementById("result").innerHTML="La fecha "+fecha+" es incorrecta";
  }
}
 
//}	
 
 
</script>
<title>Pacientes</title>
</head>
 
<body>
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<form action="" method="POST" name="form1">
<?php
$connect = pg_connect("host=localhost port=5432 dbname=pediatria user=postgres password=movilnet");
?>
<h1>
<table align="center"><tr><td class="sr" style="text-decoration:none">Sistema de Registro en Línea para PEDIATRIA</td></tr>
  <table align="center"><tr><td class="sr" style="text-decoration:none">Módulo para Solicitar una Cita en Línea</td></tr>
  </table>
</table></h1>
 
<table width="200" align="center" class="bordetbl1">
		<tr>
    	  <td class="tit1">Escriba la Cédula:</td>
       	  <td><input type="text" name="cedula" size="15" maxlength="15" align="right" class="color1"/></td>
       	  <td><input type="text" name="apellido" align="right" class="color1"/></td>
          <td><input type="submit" name="buscar" value="Buscar"></td>
		</tr>
</table>
<?php
 
////////////////////// valida cedula en blanco
$cedula = $_POST['cedula'];
if(empty($cedula) && $_POST['buscar'])
{
   echo "<script type='text/javascript'>
	alert('Debe escribir su Cédula antes de Seguir');
	window.location='';
	</script>";
}
		$nrohistoria = $_POST['nrohistoria'];
		$cedula = $_POST['cedula'];
		$apellido = $_POST['apellido'];
		if($cedula && $_POST['buscar'])
		{
		$query="SELECT cedula FROM public.pacientes WHERE cedula=$cedula";
		$res=@pg_query($connect,$query);
			  if(@pg_num_rows($res)==0)
				{
					   ?>
					   <script type='text/javascript'>
					   var agree=confirm("La Cedula aún no esta Registrada.\nDebe registrarse con la Cedula del Representante\npara optar por una Cita¿Desea Registrarse Ahora mísmo?");
					   if (agree)
						   window.location='crearhistoria.php?nro=<?php echo $cedula?>';
					   else
						window.location='citas.php';
					   </script>
					   <?php
				}
			  else
				{
					if ($_POST['cedula'])
					   {
					   $consulta2 = "SELECT pacientes.nrohistoria,
											 pacientes.nombres,
											 pacientes.apellidos,
											 pacientes.direccion,
											 pacientes.cta_correo,
											 pacientes.telefono,
											 pacientes.fecha_nac,
											 pacientes.id_paciente
										FROM pacientes
									   WHERE public.pacientes.cedula = {$_POST['cedula']}";
									$consulta3 = @pg_query($connect,$consulta2);
									$consulta3 = @pg_fetch_array($consulta3);
 
 
						 }
								$apellido=$_POST['apellido'];
 
								if(isset($_POST['apellido']) && $_POST['buscar'])
								{
								$result=pg_query($connect,"SELECT apellidos FROM pacientes WHERE apellidos=$apellido");
										 if($row=pg_num_rows($result)<0)
										   {
												  echo "<script type='text/javascript'>
												 alert('Este apellido no Existe');
												 window.location='';
												 </script>";
										   }
									     else
										   {
 
					   $consulta2 = "SELECT pacientes.nrohistoria,
											 pacientes.nombres,
											 pacientes.apellidos,
											 pacientes.direccion,
											 pacientes.cta_correo,
											 pacientes.telefono,
											 pacientes.fecha_nac,
											 pacientes.id_paciente
										FROM pacientes
									   WHERE public.pacientes.cedula = {$_POST['cedula']}";
									$consulta3 = @pg_query($connect,$consulta2);
									$consulta3 = @pg_fetch_array($consulta3);
			?>
</form>
<form name="form2" action="cargacita.php" method="post">
 
<table>
 
<td class='sr'>
	  <tr>
                   <input type="hidden" name="cedula" value="<?php echo $cedula; ?>"/>
 
		<td class="sr" align='right' style="text-decoration:none">Nombres:</td>
		<td class="sr"><input type="text" name="nombres" size="50" maxlength="50" align="right" value="<?php echo $consulta3['nombres']?>" readonly="t" />
		</td>
	  </tr>
 
	  <tr>
		<td class="sr" align='right' style="text-decoration:none">Apellidos:</td>
		<td class="sr"><input type="text" name="apellidos" size="50" maxlength="50" align="right" value="<?php echo $consulta3['apellidos']?>" readonly="t"/></td>
	  </tr>
 
	  <tr>
		<td class="sr" align='right' style="text-decoration:none">Direccion:</td>
		<td class="sr"><input type="text" name="direccion" size="120" maxlength="120" align="right" value="<?php echo $consulta3['direccion']?>" readonly="t"/>
		</td>
	  </tr>
	  <tr>
		<td class="sr" align='right' style="text-decoration:none">Telefono:</td>
		<td class="sr"><input type="text" name="telefono" size="10" maxlength="10" align="right" value="<?php echo $consulta3['telefono']?>" readonly="t"/>
		</td>
	  </tr>
	  <tr>
		<td class="sr" align='right' style="text-decoration:none">Cuenta de Correo:</td>
		<td class="sr"><input type="text" name="correo" size="50" maxlength="50" align="right" value="<?php echo $consulta3['cta_correo']?>" readonly="t"/>
		</td>
	  </tr>
	  <tr>
		<td class="sr" align='right' style="text-decoration:none">Fecha de la Cita:</td>
		<td class="sr"><input type="text" name="correo" size="10" maxlength="10" align="right" value="FECHA SELECCIONADA" readonly="t"/>
		</td>
	  </tr>
 
 
<tr>
     <td align='right'>Especialidades:</td>
     <td><select name="cmbosexo"><option value="0">[Seleccione la Especialidad]</option>
 
<?php
 
//*** crear la tabla especialidad
$especial = @pg_query($connect,$especialidad);
while($selectespec = @pg_fetch_array($especial))
          {
			$codigo = $selectespec['codigo'];
            $descrip = $selectespec['descripcion'];
            echo "<OPTION VALUE='$codigo'>$descrip</OPTION>";
          }
?>
        </select></td></tr>
 
  <tr>
           <th width='100' style='font-size:15px;'>Consulta:
		     	       <td><textarea name='consulta' cols='90' rows='3'></textarea>
  </td></tr>
 
</table>
<?php
										}
								}
 
 
?>
<table align="center">
   <tr>
    <td>
         <input class="color1" type="submit" name="action" value="Enviar" title="Enviar la Cita"/>
         <input class="color1" type="reset" value="Deshacer">
    </td>
    </tr>
</table>
</form>
		<?php
 
		}
}
		?>
</body>
 
</html>
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 Alberto
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscar por dos campos y preguntar con php

Publicado por Alberto (351 intervenciones) el 12/05/2015 23:12:23
Hola...

Comprendo que tus necesidades te llevaron a la necesidad de filtrar mediante el apellido, sin embargo, el apellido es como dije anteriormente un campo el cual no "puedes" controlar, supongamos que yo como usuario del sistema atiendo a un cliente el cual tiene como por apellido Montserrat y resulta que tuve un error de dedo y escribí Monserrat, entonces cuando realice el proceso correspondiente entonces nunca podrás ver ese usuario, y todo por una simple letra la cual hasta no se actualice no podrás trabajar correctamente. Regularmente, la forma "correcta" con la que trabajaría yo sería únicamente la cédula y encriptarlo, o bien generar una clave única para los usuarios ademas de la cédula.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos. Suerte!
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscar por dos campos y preguntar con php

Publicado por zendi (1056 intervenciones) el 13/05/2015 00:38:31
Cuando te refieres a una clave unica, será que debo unir la cedula con otro campo, porque en este caso estoy uniendo la cedula y el apellido,

o sera que se debe hacer esto a nivel de base de datos?

por Ultimo Apliqué tu codigo asi:
pero esta funcionando la parte que sta en negrita, a ver por que los demas no los hace.

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
<?php
   $connect = pg_connect("host=localhost port=5432 dbname=pediatria user=postgres password=movilnet");
   $especialidad = "SELECT * FROM especialidad ORDER BY descripcion";
   error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <script language="JavaScript" src="calendario.js"></script>
      <script language="JavaScript" src="overlib_mini.js"></script>
<SCRIPT type="text/javascript">
var patron = new Array(2,2,4)
var patron2 = new Array(1,3,3,3,3)
function mascara(d,sep,patron,nums)
{
if(d.valant != d.value){
	val = d.value
	largo = val.length
	val = val.split(sep)
	val2 = ''
	for(r=0;r<val.length;r++){
		val2 += val[r]
	}
	if(nums){
		for(z=0;z<val2.length;z++){
		  if(isNaN(val2.charAt(z))){
			letra = new RegExp(val2.charAt(z),"g")
			val2 = val2.replace(letra,"")
		   }
		}
	}
	val = ''
	val3 = new Array()
	for(s=0; s<patron.length; s++){
		val3[s] = val2.substring(0,patron[s])
		val2 = val2.substr(patron[s])
	}
	for(q=0;q<val3.length; q++){
		if(q ==0){
			val = val3[q]
		}
		else{
			if(val3[q] != ""){
				val += sep + val3[q]
			}
		}
	}
	d.value = val
	d.valant = val
	}
}
 
 
/***/
function validatePass(campo) {
    var RegExPattern = /(^[0-9]+.[0-9]+$)/;
    var errorMessage = 'Debe Escribir el Peso con un punto y decimales';
    if ((campo.value.match(RegExPattern)) && (campo.value!='')) {
    } else {
        alert(errorMessage);
        campo.focus();
    }
}
 
function validateTalla(talla) {
    var RegExPattern = /(^[0-9]+.[0-9]+$)/;
    var errorMessage = 'Debe Escribir la Talla con un punto y decimales';
    if ((talla.value.match(RegExPattern)) && (talla.value!='')) {
    } else {
        alert(errorMessage);
        talla.focus();
    }
}
 
function validateCircEncef(circenc) {
    var RegExPattern = /(^[0-9]+.[0-9]+$)/;
    var errorMessage = 'Debe Escribir el Perimetro Craneal con un punto y decimales';
    if ((circenc.value.match(RegExPattern)) && (circenc.value!='')) {
    } else {
        alert(errorMessage);
        circenc.focus();
    }
}
 
function validateCircBrazo(circbra) {
    var RegExPattern = /(^[0-9]+.[0-9]+$)/;
    var errorMessage = 'Debe Escribir la Circunferencia del Brazo con un punto y decimales';
    if ((circbra.value.match(RegExPattern)) && (circbra.value!='')) {
    } else {
        alert(errorMessage);
        circbra.focus();
    }
}
 
 
 
//
//
function validate_fecha(fecha)
{
    //var patron=new RegExp("^(19|20)+([0-9]{2})([/-])([0-9]{1,2})([-])([0-9]{1,2})$");
    var patron=new RegExp("^([0-9]{1,2})([/])([0-9]{1,2})([/])(19|20)+([0-9]{2})$");
//	alert(fecha+"hola2");
//	alert(patron);	
    if(fecha.search(patron)==0)
    { //alert("hola3");
        var values=fecha.split("/");
        if(isValidDate(values[0],values[1],values[2]))
        {//alert("hola4");
            return true;
        }
    }
	//alert("hola5");
    return false;
}
 
function isValidDate(day,month,year)
{
    var dteDate;
 
    // En javascript, el mes empieza en la posicion 0 y termina en la 11 
    //   siendo 0 el mes de enero
    // Por esta razon, tenemos que restar 1 al mes
    month=month-1;
    // Establecemos un objeto Data con los valore recibidos
    // Los parametros son: año, mes, dia, hora, minuto y segundos
    // getDate(); devuelve el dia como un entero entre 1 y 31
    // getDay(); devuelve un num del 0 al 6 indicando siel dia es lunes,
    //   martes, miercoles ...
    // getHours(); Devuelve la hora
    // getMinutes(); Devuelve los minutos
    // getMonth(); devuelve el mes como un numero de 0 a 11
    // getTime(); Devuelve el tiempo transcurrido en milisegundos desde el 1
    //   de enero de 1970 hasta el momento definido en el objeto date
    // setTime(); Establece una fecha pasandole en milisegundos el valor de esta.
    // getYear(); devuelve el año
    // getFullYear(); devuelve el año
    dteDate=new Date(year,month,day);
    //alert(((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear())));
    //Devuelva true o false...
    return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
}
 
 
function calcularEdad()
{
var fecha=document.getElementById("user_date").value; if(validate_fecha(fecha)==true) {
// Si la fecha es correcta, calculamos la edad 
var values=fecha.split("-");
var dia = values[2];
var mes = values[1];
var ano = values[0]; // cogemos los valores actuales 
var fecha_hoy = new Date();
var ahora_ano = fecha_hoy.getYear();
var ahora_mes = fecha_hoy.getMonth();
var ahora_dia = fecha_hoy.getDate(); // realizamos el calculo 
var edad = (ahora_ano + 1900) - ano;
if ( ahora_mes < (mes - 1))
{
edad--;
}
  if (((mes - 1) == ahora_mes) && (ahora_dia < dia))
   {
    edad--;
   }
if (edad > 1900)
 {
 edad -= 1900;
 }
      if(edad==0)
       {
	    edad=ahora_mes-mes;
	    console.log(ahora_mes+"-"+mes);
	    document.getElementById("result").innerHTML="Tienes "+edad+" meses";
       }
       else
       {
         document.getElementById("result").innerHTML="Tienes "+edad+" años";
       }
  }
  else{
   document.getElementById("result").innerHTML="La fecha "+fecha+" es incorrecta";
  }
}
 
//}	
 
 
</script>
<title>Pacientes</title>
</head>
 
<body>
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<form action="" method="POST" name="form1">
<?php
$connect = pg_connect("host=localhost port=5432 dbname=pediatria user=postgres password=movilnet");
?>
<h1>
<table align="center"><tr><td class="sr" style="text-decoration:none">Sistema de Registro en Línea para PEDIATRIA</td></tr>
  <table align="center"><tr><td class="sr" style="text-decoration:none">Módulo para Solicitar una Cita en Línea</td></tr>
  </table>
</table></h1>
 
<table width="200" align="center" class="bordetbl1">
		<tr>
    	  <td class="tit1">Escriba la Cédula:</td>
       	  <td><input type="text" name="cedula" size="15" maxlength="15" align="right" class="color1"/></td>
       	  <td><input type="text" name="apellido" align="right" class="color1"/></td>
          <td><input type="submit" name="buscar" value="Buscar"></td>
		</tr>
</table>
<?php
$cedula=$_POST['cedula'];
 
$apellido=$_POST['apellido'];
 
$query="SELECT * FROM public.pacientes WHERE cedula = $cedula AND apellidos = '$apellido'";
 
$res=pg_query($connect,$query);
 
if (pg_num_rows($res) > 0)
{
 
	$row = pg_fetch_array($res);
 
		if ($row['cedula'] == $cedula && $row['apellidos'] != $apellido)
		{
			  echo "<script type='text/javascript'>
			 alert('Cedula EXISTE. Apellido NO EXISTE.');
			 window.location='';
			 </script>";
		}
		else if ($row['cedula'] != $cedula && $row['apellidos'] == $apellido)
		{
			  echo "<script type='text/javascript'>
			 alert('CEDULA INCORRECTA, APELLIDO CORRECTO.');
			 window.location='';
			 </script>";
		}
		else if ($row['cedula'] == $cedula && $row['apellidos'] == $apellido)
		{
 
								   $consulta2 = "SELECT pacientes.nrohistoria,
											 pacientes.nombres,
											 pacientes.apellidos,
											 pacientes.direccion,
											 pacientes.cta_correo,
											 pacientes.telefono,
											 pacientes.fecha_nac,
											 pacientes.id_paciente
										FROM pacientes
									   WHERE public.pacientes.cedula = {$_POST['cedula']}";
									$consulta3 = @pg_query($connect,$consulta2);
									$consulta3 = @pg_fetch_array($consulta3);
	}
	else
	{
		  echo "<script type='text/javascript'>
		 alert('NO EXISTE CEDULA NI APELLIDO.');
		 window.location='';
		 </script>";
    }
 
 
/////////////////
 
 
/*		if ($row['cedula'] == $cedula && $row['apellidos'] != $apellido)
		{
					  echo "<script type='text/javascript'>
					 alert('Cedula EXISTE. Apellido NO EXISTE.');
					 window.location='';
					 </script>";
		}
		  if ($row['cedula'] != $cedula && $row['apellidos'] == $apellido)
		  {
					  echo "<script type='text/javascript'>
					 alert('CEDULA INCORRECTA, APELLIDO CORRECTO.');
					 window.location='';
					 </script>";
				
		
		  }
		  
			  if($row['cedula'] == $cedula && $row['apellidos'] == $apellido)
			  {
											   $consulta2 = "SELECT pacientes.nrohistoria,
														 pacientes.nombres,
														 pacientes.apellidos,
														 pacientes.direccion,
														 pacientes.cta_correo,
														 pacientes.telefono,
														 pacientes.fecha_nac,
														 pacientes.id_paciente
													FROM pacientes
												   WHERE public.pacientes.cedula = {$_POST['cedula']}";
												$consulta3 = @pg_query($connect,$consulta2);
												$consulta3 = @pg_fetch_array($consulta3);
			
			
				 }  */
}
 
			?>
</form>
						<form name="form2" action="cargacita.php" method="post">
 
						<table>
 
						<td class='sr'>
							  <tr>
						<!--                   <input type="hidden" name="cedula" value="<?php echo $cedula; ?>"/>				  
						-->
								<td class="sr" align='right' style="text-decoration:none">Nombres:</td>
								<td class="sr"><input type="text" name="nombres" size="50" maxlength="50" align="right" value="<?php echo $consulta3['nombres']?>" readonly="t" />
								</td>
							  </tr>
 
							  <tr>
								<td class="sr" align='right' style="text-decoration:none">Apellidos:</td>
								<td class="sr"><input type="text" name="apellidos" size="50" maxlength="50" align="right" value="<?php echo $consulta3['apellidos']?>" readonly="t"/></td>
							  </tr>
 
							  <tr>
								<td class="sr" align='right' style="text-decoration:none">Direccion:</td>
								<td class="sr"><input type="text" name="direccion" size="120" maxlength="120" align="right" value="<?php echo $consulta3['direccion']?>" readonly="t"/>
								</td>
							  </tr>
							  <tr>
								<td class="sr" align='right' style="text-decoration:none">Telefono:</td>
								<td class="sr"><input type="text" name="telefono" size="10" maxlength="10" align="right" value="<?php echo $consulta3['telefono']?>" readonly="t"/>
								</td>
							  </tr>
							  <tr>
								<td class="sr" align='right' style="text-decoration:none">Cuenta de Correo:</td>
								<td class="sr"><input type="text" name="correo" size="50" maxlength="50" align="right" value="<?php echo $consulta3['cta_correo']?>" readonly="t"/>
								</td>
							  </tr>
							  <tr>
								<td class="sr" align='right' style="text-decoration:none">Fecha de la Cita:</td>
								<td class="sr"><input type="text" name="correo" size="10" maxlength="10" align="right" value="FECHA SELECCIONADA" readonly="t"/>
								</td>
							  </tr>
 
 
						<tr>
							 <td align='right'>Especialidades:</td>
							 <td><select name="cmbosexo"><option value="0">[Seleccione la Especialidad]</option>
 
						<?php
 
						//*** crear la tabla especialidad
						$especial = @pg_query($connect,$especialidad);
						while($selectespec = @pg_fetch_array($especial))
								  {
									$codigo = $selectespec['codigo'];
									$descrip = $selectespec['descripcion'];
									echo "<OPTION VALUE='$codigo'>$descrip</OPTION>";
								  }
						?>
								</select></td></tr>
 
						  <tr>
								   <th width='100' style='font-size:15px;'>Consulta:
											   <td><textarea name='consulta' cols='90' rows='3'></textarea>
						  </td></tr>
 
						</table>
						<?php
						?>
						<table align="center">
						   <tr>
							<td>
								 <input class="color1" type="submit" name="action" value="Enviar" title="Enviar la Cita"/>
								 <input class="color1" type="reset" value="Deshacer">
							</td>
							</tr>
						</table>
						</form>
						</body>
 
						</html>
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 Alberto
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscar por dos campos y preguntar con php

Publicado por Alberto (351 intervenciones) el 13/05/2015 01:11:00
Hola...

El unir dos campos para generar una llave compuesta es regularmente usado en tablas cuya relación es del tipo muchos a muchos, en este caso no estoy consciente del modelo de tu base de datos, sin embargo, si todos los campos a consultar los contienes en una sola tabla entonces no es necesario aplicar dos filtros para consultar un registro, eh de suponer que la cédula es única y por lo tanto no puede repetirse por lo que solo con filtrar mediante su cédula sera suficiente para obtener el registro que necesitas, ahora bien si tu sistema permite cédulas repetidas entonces ahí tienes un problema de integridad y no precisamente en tu base de datos, mas bien en tu aplicación ya que eh de suponer que cédula funciona como tu llave primaria, si este es el caso entonces tienes varias opciones...

1.- Cambiar la lógica de negocios de tu aplicación para que permita o no cédulas repetidas, obviamente dependería de tu análisis.
2.- Cambiar la llave primaria de tu tabla por un campo el cual permita ser único, por ejemplo, correo electrónico.
3.- Combinar la cédula con otro campo para generar una llave primaria compuesta, sin embargo, como dije anteriormente no veo necesidad de ello si toda tu información la consultas fácilmente en una sola tabla.
4.- Generar un ID independiente de la cédula el cual funcione como llave primaria, ahora bien, este tiene la posibilidad de ser autoincrement o NO autoincrement, no obstante, lo funcional es autoincrement.

En resumen, todo depende de tu análisis, como dije anteriormente, si CÉDULA, NOMBRE, APELLIDO, EMAIL, ETC, se encuentra en una sola tabla y CEDULA es única, entonces no te rompas la cabeza filtrando por un segundo parámetro.

Con respecto al código que te proporcione, la última condición se cumplirá únicamente si los valores que son recuperados en tus variables $cedula y $apellido se encuentran en la base de datos; es decir, si tienes un registro con Cedula: 12345 y Apellido: Alberto, y en tu formulario buscas la Cedula: 12345 y el Apellido: Alberto, entonces la condición se cumplira, caso contrario, debería realizar los siguientes casos.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos. Suerte!
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscar por dos campos y preguntar con php

Publicado por zendi (1056 intervenciones) el 13/05/2015 01:15:46
Esta bien voy a analizar esto que me dices. Gracias amigo.
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