Foros del Web » Programando para Internet » PHP »

Problema con sentencias

Estas en el tema de Problema con sentencias en el foro de PHP en Foros del Web. Tengo que comprobar tres casos, uno si existe el campo codigo en todas las tablas, el siguiente si solo existe en unos cuantos y el ...
  #1 (permalink)  
Antiguo 08/11/2011, 14:11
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Problema con sentencias

Tengo que comprobar tres casos, uno si existe el campo codigo en todas las tablas, el siguiente si solo existe en unos cuantos y el otro si no existe en ninguna tabla.

EL primero funciona correctamente con los AND, el problema es que la sentencia segunda la que lleva los OR es incorrecta ya que probandola por phpmyadmin me selecciona todos los campos sean o no del codigo que le paso y no sé porqué....

Código PHP:
Ver original
  1. $sql1 = "SELECT * FROM pdebilesg1,pfuertesg1,p101incidenciag,iat1 WHERE pdebilesg1.codigo = '".$_SESSION['codigo']."' AND pfuertesg1.codigo = '".$_SESSION['codigo']."' AND p101incidenciag.codigo = '".$_SESSION['codigo']."' AND iat1.codigo = '".$_SESSION['codigo']."' AND p101incidenciag.codigo = '".$_SESSION['codigo']."' " ;
  2.  
  3.                     $resul1=mysql_query($sql1) or die("<b>Error. El servidor dijo: </b> " . mysql_error());  
  4.  
  5.                     //Si está codigo en todos
  6.  
  7.                     if (mysql_num_rows($resul1) > 0) {
  8.  
  9.                         $iat='<td><img src="/imagenes/iconos/20x20/smileverde.png" width="20" height="20" alt="Informe Anual" title="Informe Anual" /></td>';
  10.  
  11.                     }else{
  12.  
  13.                         $sqlt1 = "SELECT * FROM pdebilesg1,p101incidenciag,iat1 WHERE pdebilesg1.codigo = '".$_SESSION['codigo']."' OR p101incidenciag.codigo = '".$_SESSION['codigo']."' OR iat1.codigo = '".$_SESSION['codigo']."'";
  14.  
  15.                         $result1=mysql_query($sqlt1) or die("<b>Error. El servidor dijo: </b> " . mysql_error());  
  16.  
  17.                         if (mysql_num_rows($result1) > 0) {
  18.  
  19.                         $iat='<td><img src="/imagenes/iconos/20x20/smilenaranja.png" width="20" height="20" alt="Informe Anual" title="Informe Anual" /></td>';
  20.  
  21.                     }else{
  22.  
  23.                         $iat='<td><img src="/imagenes/iconos/20x20/smilerojo.png" width="20" height="20" alt="Informe Anual" title="Informe Anual" /></td>';
  24.  
  25.                     }
  #2 (permalink)  
Antiguo 08/11/2011, 18:16
 
Fecha de Ingreso: octubre-2011
Ubicación: USA
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 19
Respuesta: Problema con sentencias

Con el OR solo basta con que se cumpla uno para que se ejecute la accion reviza tus datos.

Saludos
  #3 (permalink)  
Antiguo 09/11/2011, 03:49
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Problema con sentencias

SI eso es lo que quiero...pero esa sentenia no es que solo baste uno...es que selecciona toda la base de datos...y no sé porqué.
  #4 (permalink)  
Antiguo 09/11/2011, 09:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con sentencias

Es por eso, ya que el OR con uno que se ejecute lo incluye, si tu problema es en la consulta de tu BDD, te recomiendo que pongas tus problemas en el foro de BDDs.

Saludos.

Etiquetas: mysql, sentencias, 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 18:50.