Foros del Web » Programando para Internet » PHP »

problema con IF en PHP

Estas en el tema de problema con IF en PHP en el foro de PHP en Foros del Web. hola buen dia tengo un inconveniente con un if anidado que no he podido darle solucion, mi problematica es que realice una consulta donde me ...
  #1 (permalink)  
Antiguo 08/05/2013, 16:09
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Información problema con IF en PHP

hola buen dia tengo un inconveniente con un if anidado que no he podido darle solucion, mi problematica es que realice una consulta donde me trae unos valores pero los valores me los trae de tablas diferentes explico, tengo t1 , t2, t3 etc y cada tabla tiene campo1, campo2 , etc hago busqueda por campo1 y me trae los datos de ese registro ya sea si existe de t1, t2, t3, listo hay bien pero cuando realizo la impresion el echo me genera los demas formatos con los campos vacios mas el formato con los campos que si necesito, por ello realizo un if asi:


Código PHP:
Ver original
  1. if ($buscar==placaGIR)
  2.     {
  3.      echo"
  4.      <table border=\"1\" width=\"55%\" height=\"1\" align=\"center\" cellpadding=\"1\" cellspacing=\"1\" class=\"margen\" font face=\"verdana size=1\">
  5.             <tr>
  6.                <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>Tabla 1</b></p></td><tr>
  7.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>Placa:</b>".$fila['placaG']."</p></td><tr>
  8.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>No. Motor:</b>".$fila['motor']."</p></td><tr>
  9.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>No. Chasis:</b>".$fila['chasis']."</p></td><tr>
  10.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>Clase:</b>".$fila['clase']."</p></td><tr>
  11.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>Modelo:</b>".$fila['modelo']."</p></td><tr>
  12.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>Marca:</b>".$fila['marca']."</p></td><tr>
  13.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>Color:</b>".$fila['color']."</p></td><tr>
  14.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>Nombre:</b>".$fila['nombre']."</p></td><tr>
  15.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>primer Apellido:</b>".$fila['pr_apellido']."</p></td><tr>
  16.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>Segundo Apellido:</b>".$fila['sg_apellido']."</p></td><tr>
  17.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Cedula:</b>".$fila['cedulaG']."</p></td><tr>
  18.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>Direccion:</b>".$fila['direccion']."</p></td><tr>
  19.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoc\><p align=\left\"<b>Telefono:</b>".$fila['telefono']."</p></td><tr>
  20.                  --------------------------------------------------------------------------------<tr>";            
  21.                  }
  22.         else{
  23.          if ($buscar==placaB)
  24.         {
  25.         echo"  
  26.                <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>tabla2</b></p></td><tr>
  27.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Placa:</b>".$fila['placaBUC']."</p></td><tr>
  28.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Cedula:</b>".$fila['cedulaB']."</p></td><tr>
  29.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Nombre:</b>".$fila['pernom']."</p></td><tr>
  30.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Direccion:</b>".$fila['perdir']."</p></td><tr>
  31.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Telefono:</b>".$fila['pertel']."</p></td><tr>
  32.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Ciudad:</b>".$fila['pernumn']."</p></td><tr>
  33.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Tipo Servicio:</b>".$fila['tipsern']."</p></td><tr>
  34.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Clase:</b>".$fila['clanom']."</p></td><tr>
  35.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Marca:</b>".$fila['marnom']."</p></td><tr>
  36.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Vehiculo Modelo:</b>".$fila['vehmod']."</p></td><tr>
  37.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>Color:</b>".$fila['color1']."</p></td><tr>
  38.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>No. Motor:</b>".$fila['nummot']."</p></td><tr>
  39.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenidoa\><p align=\left\"<b>No. Chasis:</b>".$fila['numcha']."</p></td><tr>
  40.                  -------------------------------------------------------------------------------<tr>";
  41.          }}
entonces si me encuentra el dato en la t1 entre y me imprima esa sola tabla, si los encontro el la t2 igual entre al echo e imprima, bueno este es mi problema no he podido hacer este If que me funcione bien.
__________________
edwinarley
  #2 (permalink)  
Antiguo 08/05/2013, 17:11
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 10 años, 11 meses
Puntos: 1
Respuesta: problema con IF en PHP

Mire unos detalles que a mi parecer son errores y posiblemente ahí este el error, la etiqueta <table> junto con sus atributos debería quedar al principio y fuera de los condicionales if. Si no se cumple la primera condición ya no se imprime esta etiqueta y a veces los navegadores imprimen las tablas aunque falten etiquetas y de manera incorrecta.

Noto también que te faltan las etiquetas de cierre </tr> y no veo la etiqueta </table >. En general no está muy bien organizado el formato de tu tabla.

Tambien podrías hacer en lugar de un
If () {}
Else{if() {}}

Sería más lógico un
if() {}
elseif() {}

Para no tener condicionales anidados o un swhich case...
  #3 (permalink)  
Antiguo 08/05/2013, 17:57
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Información Respuesta: problema con IF en PHP

disculpen si no se entiende bien el codigo pero coloque solo la parte que no me esta haciendo nada, y cierto no me habia fijado que no he cerrado la tabla, pues son 8 tablas y el codigo es dispendioso, lo corregire y realisare el cambio de else if por el elseif, cualquier cosa comentare, a lo mejor sea solo por el cierre de la tabla puede ser. gracias
__________________
edwinarley
  #4 (permalink)  
Antiguo 09/05/2013, 06:10
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Información Respuesta: problema con IF en PHP

hola buen dia no bueno realice cambios y nada, no se que este haciendo mal, estoy haciendolo asi
despues de realizar la consulta en SQL y encontrar lo que necesito entonces ago esto para que segun sea el dato me imprima la etiqueta o el echo

Código PHP:
Ver original
  1. if (placaG==$buscar)
  2. { echo //....aqui imprime la tlaba segun valores que me trae placaG
  3. }
  4. elseif (placaB==$buscar)
  5. {echo //...
  6. }
  7. elseif (placaP=$buscar)
  8. {echo //...
  9. }
  10. elseif (placaF=$buscar)
  11. {echo //...
  12. }
  13. else (placaBA=$buscar)
  14. {echo//...
  15. }

oh deveria realizar un swich CASE pero no se, agradezco aportes al respecto
__________________
edwinarley
  #5 (permalink)  
Antiguo 09/05/2013, 06:17
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años
Puntos: 3
Respuesta: problema con IF en PHP

Hola,

los switch se realizan de la siguiente forma:
Código PHP:
Ver original
  1. switch ($buscar){
  2.  
  3.         case 'placaG':
  4.              echo LATABLA1;
  5.         break;
  6.  
  7.         case 'placaB'
  8.              echo LATABLA2;
  9.         break;
  10.        
  11.         default:
  12.  
  13. }

Suerte!
  #6 (permalink)  
Antiguo 09/05/2013, 06:28
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Información Respuesta: problema con IF en PHP

gracias portaleta estoy en eso, pero realizo el swich y me sale el mensaje del contador que si encuentra registro pero no los muestra osea no imprime la etiqueta segun sea la busqueda lo he realizado asi

Código PHP:
Ver original
  1. switch($buscar)
  2.     {
  3.      case 'placaG':
  4.      echo" IMPRIMO LA TABLA CON LOS DATOS DE LA PLACAG"
  5.                 break;
  6.      
  7.                 case 'placaB':
  8.                 echo" IMPRIMO LA TABLA CON LOS DATOS DE LA PLACAB"
  9.                 break;
  10. .
  11. .
  12. .
  13. .
pero nada no muestra los datos, y como digo si me muesta que encuentra un registro pero no me muestra nada.
__________________
edwinarley
  #7 (permalink)  
Antiguo 09/05/2013, 06:38
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años
Puntos: 3
Respuesta: problema con IF en PHP

¿Puedes poner la función que contiene la consulta a la BD?
  #8 (permalink)  
Antiguo 09/05/2013, 06:51
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Información Respuesta: problema con IF en PHP

ok es una consulta algo grande con UNION esta es:

Código PHP:
Ver original
  1. "SELECT  placaG, motor, chasis, clase, modelo, marca, color, nombre, pr_apellido,
  2.        sg_apellido, cedulaG, direccion, telefono,NULL campo14, NULL campo15,
  3.        NULL campo16, NULL campo17, NULL campo18, NULL campo19, NULL campo20      
  4.  
  5. FROM transg WHERE placaG LIKE '%$buscar%'
  6.        UNION
  7. SELECT  placaB, cedulaBUC, pernom, perdir, pertel, pernumn, tipsern, clanom,    marnom, vehmod, color1, nummot, numcha, NULL campo14, NULL campo15, NULL campo16,NULL campo17, NULL campo18, NULL campo19, NULL campo20
  8.  
  9. FROM  transb WHERE placaB LIKE '%$buscar%'
  10.        UNION
  11. SELECT placaBR, vehmarca, nombremarca, vehmodel, vehcodclase, nombreclase, cedulaBR, nombre, direccion, telefono, ciudad, empmnit, tipo, empnombr, NULL campo15,
  12.        NULL campo16, NULL campo17, NULL campo18, NULL campo19, NULL campo20
  13.  
  14. FROM transba WHERE placaBR LIKE '%$buscar%'      
  15.        UNION
  16.        SELECT placaFL, motor, chasis, serie, clase, modelo, marca, linea, tipo, servicio,
  17.        color, carroceria, prapellido, sgapellido, nombre, tipodoc, cedulaFL, direccion,
  18.        ciudad, telefono FROM transf WHERE placaFL LIKE '%$buscar%'      
  19.        UNION
  20.        SELECT placaPIE, cedulaPIE, apellido1, apellido2, nombre1, nombre2, direccion,
  21.        telefono, NULL campo9, NULL campo10, NULL campo11, NULL campo12,
  22.      NULL campo13, NULL campo14, NULL campo15, NULL campo16, NULL campo17,
  23.      NULL campo18, NULL campo19, NULL campo20
  24.  
  25. FROM transp WHERE placaPIE LIKE '%$buscar%'";

aqui en la consulta cuando ya me encontro en la variable $buscar me queda el dato
luego hago el case para que segun sea el resultado me imprima ya que son datos totalmente diferentes pero hay es donde no los imprime.
__________________
edwinarley
  #9 (permalink)  
Antiguo 09/05/2013, 07:07
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años
Puntos: 3
Respuesta: problema con IF en PHP

Mi pregunta es qué haces con esa consulta. Cómo le dices que te saque las filas y te las vaya insertando en una tabla. Con mysql_fetch_array ?? Te pongo un ejemplo

Código PHP:
Ver original
  1. public function obtener_fila() {
  2.       return @mysql_fetch_array($this->result);
  3. }

Código PHP:
Ver original
  1. $query="SELECT c1, c2 from t1"
  2. $consulta = new Consulta($query);
  3.             if($fila = $consulta->obtener_fila()) {
  4.                 $this->C1       = $fila['C1'];
  5.                 $this->C2       = $fila['C2'];
  6. }
;
  #10 (permalink)  
Antiguo 09/05/2013, 07:16
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Información Respuesta: problema con IF en PHP

con la consulta realizo una busqueda en varias tablas por un parametro en mi caso placa, como son de diferentes territorios por ello necesito imprimir de donde es la placa o variable que busco, luego de que realizo la consulta va el case que le muestro pero no me imprime. por ejemplo si en el formulario de busqueda le pongo RETO258 me busca y me la encuentra, bien hay, pero me la encuentra en la tabla caray y no en sirvedo, lilio, manta o bermuda, me entiende... hay es donde realizo el case para que entonces me imprima los datos de la placa que esta en caray. bueno ojala me alla entendido lo que busco.
__________________
edwinarley
  #11 (permalink)  
Antiguo 09/05/2013, 07:23
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Información Respuesta: problema con IF en PHP

se me olvido claro que saco las filas como me dice asi

Código PHP:
Ver original
  1. mysql_select_db("$bdName", $con);
  2. $result = mysql_query($sql, $con);
  3. // Tomamos el total de los resultados
  4. $total = mysql_num_rows($result);
  5. // Imprimimos los resultados
  6.  if ($total>0) {
  7. echo "<tr><td><b>Resultados Consulta General </b></td></tr> ";
  8. echo "<td colspan=\"$numcolumna\">Hay $total elementos</td>";
  9.          $i = 1;
  10.     while($fila = mysql_fetch_array($result)){
  11.       $resto = ($i % $numcolumna);
  12.       if($resto == 1)
  13.        { /*si es el primer elemento creamos una nueva fila*/
  14.         }
  15.        
  16. switch($buscar)
  17.     {
  18.     case 'placaG': //aqui ya el case
__________________
edwinarley
  #12 (permalink)  
Antiguo 23/05/2013, 13:32
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 12 años
Puntos: 0
Información Respuesta: problema con IF en PHP

bueno aun no he tenido solucion al respecto del if anidado, no se porque no me funciona y me imprime lo que necesito, agradezco quien me pueda colaborar al respecto
__________________
edwinarley

Etiquetas: registro, 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 22:38.