Foros del Web » Programando para Internet » PHP »

Problema al consultar tabla y uso de condicional If

Estas en el tema de Problema al consultar tabla y uso de condicional If en el foro de PHP en Foros del Web. Mi problema es el siguiente: en la página anterior creé un imput, donde tienes que ingresar un valor, ya sea NOMBRES o ID para buscar ...
  #1 (permalink)  
Antiguo 19/09/2013, 22:00
Avatar de angelveloz17  
Fecha de Ingreso: septiembre-2013
Ubicación: Aragua
Mensajes: 14
Antigüedad: 10 años, 7 meses
Puntos: 0
Problema al consultar tabla y uso de condicional If

Mi problema es el siguiente:

en la página anterior creé un imput, donde tienes que ingresar un valor, ya sea NOMBRES o ID para buscar al paciente.

Luego de ser ingresado ese valor, en la siguiente página debe mostrar los datos del id o nombre buscado y en caso de no existir, debe aparecer un mensaje de "No existe nada". Pero allí es donde está el problema.

Ya que cuando ingreso el valor correcto, si me muestra los datos, todo funciona perfecto allí, Pero cuando el valor es falso, No muestra el mensaje de "NO EXISTE NADA", cuando debería de salir, solo aparece la página en blanco y ya.

Otro problema es cuando busco el ID, por decir, el id correcto es 10, pero marco 10fasdgas, se muestra el id 10, cuando debería de aparecer el mensaje de error. porque 10fasdgas no existe, pero aún así me muestra los datos del id 10.

aquí les muestro mi código.

Página uno:

Código HTML:
<form Class="formconsulta" action="buscar_consultas.php" method="POST" name="consultar">
<input type="text" name="datoconsulta" class="consulta"/>
</form> 
Página dos:

Código PHP:
<?php 
    $titulo
="Consulta Buscada";
    include (
"libreria.php");
    
head($titulo);
    
aside();
?>

<div id="content">

<?php

$datoconsulta
=$_POST['datoconsulta'];

$servidor="localhost";
$login="root";
$clave="";
$base="pediatras";

$conecta=mysql_connect($servidor,$login,$clave);
$seleccion=mysql_select_db($base,$conecta);
    
$sql="SELECT * FROM  historia WHERE nombres='$datoconsulta' OR id_historia='$datoconsulta'";
$result=mysql_query($sql);
        
if (
$result !== true){
    while( 
$fila mysql_fetch_array$result )){    
?>
Código HTML:
 <br /> <h3>&nbsp;&nbsp;&nbsp;PACIENTE: <?php echo $fila["nombres"]; echo " "; echo $fila["apellidos"];?></h3> <br>
           <h3>&nbsp;&nbsp; Fecha: <?php echo date('d-M-Y'); ?> </h3><br><br>
         

<table border="0" cellspacing="0" class="tablaconsulta">
  <tr>
    <td class="tc">ID:</td>
    <td class="ttc"><?php echo $fila["id_historia"]; ?></td>
  </tr>
  <tr>
    <td class="tc">Nombres:</td>
    <td class="ttc"><?php echo $fila["nombres"]; ?></td>
  </tr>
  <tr>
    <td class="tc">Apellidos</td>
    <td class="ttc"><?php echo $fila["apellidos"]; ?></td>
  </tr>
  <tr>
    <td class="tc">Edad:</td>
    <td class="ttc"><?php echo $fila["edad"]; ?></td>
  </tr>
  <tr>
    <td class="tc">Género:</td>
    <td class="ttc"><?php echo $fila["genero"]; ?></td>
  </tr>
  <tr>
    <td class="tc">Fecha de Nacimiento:</td>
    <td class="ttc"><?php echo $fila["fecha_nac"]; ?></td>
  </tr>
  <tr>
    <td class="tc" height="60px">Lugar de Nacimiento:</td>
    <td class="ttc"><?php echo $fila["lugar_nac"]; ?></td>
  </tr>
  <tr>
    <td class="tc" height="80px">Dirección:</td>
    <td class="ttc"><?php echo $fila["direccion"]; ?></td>
  </tr>
  <tr>
    <td class="tc">Tlf. Movil:</td>
    <td class="ttc"><?php echo $fila["tlf_m"]; ?></td>
  </tr>
  <tr>
    <td class="tc">Tlf. Fijo:</td>
    <td class="ttc"><?php echo $fila["tlf_f"]; ?></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td class="tc">Representante:</td>
    <td class="ttc"><?php echo $fila["nombre"]; echo " "; echo $fila["apellido"]; ?></td>
  </tr>
  <tr>
    <td class="tc">C.I:</td>
    <td class="ttc"><?php echo $fila["cedula"]; ?></td>
  </tr>
</table> <br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="Editar" name="buscar" class="bcontinuar"  title="Hacer clic para Editar información del Paciente"/>
<input type="submit" value="Eliminar" name="buscar" class="bcontinuar"  title="Hacer clic para Eliminar al Paciente"/> 
Código PHP:
<?php
    
}} 
    
else {
    echo 
'No existe nada' .mysql_error();
    
$foo false;
    
var_dump(isset($foo));
    }
?>    
</div>
  #2 (permalink)  
Antiguo 19/09/2013, 22:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al consultar tabla y uso de condicional If

Tu consulta usa operadores OR, lo que significa que siempre arrojará resultados mientras uno de ambos valores exista en la BD, ahí no estás validando nada.

Además estás duplicando un tema que ya habías abierto antes: http://www.forosdelweb.com/f18/probl...al-if-1074171/

Y eso va contra las reglas del foro, por favor, evita duplicar temas y de paso lee las normas del foro.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/09/2013, 22:55
Avatar de angelveloz17  
Fecha de Ingreso: septiembre-2013
Ubicación: Aragua
Mensajes: 14
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema al consultar tabla y uso de condicional If

Es que lo puse con la intención de que en el input de la 1era página puedan ingresar ya sea o el id o nombres, y en la consulta, si no es el ID, tiene que ser el nombre, por eso pienso que va el OR, pero el error está en que cuando ingreso un dato falso, no me genera el "No existe nada", solo se queda en blanco la página, y aparte que cuando trato de ingresar por ejemplo el id 18, y le agrego 18asjjgajsfa, me muestra los datos del ID 18, a pesar de que 18asjjgajsfa NO EXISTE en la base de datos.

Y pues, si, pero lo que pasa, es que en el Post anterior, pensé que el problema era las condicionales, y después veo que ese no es el problema, por eso creé uno nuevo.

A parte que el post anterior no se puede borrar :s
  #4 (permalink)  
Antiguo 19/09/2013, 22:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al consultar tabla y uso de condicional If

Y deja de eso, encima tienes una condicional muy mal.
Cita:
if ($result !== true)
¿Si entiendes lo que hace eso o no?

Vamos, que si la función devuelve FALSE (es decir, no hay resultados) aún así se evalúa como correcta la condición, y no me extrañaría que todo tu script se rompa si encima no controlas los errores ni depuras las consultas, aunque la consulta esté mal se procesa todo el bloque como si estuviera bien.

Parece que no pones mucha atención a los comentarios que se te hacen, así no se puede, si la lógica básica no la manejas ahora entiendo porque te ahogas con un vaso de agua.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 19/09/2013, 23:11
Avatar de angelveloz17  
Fecha de Ingreso: septiembre-2013
Ubicación: Aragua
Mensajes: 14
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema al consultar tabla y uso de condicional If

Entiendo el Error en esa parte, pero lo había colocado como tú me habías dicho, la cuestión fue que quise cambiar los valores true, False para ver si había algún cambio, pero no arrojó ninguno.

y por cuestiones de olvido, no cambié el valor antes de subirlo al foro.

Y si le pongo atención a lo que me escriben, si vez he cambiado códigos que ustedes me recomendaron. excepto este:

Cita:
<?php

$consulta = "SELECT * FROM usuarios JOIN paises on usuarios.PAISES_ID = paises.ID WHERE NOMBRE_PAIS = 'Francia'";

?>
Que lo que hacía era darme el mismo resutlado que con NATURAL JOIN pero Cartesiano, y así no me sirve.
  #6 (permalink)  
Antiguo 19/09/2013, 23:44
Avatar de angelveloz17  
Fecha de Ingreso: septiembre-2013
Ubicación: Aragua
Mensajes: 14
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema al consultar tabla y uso de condicional If

Ya solucioné el programa de que no aparecía el mensaje de error, solo era cuestion de borrar las llaves de ELSE.

malo
Código PHP:
Ver original
  1. <?php
  2.     }}
  3.    
  4. else {
  5.     echo 'No existe nada' .mysql_error();
  6.     $foo = false;
  7.     var_dump(isset($foo));
  8.     }
  9. ?>    
  10. </div>

bueno
Código PHP:
Ver original
  1. <?php
  2.     }}
  3.    
  4.     echo 'No existe nada' .mysql_error();
  5.     $foo = false;
  6.     var_dump(isset($foo));
  7.    
  8. ?>    
  9. </div>

Ahora me queda el programa de que cuando se marca el 10asjagahsj, en vez de aparecer el mensaje de error, me muestra es el id 10. :s

Última edición por angelveloz17; 19/09/2013 a las 23:54
  #7 (permalink)  
Antiguo 20/09/2013, 02:34
 
Fecha de Ingreso: abril-2012
Mensajes: 45
Antigüedad: 12 años
Puntos: 1
Respuesta: Problema al consultar tabla y uso de condicional If

Cita:
Iniciado por angelveloz17 Ver Mensaje
Ya solucioné el programa de que no aparecía el mensaje de error, solo era cuestion de borrar las llaves de ELSE.

malo
Código PHP:
Ver original
  1. <?php
  2.     }}
  3.    
  4. else {
  5.     echo 'No existe nada' .mysql_error();
  6.     $foo = false;
  7.     var_dump(isset($foo));
  8.     }
  9. ?>    
  10. </div>

bueno
Código PHP:
Ver original
  1. <?php
  2.     }}
  3.    
  4.     echo 'No existe nada' .mysql_error();
  5.     $foo = false;
  6.     var_dump(isset($foo));
  7.    
  8. ?>    
  9. </div>

Ahora me queda el programa de que cuando se marca el 10asjagahsj, en vez de aparecer el mensaje de error, me muestra es el id 10. :s
Buenas,

para quedarte solo con una parte de los datos introducidos tienes que utilizar expresiones regulares para validar que hay un id en la cadena introducida y después con fuciones de tratamiento de cadenas te quedas con lo que necesites. Una vez que ya tengas la parte que necesites del dato introducido realizas la consulta a la base de datos


Saludos;)

Etiquetas: condicional, consultar, fecha, mysql, select, sql, tabla
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 16:06.