Foros del Web » Programando para Internet » PHP »

Como hacer un case en php y organizar consulta para mostar

Estas en el tema de Como hacer un case en php y organizar consulta para mostar en el foro de PHP en Foros del Web. hola buen dia tengo un problema que aun no le he dado solucion, tengo una consulta en SQL con UNION, pues imaginaran es una consulta ...
  #1 (permalink)  
Antiguo 24/06/2013, 14:57
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Como hacer un case en php y organizar consulta para mostar

hola buen dia tengo un problema que aun no le he dado solucion, tengo una consulta en SQL con UNION, pues imaginaran es una consulta a varias tablas y asi es.
mi problematica es que no he podido mostrar bien la informacion y ademas que sea con un CASE o SWITCH, pues al realizar la consulta en las 5 tablas por ejemplo me encuentra el dato en la tabla 2 y traigo todos los datos que necesito de esa tabla, pero como hago para que me muestre solo esa tabla con los datos que necesito con el switch. agradezco aportes este el codigo que tengo por ahora.

Código PHP:
Ver original
  1. if ($_POST['buscador'])
  2. {
  3. // Tomamos el valor ingresado
  4. $buscar = $_POST['palabra'];
  5. // Si está vacío, lo informamos, sino realizamos la búsqueda
  6. if(empty($buscar))
  7. {
  8. echo "No se ha ingresado una cadena a buscar";
  9. }else{
  10. // Conexión a la base de datos y seleccion de registros
  11. $con = mysql_connect($bdServerName, $bdServerUser, $bdServerPassword);
  12. $numcolumna = 2;
  13. $sql = "// aqui realizo la consulta con UNION a las 5 tablas
  14.          ";
  15.  
  16. mysql_select_db("$bdName", $con);
  17. $result = mysql_query($sql, $con);
  18. // Tomamos el total de los resultados
  19. $total = mysql_num_rows($result);
  20. // Imprimimos los resultados
  21.  if ($total>0) {
  22. echo "<tr><td><b>Resultados Consulta General Transitos</b></td></tr> ";
  23. echo "<td colspan=\"$numcolumna\">Hay $total elementos</td>";
  24.          $i = 1;
  25.     while($fila = mysql_fetch_array($result)){
  26.       $resto = ($i % $numcolumna);
  27.       if($resto == 1){ /*si es el primer elemento creamos una nueva fila*/
  28.     }
  29.      echo "// aqui en adelante imprimo los resultados pero igual no se donde o como hacer el SWITCH
  30.                        ";
  31.  
  32.    /*mostramos el valor del campo especificado*/
  33.     if($resto == 0){
  34.       /*cerramos la fila*/
  35.      echo "</tr>";
  36.    }
  37.    $j++;
  38.  }
  39.  if($resto != 0){
  40.   /*Si en la &uacute;ltima fila sobran columnas, creamos celdas vac&iacute;as*/
  41.    for ($j = 0; $j < ($numcolumna - $resto); $j++){
  42.    echo "<td></td>";
  43.     }
  44. echo "</tr>";
  45.   }
  46. }
  47. else{
  48.   echo "<tr><td>0 elementos encontrados</td></tr>";
  49.   }
  50.  }
  51.  }
__________________
edwinarley

Última edición por edwinarley; 24/06/2013 a las 15:02
  #2 (permalink)  
Antiguo 25/06/2013, 00:03
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 9 años, 8 meses
Puntos: 331
Respuesta: Como hacer un case en php y organizar consulta para mostar

COnsulta el foro MySQL.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 25/06/2013, 08:26
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: Como hacer un case en php y organizar consulta para mostar

hola no entiendo por que Mysql, ?? si es organizacion de la informacion para mostarla pues la consulta en mysql ya esta lista....lo que pasa es que no la puse.
__________________
edwinarley
  #4 (permalink)  
Antiguo 25/06/2013, 08:30
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 11 años, 9 meses
Puntos: 15
Respuesta: Como hacer un case en php y organizar consulta para mostar

a ver si entendí lo que quiere hacer es dividir en varios vectores la información resultante de la consulta que hizo con el unión, según x llave que especifica si es tabla 1 o tabla 2 o tabla x?
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #5 (permalink)  
Antiguo 25/06/2013, 08:46
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: Como hacer un case en php y organizar consulta para mostar

haber explico con un ejemplo, ingreso el dato el un formulario el dato es BCE84A cuyo dato corresponde a la tabla 4 pero tengo 5 tablas, como esta en la tabla 4 necesito que me traiga los datos nombre, cedula, modelo, placa, No. chasis, etc, listo hasta hay, entonces necesito un switch que me direccione para la tabla que tiene los datos ya que todos los campos son diferentes de todas las tablas.
tengo un codigo que me muestra los datos pero no me los ubica donde son respectivamente ese es mi problema.
__________________
edwinarley
  #6 (permalink)  
Antiguo 25/06/2013, 08:49
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: Como hacer un case en php y organizar consulta para mostar

huy hombre yo tambien soy de bucaramanga no me habia fijado. bueno ojala me de una idea para dar una solucion a lo mio
__________________
edwinarley
  #7 (permalink)  
Antiguo 25/06/2013, 08:51
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 11 años, 9 meses
Puntos: 15
Respuesta: Como hacer un case en php y organizar consulta para mostar

Quede aun mas perdido, porque hasta donde se, los unión deben tener la misma cantidad de campos y estos campos deben ser del mismo tipo en cada posición, entonces no habéis hecho un UNION sql, quizás unos left join, no se, si de pronto pone la consulta podría ayudar mas.
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #8 (permalink)  
Antiguo 25/06/2013, 09:07
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: Como hacer un case en php y organizar consulta para mostar

es un union y si deben tener la misma cantidad de campos pero para organizar solo pongo NULL campo N o el que corresponda
__________________
edwinarley
  #9 (permalink)  
Antiguo 25/06/2013, 09:10
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: Como hacer un case en php y organizar consulta para mostar

esta es parte de la consulta

SELECT placaGIR, motorGIR, chasisGIR, claseGIR, modeloGIR, marcaGIR, colorGIR, nombreGIR, pr_apellido,
sg_apellido, cedulaGIR, direccionGIR, telefonoGIR,NULL campo14, NULL campo15,
NULL campo16, NULL campo17, NULL campo18, NULL campo19, NULL campo20
FROM tran1 WHERE placaGIR LIKE '%$buscar%'
UNION
SELECT placaBUC, 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
FROM trans2 WHERE placaBUC LIKE '%$buscar%'
__________________
edwinarley
  #10 (permalink)  
Antiguo 25/06/2013, 09:28
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 11 años, 9 meses
Puntos: 15
Respuesta: Como hacer un case en php y organizar consulta para mostar

Espero haber entendido y espero os sirva

Código PHP:
Ver original
  1. <?php
  2. if ($_POST['buscador']) {
  3.     // Tomamos el valor ingresado
  4.     $buscar         = $_POST['palabra'];
  5.     // Si está vacío, lo informamos, sino realizamos la búsqueda
  6.     if(empty($buscar)) {
  7.         echo "No se ha ingresado una cadena a buscar";
  8.     } else {
  9.         // Conexión a la base de datos y seleccion de registros
  10.         $con            = mysql_connect($bdServerName, $bdServerUser, $bdServerPassword);
  11.         $numcolumna     = 2;
  12.         $sql            = "// aqui realizo la consulta con UNION a las 5 tablas";
  13.  
  14.         mysql_select_db("$bdName", $con);
  15.         $result     = mysql_query($sql, $con);
  16.         // Tomamos el total de los resultados
  17.         $total      = mysql_num_rows($result);
  18.         // Imprimimos los resultados
  19.         if ($total>0) {
  20.             echo "<tr><td><b>Resultados Consulta General Transitos</b></td></tr> ";
  21.             echo "<tr><td colspan=\"$numcolumna\">Hay $total elementos</td></tr>";
  22.             $i          = 1;
  23.             $actual     = NULL;
  24.             while($fila = mysql_fetch_array($result)){
  25.                 //Aqui hay algo que no entiendo muy bien
  26.                 if($actual==NULL || $actual!=$fila['numero_tabla']) {
  27.                     $actual     = $fila['numero_tabla'];
  28.                     switch ($actual) {
  29.                         case 1: {
  30.                             echo '<tr><td>Nom Columna 1</td><td>Nom Columna 2</td></tr>';
  31.                         }break;
  32.                         case 2: {
  33.                             echo '<tr><td>Nom Columna 1</td><td>Nom Columna 2</td></tr>';
  34.                         }break;
  35.                         case 3: {
  36.                             echo '<tr><td>Nom Columna 1</td><td>Nom Columna 2</td></tr>';
  37.                         }break;
  38.                     }
  39.                 }
  40.                 echo '<tr><td>'.$fila[0].'</td><td>'.$fila[1].'</td></tr>';
  41.             }
  42.            
  43.         } else {
  44.             echo "<tr><td>0 elementos encontrados</td></tr>";
  45.         }
  46.     }
  47. }
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #11 (permalink)  
Antiguo 25/06/2013, 09:46
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: Como hacer un case en php y organizar consulta para mostar

bueno voy a mirar, NO entiendo muy bien la parte de actual y en switch

Código PHP:
Ver original
  1. switch ($buscar) {
  2. 29.                        case 1: {
  3. 30.                            echo '<td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>TRANSITO 1</b></p></td><tr>
  4.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>Placa:</b>".$fila['placaBUC']."</p></td><tr>
  5.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>Cedula:</b>".$fila['cedulaBUC']."</p></td><tr>
  6.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>Nombre:</b>".$fila['pernom']."</p></td><tr>
  7.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>Direccion:</b>".$fila['perdir']."</p></td><tr>
  8.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>Telefono:</b>".$fila['pertel']."</p></td><tr>
  9.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>Ciudad:</b>".$fila['pernumn']."</p></td><tr>
  10.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>Tipo Servicio:</b>".$fila['tipsern']."</p></td><tr>
  11.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>Clase:</b>".$fila['clanom']."</p></td><tr>
  12.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>Marca:</b>".$fila['marnom']."</p></td><tr>
  13.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>Vehiculo Modelo:</b>".$fila['vehmod']."</p></td><tr>
  14.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>Color:</b>".$fila['color1']."</p></td><tr>
  15.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>No. Motor:</b>".$fila['nummot']."</p></td><tr>
  16.                 <td width=\"0%\" height=\"1\" valign=\"middle\" class=\"contenido1\><p align=\left\"<b>No. Chasis:</b>".$fila['numcha']."</p></td><tr>';
  17. 31.                        }break;
  18. 32.                        case 2: {
  19. 33.                            echo '<tr><td>Nom Columna 1</td><td>Nom Columna 2</td></tr>';
  20. 34.                        }break;
  21. 35.                        case 3: {
  22. 36.                            echo '<tr><td>Nom Columna 1</td><td>Nom Columna 2</td></tr>';
  23. 37.                        }break;
__________________
edwinarley
  #12 (permalink)  
Antiguo 25/06/2013, 14:50
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: Como hacer un case en php y organizar consulta para mostar

hola miguec04 bueno el codigo funciona un pedazo igual no genera error pero no le he hallado la logica al case

Código PHP:
Ver original
  1. $actual     = NULL;
  2.           while($fila = mysql_fetch_array($result)){
  3.           //Aqui hay algo que no entiendo muy bien
  4.           if($actual==NULL || $actual!=$fila['numero_tabla']) {
  5.           $actual= $fila['numero_tabla'];
  6.           switch ($actual) {

ese codigo no lo entiendo, actual seria $buscar osea el dato que traigo ya encontrado pero numero_tabla seria case N, en realidad estoy enredado con ese pedazo.

agradezco su aporte miguec04
__________________
edwinarley
  #13 (permalink)  
Antiguo 25/06/2013, 14:58
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 11 años, 9 meses
Puntos: 15
Respuesta: Como hacer un case en php y organizar consulta para mostar

Yo vi la tabla de la siguiente forma
<inicio table>
<inicio titulos tabla 1>
<registros tabla1>
<registros tabla1>
<registros tabla1>

<inicio titulos tabla 2>
<registros tabla2>
<registros tabla2>
<registros tabla2>

<inicio titulos tabla 3>
<registros tabla3>
<registros tabla3>
<registros tabla3>
<fin table>

los titulos son por ejemplo lo que me decia para la tabla 1 chasis y color un ejemplo
y abajo sus registros con estos dos campos
para la tabla 2 tipo y estado y abajo los registros para estos dos
el case en este caso seria para deicr case 1: osea en caso que sea los datos de la tabla 1, se muestra estos campos case 2: en caso que sea la tabla 2 estos datos y asi sucesivamente
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #14 (permalink)  
Antiguo 25/06/2013, 15:20
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: Como hacer un case en php y organizar consulta para mostar

ya entendi pero no es lo que estoy buscando, entiendo que escojes los datos de las tablas segun la busqueda pero mi caso es diferente explico:
tengo 5 tablas en una base de datos

transito1

placa1
nombre1
cedula1
direccion1
color1, etc.

transito2

placa2
nombre2
cedula2
direccion2
color2, etc.

y asi sucesibamente con las otras tablas transito3, 4 y 5, hasta hay bien pero cuando ingreso el dato a buscar ejemplo:

AAA13C (Lo encuentra en transito3) si es asi necesito que me traiga

placa3
cedula3
nombre3
direccion3
color3
modelo3, etc.

por ello veo que necesito un switch o un if anidado con sus condiciones para que cuando me lo encuentre me lo mande a la parte que le corresponde para que me realice toda la impresion de los datos que necesito, no se si me halla explicado bien, pero eso es lo que quiero que aun nada que lo logro.
__________________
edwinarley
  #15 (permalink)  
Antiguo 25/06/2013, 15:25
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 11 años, 9 meses
Puntos: 15
Respuesta: Como hacer un case en php y organizar consulta para mostar

2. opciones

1. has una consulta para cada tabla, no veo en que optimiza hacer una consulta aninada de 5 tablas,

2. indexa en un vector que el indice sea el numero de la tabla y crea una matriz y listo.
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #16 (permalink)  
Antiguo 26/06/2013, 15:23
 
Fecha de Ingreso: abril-2012
Ubicación: colombia
Mensajes: 62
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: Como hacer un case en php y organizar consulta para mostar

aun no tengo solucion, pero cuando la tenga asi sea en dos años la publicare....
__________________
edwinarley
  #17 (permalink)  
Antiguo 26/06/2013, 15:31
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 11 años, 9 meses
Puntos: 15
Respuesta: Como hacer un case en php y organizar consulta para mostar

Código PHP:
Ver original
  1. if ($_POST['buscador']) {
  2.     // Tomamos el valor ingresado
  3.     $buscar         = $_POST['palabra'];
  4.     // Si está vacío, lo informamos, sino realizamos la búsqueda
  5.     if(empty($buscar)) {
  6.         echo "No se ha ingresado una cadena a buscar";
  7.     } else {
  8.         // Conexión a la base de datos y seleccion de registros
  9.         $con            = mysql_connect($bdServerName, $bdServerUser, $bdServerPassword);
  10.         $numcolumna     = 2;
  11.         $sql            = "// aqui realizo la consulta con UNION a las 5 tablas";
  12.  
  13.         mysql_select_db("$bdName", $con);
  14.         $result     = mysql_query($sql, $con);
  15.         // Tomamos el total de los resultados
  16.         $total      = mysql_num_rows($result);
  17.         $array      = array();
  18.         // Imprimimos los resultados
  19.         if ($total>0) {
  20.             echo "<tr><td><b>Resultados Consulta General Transitos</b></td></tr> ";
  21.             echo "<tr><td colspan=\"$numcolumna\">Hay $total elementos</td></tr>";
  22.             $i          = 1;
  23.             $actual     = NULL;
  24.             while($fila = mysql_fetch_array($result)){
  25.                 $array['N'.$fila['NUMERO_TABLA']][]     = $fila;
  26.             }
  27.             $datosTabla1            = $array['N1'];
  28.             foreach($datosTabla1 as $dt) {
  29.                 echo '<tr><td>Cache: '.$dt['cache'].'</td></tr>';
  30.             }
  31.            
  32.             $datosTabla2            = $array['N2'];
  33.             foreach($datosTabla2 as $dt) {
  34.                 echo '<tr><td>Cache: '.$dt['cache'].'</td></tr>';
  35.             }
  36.         } else {
  37.             echo "<tr><td>0 elementos encontrados</td></tr>";
  38.         }
  39.     }
  40. }

Espero esta si sea la solución.
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #18 (permalink)  
Antiguo 26/06/2013, 15:34
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 11 años, 9 meses
Puntos: 15
Respuesta: Como hacer un case en php y organizar consulta para mostar

Cualquier cosa, escríbame al correo que aparece en el pie de mi firma, para ver si encontramos alguna solución a su problema y me explique un poco mejor, porque no se si nos hemos entendido.
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co

Etiquetas: case, mostar, mysql, organizar, resultados, 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 22:47.