Foros del Web » Programando para Internet » PHP »

Busqueda mandarla a exel

Estas en el tema de Busqueda mandarla a exel en el foro de PHP en Foros del Web. Bueno pues veran amigos tengo una duda en como mandar una busqueda a exel. Tengo mi busqueda a continuacion pongo mi codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 05/09/2011, 12:10
 
Fecha de Ingreso: agosto-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Busqueda mandarla a exel

Bueno pues veran amigos tengo una duda en como mandar una busqueda a exel.
Tengo mi busqueda a continuacion pongo mi codigo


Código PHP:
Ver original
  1. <html>
  2. <head>
  3.   <title>Resultados de la Búsqueda</title>
  4. </head>
  5. <body>
  6. <h1>Resultados de la Búsqueda</h1>
  7. <?php
  8.  
  9.  
  10.  
  11. function filled_out($form_vars)
  12. {
  13. // Comprueba que vada variable tenga un valor
  14. // foreah es un bucle que se utiliza para interar en un array que no este vacio. En cada ciclo, el valor de el elemento actual // es asignado a $value y el puntero interno del array es avanzado en uno.
  15.  
  16. foreach ($form_vars as $key => $value)
  17.   {
  18.      if (!isset($key) || ($value == ""))
  19.         return false;
  20.   }
  21.   return true;
  22. }
  23.  
  24. if(!filled_out($_POST) || !isset($_POST['tipobusqueda'],$_POST['terminobusqueda']))
  25. {
  26.     //la parte del isset es por si alguien llega a resultados.php que también le muestre el error
  27.     echo "Usted no ha introducido valores en la busqueda";
  28.    exit;
  29. }
  30.  
  31. $terminobusqueda = $_POST['terminobusqueda'];
  32. $tipobusqueda = $_POST['tipobusqueda'];
  33.  
  34.   trim ($terminobusqueda);
  35.   if (!$tipobusqueda || !$terminobusqueda)
  36.   {
  37.      echo "No has introducido los detalles de la busqueda.  Por favor vuelve e inténtalo de nuevo.";
  38.      exit;
  39.   }
  40.  
  41.   $tipobusqueda= addslashes($tipobusqueda);
  42.   $terminobusqueda = addslashes($terminobusqueda);
  43.  
  44.   //@ $db = mysql_pconnect("localhost", "root", "");
  45.  
  46.   //if (!$db)
  47.   //{
  48.      //echo "Error: No se ha podido conectar a la base de datos.  Por favor, prueba de nuevo más tarde.";
  49.      //exit;
  50.   //}
  51.  
  52.  // mysql_select_db("bd");
  53.     include("Conexion.php");
  54.     $conexion=Conectarse();
  55.  
  56.   $consulta = "select * from datos where ".$tipobusqueda." like '%".$terminobusqueda."%'";
  57.   $resultado = mysql_query($consulta) or die( "Error en $consulta: " . mysql_error() );;
  58.  
  59.   if ( $tipobusqueda == 'combobox' ){
  60.  
  61.   $num_resultados = mysql_num_rows($resultado);
  62.  
  63.  
  64.  
  65.   echo "<p><strong>Número De Resultados Encontrados: ".$num_resultados."</p></strong>";
  66.  
  67.   for ($i=0; $i <$num_resultados; $i++)
  68.   {
  69.      $row = mysql_fetch_array($resultado);
  70.      echo "<p><strong>".($i+1).".Nombre Empresa: ";
  71.      echo stripslashes($row["nombre"]);
  72.      echo "</strong><br>Direccion: ";
  73.      echo stripslashes($row["direccion"]);
  74.      echo "</strong><br>Municipio: ";
  75.      echo stripslashes($row["municipio"]);
  76.      echo "</strong><br>Estado: ";
  77.      echo stripslashes($row["estado"]);
  78.      echo "<br>Codigo Postal: ";
  79.      echo stripslashes($row["cp"]);
  80.      echo "<br>Pagina web: ";
  81.      echo stripslashes($row["web"]);
  82.      echo "</p>";
  83.     ?>
  84.  
  85.       <form action="pagina2.php"
  86.   method="post">
  87.   <input type="checkbox" name="check1">Nombre
  88.   <br>
  89.   <input type="checkbox" name="check2">Pag. Web
  90.   <br>
  91.   <input type="submit" name="operar">
  92.   </form>
  93. <?php
  94.  
  95. /**********dibujo la tabla **********************
  96. echo "
  97. <table border=3 cellpadding=2>
  98. <center> \n";
  99. echo "<th colspan=9> </th>\n";
  100. echo "
  101. <tr>
  102. \n";
  103. echo "<th>Asignatura</th>\n";
  104. echo "<th>$nombre</th>\n";
  105. echo "<th>$estado</th>\n";**///nombre asignatura
  106.   }
  107.   }
  108.   if( $tipobusqueda == 'estado' )
  109.   {
  110.       $num_resultados = mysql_num_rows($resultado);
  111.      
  112.   echo "<p>Número De Resultados Encontrados: ".$num_resultados."</p>";
  113.  
  114.   for ($i=0; $i <$num_resultados; $i++)
  115.   {
  116.      $row = mysql_fetch_array($resultado);
  117.      echo "<p><strong>".($i+1).".Estado: ";
  118.      echo stripslashes($row["estado"]);
  119.      echo "</strong><br>Nombre Empresa: ";
  120.      echo stripslashes($row["nombre"]);
  121.      echo "<br>Direccion: ";
  122.       echo stripslashes($row["direccion"]);
  123.      echo "</strong><br>Municipio: ";
  124.      echo stripslashes($row["municipio"]);
  125.      echo "</strong><br>Codigo Postal: ";
  126.      echo stripslashes($row["cp"]);
  127.      echo "<br>Pagina web: ";
  128.      echo stripslashes($row["web"]);
  129.      echo "</p>";
  130.  
  131.   }
  132.   }
  133. ?>
  134.  
  135.  
  136. </body>
  137. </html>

Todo funciona bien aqui ahora lo que yo quiero es que al hacer la busqueda y
me arroje los datos de por ejemplo nombre, direccion, telefono, web, etc.
Esos datos los voy a exportar a exel pero voy a tener la opcion de los checkbox con los q voy a seleccionar los datos q quiero que me exporte ya sea nombre, direccion, web, telefono, Ya sean todos los datos o alguno en especial ahora biene mi pregunta como lo hago como hago q solo los datos de la busqueda me los mande a exel.

Hay en mi codigo tengo el form con los checkbox y como manda a llamar a otro archivo llamado pagina2.php donde tengo lo de la exportacion a qui lo muestro

Código PHP:
Ver original
  1. <?php
  2.  
  3. include("Conexion.php");
  4.     $conexion=Conectarse();
  5.    
  6. //$id=$_POST["id"];
  7. $check1 = $_POST['check1'];   //nombre de la asignatura
  8.  $check2 = $_POST['check2'];
  9. if ( $check1 == "on" && $check2 == "on"){
  10.  
  11. $resul=mysql_query("SELECT nombre,web FROM datos ");
  12. //$row=mysql_fetch_array($resul) or die( "Error en $consulta: " . mysql_error() );
  13.  
  14.  $num_resultados = mysql_num_rows($resul);
  15.  
  16.  
  17.  
  18.   echo "<p><strong>cNúmero De Resultados Encontrados: ".$num_resultados."</p></strong>";
  19. //$nombre=$row['nombre'];
  20. //$web=$row['web']
  21.  
  22. header('Content-type: application/vnd.ms-excel');
  23. header("Content-Disposition: attachment; filename=Informe2.xls");
  24. header("Pragma: no-cache");
  25. header("Expires: 0");
  26.  
  27. echo "
  28. <table border=3 cellpadding=2>
  29. <center> \n";
  30. echo "<th colspan=9> </th>\n";
  31. echo "
  32. <tr>
  33. \n";
  34. echo "<th>Asignatura</th>\n";
  35. //echo "<th>$cod_asignatura</th>\n";
  36. //echo "<th>$web</th>\n";///nombre asignatura
  37. for ($i=0; $i <$num_resultados; $i++)
  38.   {
  39.      $row = mysql_fetch_array($resul);
  40.      echo "<p><th><strong>".($i+1).".Nombre Empresa: </th>\n";
  41. echo "<p><th>".stripslashes ($row["nombre"])."</th></p>\n";
  42. echo "<p><th>".stripslashes ($row["web"])."</th></p>\n";
  43.  
  44.   }
  45. }
  46. ?>

Esto solo es para ver si si expòrtaba los datos a exel lo cual si lo hace pero no se como hacer q este me muestre los datos pero solo de mi busqueda q antes mencione

Espero a ver dadome a entender ojala me puedan ayudar
  #2 (permalink)  
Antiguo 05/09/2011, 12:27
Avatar de DrFaust  
Fecha de Ingreso: septiembre-2011
Ubicación: Buenos Aires
Mensajes: 308
Antigüedad: 13 años, 3 meses
Puntos: 87
Respuesta: Busqueda mandarla a exel

Tu pregunta no se entiende muy bien. Por lo que pude ver, querés exportar una búsqueda a un archivo de Excel, y permitirle al usuario elegir qué columnas mostrar (teléfono, web, etcétera).

Para hacer esto, armá de la siguiente manera los checkboxes que permiten elegir qué columnas mostrar:

<input type="checkbox" name="datos[]" value="nombre" />
<input type="checkbox" name="datos[]" value="telefono" />
<input type="checkbox" name="datos[]" value="web" />

A la hora de armar la petición SQL podés averiguar qué checkboxes marcó el usuario de la siguiente manera:

$peticion = implode(", ", $_POST["datos"]);

Si el usuario marcó nombre y web, ese código genera una cadena que dice "nombre, web".

Entonces la petición SQL quedaría así:

SELECT $peticion WHERE $tipobusqueda LIKE $terminobusqueda

Tan simple como eso.

Vas a tener que guardar las variables $tipobusqueda y $terminobusqueda como campos hidden en el formulario de la página de resultados, para poder volver a pasárselos a PHP a la hora de exportar los datos a Excel, así el script sabe qué datos exportar.
  #3 (permalink)  
Antiguo 05/09/2011, 12:42
 
Fecha de Ingreso: agosto-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Busqueda mandarla a exel

Algo asi pero el usuario va a elegir q desea exportar a exel, La busqueda va a mostra todos los datos ejemplo asi

Resultados de la Búsqueda

Número De Resultados Encontrados: 1

1.Nombre Empresa: Ranitas
Direccion: pino no. 2
Municipio: pachuca
Estado: pachuca
Codigo Postal: 55980
Pagina web: www.ranitas.com

Entonces mi idea era q ya q mostro todos los resutados de la busqueda el usuario va a decidir q campos desea exportar mediante chekboxes en si basicamente serian los campos de aqui abajo los q interesarian exportar

Ejemplo

Nombre
direccion
Pag. Web
Telefono

Ya que aya marcado los campos ya sea uno, varios o todos ahora si al darle al boton exportar me mande estos datos a exel y eso seria todo.
  #4 (permalink)  
Antiguo 05/09/2011, 12:50
Avatar de DrFaust  
Fecha de Ingreso: septiembre-2011
Ubicación: Buenos Aires
Mensajes: 308
Antigüedad: 13 años, 3 meses
Puntos: 87
Respuesta: Busqueda mandarla a exel

Correcto; eso fue lo que entendí, y lo que elaboré en mi post.

Etiquetas: chekbox, exel, php+archivos, busquedas
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 06:00.