Foros del Web » Programando para Internet » PHP »

problema para generar tabla desde consulta

Estas en el tema de problema para generar tabla desde consulta en el foro de PHP en Foros del Web. hola amigos espero me puedan ayudar , porque no puedo colocar ceros y unos en en las dos ultimas columnas de una tabla este es ...
  #1 (permalink)  
Antiguo 09/03/2013, 09:03
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
problema para generar tabla desde consulta

hola amigos espero me puedan ayudar , porque no puedo colocar ceros y unos en en las dos ultimas columnas de una tabla

este es mi código

<table class="table table-bordered table-hover">
<tr>
<td width="134"><strong>Tipo de Estación </strong></td>

<?
foreach($nv as $field)
{
$cuentaconsultavolcan = $field['count'];
}
?>


<?
$i=1;
foreach($lv as $field)
{
if($i <= $cuentaconsultavolcan) {
?><th><div align="center"><? echo $field['alias']?></div></th>
<?
}
$i++;

}
?>
<th><div align="center">Total TELEM</div></th>
<th><div align="center">Total NO TELEM</div></th>
</tr>
<?
foreach($e2 as $field)
{
if($area != $field['codigoarea']) {
echo '<tr><td colspan=12><div align=center><strong>'.$field['nombrearea'].'</strong></div></td></tr>';
}
$area=$field['codigoarea'];
if($estacion != $field['codigotipoestacion']){
echo '<tr>';
echo '<td>'.$field['nombreestacion'].'</td>';
//echo '<td>s</td>';
//echo '<td>s</td>';

}


echo '<td>';


if($field['cantidad']==NULL){
//echo '&nbsp;';
//echo "<a href='#' class='username' data-pk=''>0</a>";
?>
<div align="center"><a href="#" id="<? echo $field['item']?>" class="edit-address" data-type="address" data-pk="<? echo $field['item']?>"><strong>0</strong></a></div>

<?

}else{
?>
<div align="center"><a href="#" id="<? echo $field['item']?>" class="edit-address" data-type="address" data-pk="<? echo $field['item']?>"><strong><? echo $field['cantidad'] ?></strong></a></div>

<?
}
'</td>';

$estacion=$field['codigotipoestacion'];

}
?>
<td></td>
<tr>
<td width="134">Total</td>
<?
foreach($to as $field)
{
?>
<td><div align="center" style="color:#000000;"><strong><? echo $field['sum']?></strong></div></td>
<?

}

?>
</tr>
</table>
  #2 (permalink)  
Antiguo 09/03/2013, 09:08
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 para generar tabla desde consulta

¿Y que sucede? ¿Da error? ¿Se pintan gatos y patos? ¿Alguna fuerza sobrenatural te lo impide? ¿Algo que tengamos que adivinar sin tener que preguntar?

Yo sólo veo código pero no entiendo nada de lo que dices, explica mejor tu problema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/03/2013, 09:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

pateketrueke gracias por responder , estoy realizando una consulta a una base de datos y necesito imprimirla en una tabla y tengo problemas para imprimir ceros y uno en las dos ultimas columnas no logro imprimirlos
  #4 (permalink)  
Antiguo 09/03/2013, 09:12
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 para generar tabla desde consulta

¿Pero cómo vamos a saber lo que sucede si no das mas información?

¿De verdad no recibes ningún error?

¿Cual es la variable?

¿Ya depuraste su contenido con var_dump() a ver que tiene?

Vamos, te hace falta mas iniciativa, así no vamos a llegar muy lejos.

No estás siendo para nada objetivo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 09/03/2013, 09:17
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

pateketrueke tienes toda la razón, mi situación es la siguiente :

tengo 140 registro los cuales lo imprimo deacuerdo a unos condicionales ahora necesito imprimir 2 columnas mas con ceros y unos.

para las columnas utilizo este codigo

<td width="134"><strong>Tipo de Estación </strong></td>

<?
foreach($nv as $field)
{
$cuentaconsultavolcan = $field['count'];
}
?>


<?
$i=1;
foreach($lv as $field)
{
if($i <= $cuentaconsultavolcan) {
?><th><div align="center"><? echo $field['alias']?></div></th>
<?
}
$i++;

}
?>
</tr>


mi idea es colocar aca las dos columnas que necesito

<th><div align="center">Total TELEM</div></th>
<th><div align="center">Total NO TELEM</div></th>
  #6 (permalink)  
Antiguo 09/03/2013, 09:19
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 para generar tabla desde consulta

No estoy diciendo que no entienda el problema, lo que no se entiende son las causas, y no podemos adivinar si lo único que muestras es código.

Tampoco has respondido ninguna de mis preguntas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 09/03/2013, 09:30
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

creo que es imposible realizar lo que pretendo
  #8 (permalink)  
Antiguo 09/03/2013, 09:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema para generar tabla desde consulta



Bueno, ese es un diagnóstico incorrecto, porque el paciente no responde sobre los síntomas, ni tampoco cuenta lo que hizo...

Partamos de un detalle: No nos estás mostrando codigo, estás poniendo pedazon de código sin orden ni lógica. Lo que debes hacer es:
1) Postar los scipts completos que estás usando.
2) Describir cómo los usa la aplicación.
3) Postear qué mensajes o comportamientos incorrectos notas.
Con la forma que estás describiendo no hay modo de analizar bien el por qué se produce lo que te sucede.

¿Se entiende ahora?

Seamos realistas: con 926 posts en tu haber en FDW, ya deberías saber cómo comunicarte en este sitio...

¿No crees?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 09/03/2013, 10:07
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

gnzsoloyo tienes toda la razon , lo que pasa es que no se como darme a entender lo que necesito http://imageshack.us/f/850/tabla01.jpg/

el foro me ayudado muchismo , los aportes de usuarios avanzados me han ayudado bastante
  #10 (permalink)  
Antiguo 09/03/2013, 10:14
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 para generar tabla desde consulta

Debes aprender a ayudarnos también, ayudarnos, desde luego, a ayudarte.

Con una pizca de voluntad puedes hacer esto, y te sirve tanto a ti como a todo aquel que busca, intenta, pretende o intenta ayudarte.
Código PHP:
<?

// aqui está el problema

$i=1;

// depuro la variable $lv para ver que tiene

var_dump($lv);

// ¿todo en orden? ¿tiene la estructura y datos que necesito para el siguiente paso?

// si no, entonces el problema viene de antes

foreach($lv as $field)
{

// en caso contrario seguimos depurando

var_dump($i$cuentaconsultavolcan);


// ¿que arroja? ¿son los valores esperados para la logica siguiente?
// si no, entonces el problema puede estar aquí

if($i <= $cuentaconsultavolcan) {

// en caso contrario, ¿que sucede aquí? vamos a seguir depurando

var_dump($field);

// ¿todo bien? ¿estructura? ¿datos correctos? ¿nada de errores?

// sería curioso que no funcione así nada mas por que si

?><th><div align="center"><? echo $field['alias']?></div></th>
<?
}
$i++;

}
?>

Y para todo esto, debo decir, ni siquiera necesitas abrir un tema, eso estás obligado a hacerlo siempre para tratar de determinar una causa y obtener mas información al respecto del problema.

Es un hábito que los buenos programadores deben hacer constante y sonante.

¿Ahora entiendes a lo que me he referido en todo el tema?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 09/03/2013, 10:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

pateketrueke tienes toda la razon.

yo estoy armando el th con una consulta y la segunda parte con otra consulta. creo que lo ideal es imprimir la tabla desde una sola consulta http://imageshack.us/f/546/consultas.jpg/.

el problema es la 4 columna , pero como se puede ver se repite cada 7
  #12 (permalink)  
Antiguo 09/03/2013, 14:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema para generar tabla desde consulta

Volviendo sobre uno de tus posts:
Cita:
tengo 140 registro los cuales lo imprimo deacuerdo a unos condicionales ahora necesito imprimir 2 columnas mas con ceros y unos.
1) Si los valores correspondientes a los dos campos adicionales provienen de los mismos registros leídos, ¿por qué no creas esos campos en la misma consulta que devuelve los datos?
2) Si los registros no provienen de una consulta, sino que los creas en otro proceso, ¿por qué no agregas esos campos al array al momento de cargarlo?
3) Si los valores no pueden cargarse al array al momento de cargalo, ¿por qué no incluyes el agregado de esos campos y sus valores al ir recorriendo los registros y luego de poner todas las columnas.
4) SI esos valores no provienen de ese array, ni puedes encadenar esa representación, ¿por qué no incluyes el valor al ir creando la tabla,luego de crear las columnas para el resto de los datos?

A mi entender, hay varias alternativas posibles (la mejor sería que fuesen datos obtenidos por consulta, es más simple).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 09/03/2013, 14:51
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

gnzsoloyo gracias por responder , voy a seguir tu consejo con los siguientes foreach obtengo los datos de dos consultas

Código PHP:
Ver original
  1. foreach($tl as $field)
  2.         {
  3. }
  4.  
  5. foreach($tnl as $field)
  6.         {
  7. }

como hago para colocarla en las dos columnas?
  #14 (permalink)  
Antiguo 09/03/2013, 15:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema para generar tabla desde consulta

Creo que sigues sin entenderme...
Con esos foreach recorres el contenido de los array, pero ¿de dónde salen los contenidos que tienen?
¿Una consulta a base de datos?
¿Un archivo XML?
¿Un archivo de texto?
¿Un WebService?
¿Los carga manualmente el usuario?

Eso lo preguntamos porque es información importante para determinar si conviene modificar la consulta a la base, o la fuente de datos, o si es mejor al crear los arrays y de qué forma.
Sin esa información no sabemos exactamente qué solución plantear, y perder el tiempo en explicaciones de métodos que puedes no poder aplicar, no te ayudará a resolver el problema.

A como yo lo veo, la solución pasa por los datos, y no por la forma de crear las tablas en el formulario, cosa que a mi entender es accesoria al problema, y no el centro de la cuestión.

Dicho en otras palabra: Si esos datos existiesen en el array, con su valor en cero, jamás te habrías enterado de este problema. Ergo, si podemos ponerlos de entrada, el inconveniente desaparece...
Al menos así lo pienso yo. Si alguien tiene otra propuesta...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 09/03/2013, 15:08
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

con los foreach recorro el contenido de los array , y los contenidos sales de dos consultas a base de datos
  #16 (permalink)  
Antiguo 09/03/2013, 15:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema para generar tabla desde consulta

Muestranos entonces la consulta que haces a la base de datos. Y si es más de una, muestranos todas las consultas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 09/03/2013, 15:53
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

estas son mis consultas .

para hacer encabezado de la tabla primero realizo la consulta para saber el numero de volcanes el cual es 7
Código PHP:
Ver original
  1. foreach($nv as $field)

para imprimir los volcanes utilizo
Código PHP:
Ver original
  1. foreach($lv as $field)
http://imageshack.us/f/132/consulta01.jpg/

la consulta para los 140 registros es esta
Código PHP:
Ver original
  1. foreach($e2 as $field)
http://imageshack.us/f/441/consulta02.jpg/


y las dos consultas que requiero poner en las ultimas columnas son , tambien son 140 registros
Código PHP:
Ver original
  1. foreach($tl as $field)
  2.         {
  3. }

http://imageshack.us/f/89/consulta03vx.jpg/


Código PHP:
Ver original
  1. foreach($tnl as $field)
  2.         {
  3. }

http://imageshack.us/f/17/consulta04.jpg/
  #18 (permalink)  
Antiguo 09/03/2013, 16:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema para generar tabla desde consulta

Ninguna de esas es una consulta.
Me estoy refiriendo a las consultas a la base de datos. Ya sabes, a SQL, a la estructura de las tablas.



¿O qué usas para acceder a los datos? ¿Algún framework?
¿Cómo combinas los datos de esas tablas?
¿Nunca usaste una única consulta para obtener los datos para un reporte? ¿Un JOIN de tablas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #19 (permalink)  
Antiguo 09/03/2013, 16:43
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

para hacer encabezado de la tabla primero realizo la consulta para saber el numero de volcanes el cual es 7

Código SQL:
Ver original
  1. CREATE TABLE volcan
  2. (
  3.   codigo CHARACTER VARYING(10) NOT NULL,
  4.   nombre CHARACTER VARYING(30),
  5.   descripcion CHARACTER VARYING(50),
  6.   latitud REAL,
  7.   longitud REAL,
  8.   codigo_observatorio CHARACTER VARYING(8),
  9.   alias CHARACTER VARYING(15),
  10.   CONSTRAINT pk_volcan_codigo PRIMARY KEY (codigo),
  11.   CONSTRAINT fk_volcan_observatorio FOREIGN KEY (codigo_observatorio)
  12.       REFERENCES observatorio (codigo) MATCH SIMPLE
  13.       ON UPDATE NO ACTION ON DELETE NO ACTION
  14. )
  15.  
  16. SELECT * FROM volcan WHERE codigo_observatorio = 'ovsm' ORDER BY nombre
  17. SELECT COUNT(*) FROM volcan WHERE codigo_observatorio = 'ovsm'


la consulta para los 140 registros es esta

Código SQL:
Ver original
  1. SELECT cantidad,item,volcan.codigo AS codigovolcan,volcan.nombre AS nombrevolcan,volcan.alias,codigo_observatorio,tipo_estacion.codigo AS codigotipoestacion,tipo_estacion.nombre AS nombreestacion,area.nombre AS nombrearea,area.codigo AS codigoarea FROM inv_est_instaladas,volcan,tipo_estacion,area WHERE inv_est_instaladas.codigo_volcan = volcan.codigo AND tipo_estacion.codigo = inv_est_instaladas.codigo_tipo_estacion AND tipo_estacion.codigo_area = area.codigo AND volcan.codigo_observatorio = :obsevatorio ORDER BY area.codigo, tipo_estacion.codigo, volcan.codigo

y esta es la estructura de las tablas consultadas

Código SQL:
Ver original
  1. CREATE TABLE inv_est_instaladas
  2. (
  3.   cantidad INTEGER,
  4.   codigo_volcan CHARACTER VARYING(10),
  5.   codigo_tipo_estacion CHARACTER VARYING(8),
  6.   item serial NOT NULL,
  7.   CONSTRAINT pk_inv_est_instaladas PRIMARY KEY (item),
  8.   CONSTRAINT fk_inv_est_instaladas_volcan FOREIGN KEY (codigo_volcan)
  9.       REFERENCES volcan (codigo) MATCH SIMPLE
  10.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  11.   CONSTRAINT fk_inv_estaciones_tipo_estacion FOREIGN KEY (codigo_tipo_estacion)
  12.       REFERENCES tipo_estacion (codigo) MATCH SIMPLE
  13.       ON UPDATE NO ACTION ON DELETE NO ACTION
  14. )
  15.  
  16. CREATE TABLE tipo_estacion
  17. (
  18.   codigo CHARACTER VARYING(15) NOT NULL,
  19.   codigo_area CHARACTER VARYING(15),
  20.   descripcion CHARACTER VARYING(50),
  21.   nombre CHARACTER VARYING(40),
  22.   suma BOOLEAN,
  23.   CONSTRAINT pk_tipo_estacion_codigo PRIMARY KEY (codigo),
  24.   CONSTRAINT fk_tipo_estacion_area FOREIGN KEY (codigo_area)
  25.       REFERENCES area (codigo) MATCH SIMPLE
  26.       ON UPDATE NO ACTION ON DELETE NO ACTION
  27. )
  28.  
  29. CREATE TABLE area
  30. (
  31.   codigo CHARACTER VARYING(15) NOT NULL,
  32.   descripcion CHARACTER VARYING(250),
  33.   nombre CHARACTER VARYING(30),
  34.   CONSTRAINT area_pkey PRIMARY KEY (codigo)
  35. )


y las dos consultas que requiero poner en las ultimas columnas son , tambien son 140 registros

Código SQL:
Ver original
  1. SELECT item,volcan.codigo AS codigovolcan,volcan.nombre AS nombrevolcan,volcan.alias,codigo_observatorio,tipo_estacion.codigo AS codigotipoestacion,tipo_estacion.nombre AS nombreestacion,area.nombre AS nombrearea,area.codigo AS codigoarea
  2. FROM inv_est_instaladas,conectividad_inv_estaciones,volcan,tipo_estacion,area
  3. WHERE inv_est_instaladas.item = conectividad_inv_estaciones.item_inv_est_instaladas AND inv_est_instaladas.codigo_volcan = volcan.codigo AND tipo_estacion.codigo = inv_est_instaladas.codigo_tipo_estacion AND tipo_estacion.codigo_area = area.codigo AND volcan.codigo_observatorio = 'ovsm' AND tipo_estacion.suma = 't' AND conectividad_inv_estaciones.item_conectividad = 1 ORDER BY area.codigo, tipo_estacion.codigo, volcan.codigo
  #20 (permalink)  
Antiguo 09/03/2013, 17:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema para generar tabla desde consulta

¡Ahora sí estamos hablando cosas concretas!

Bueno, supongamos que tomamos la consulta final, y le queremos agregar allí dos columnas al final, que en realidad tendrán datos en cero. Son columnas virtuales, porque no existen en realidad, pero las "fabricamos" para el resultado de la consulta:
Código SQL:
Ver original
  1. SELECT
  2.     item,
  3.     V.codigo codigovolcan,
  4.     V.nombre nombrevolcan,
  5.     V.alias,
  6.     codigo_observatorio,
  7.     TE.codigo codigotipoestacion,
  8.     TE.nombre nombreestacion,
  9.     A.nombre nombrearea,
  10.     A.codigo codigoarea,
  11.     0 TotalTelem,
  12.     0 TotalNoTelem
  13. FROM
  14.     volcan V
  15.     INNER JOIN inv_est_instaladas IEI ON V.codigo = IEI.codigo_volcan
  16.     INNER JOIN conectividad_inv_estaciones CIE ON  IEI.item = CIE.item_inv_est_instaladas
  17.     INNER JOIN tipo_estacion TE ON IEI.codigo_tipo_estacion = TE.codigo
  18.     INNER JOIN area A ON TE.codigo_area =  A.codigo
  19. WHERE
  20.     V.código_observatorio = 'ovsm'
  21.     AND TE.suma = 't'
  22.     AND CIE.item_conectividad = 1
  23. ORDER BY
  24.     A.codigo,
  25.     TE.codigo,
  26.     V.codigo
He aprovechado para corregir un poco el orden de las tablas y agregarle los alias que simplifican la escritura, así como quitares los "AS" que actualmente son obsoletos y no generan nada.
Les he puesto INNER JOIN en lugar de la coma, porque el parser está optimizado para hacerlo mejor al realizar ese filtrado en el FROM y no en el WHERE. Lamentablemente los manuales insisten en usar la coma, que es francamente un desastre de performance llegado el momento de consultas masivas.

Bueno, ese sería el esquema que yo usaría para la consulta. De ese modo la cantidad de columnas de la tabla de datos devuelta coincidiría con la cantidad de columnas a representar en la pantalla.
Incluso se puede llegar más lejos y crear datos sumando valores en esas columnas dentro de la consulta, o bien poner los alias de las columnas que realmente usarán en la salida de datos al usuario, y simplemente recorrer tanto los encabezados como los datos al momento de representarlo.... pero eso te lo dejo a ti...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #21 (permalink)  
Antiguo 09/03/2013, 17:34
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

gnzsoloyo gracias por responder pero en que parte de la tabla coloco el foreach para imprimir ya que en logro imprimir
  #22 (permalink)  
Antiguo 09/03/2013, 18:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema para generar tabla desde consulta



¿En serio estás preguntando eso?



La verdad creo que necesitas un buen curso de programación elemental... Sin pretender ofender, pero es algo demasiado básico.
¿Acaso no estás creando la tabla? Bueno, al tiempo que creas la tabla, pones los valores... no es mucho más que eso.

Mira, simplemente primero recorres el resultado obtenido:

Código PHP:
Ver original
  1. $query = "Acá va la consulta"
  2.  
  3. $result = mysql_query($sql, $db);
  4.  
  5. for($i=0; $i<  mysql_num_fields($result) - 1; $i++)
  6.     {
  7.     // para acceder al nombre, simplemente es: mysql_field_name($result, $i );
  8.     // Aca va lo que sea que quieras hacer
  9.     }

E inmediatamente recorres cada array:

Código PHP:
Ver original
  1. while($row = mysql_fetch_array($result) )
  2.     {
  3.     // Aqui haras con el contenido del array $row lo que quieres
  4.     }

Lo que te estoy poniendo es sólo un método básico, el como lo hagas o cómo lo adaptes a tu caso, eso es una cuestión totalmente tuya. No te voy a dar la solución escrita. Te estoy dando las herramientas para que lo soluciones.
Ahora quiero ver cómo lo armarías tu.
Muéstranos cómo escribirías el código para hacerlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #23 (permalink)  
Antiguo 09/03/2013, 19:06
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

gnzsoloyo gracias por responder , estoy confundido en una cosa

con el foreach recorro el array que contiene los registros (140)
Código PHP:
Ver original
  1. foreach($e2 as $field)
  2.     {
  3. }

en este foreach tengo una condicion e imprimo la fila , pero necesito que imprima dos mas
cambio el foreach?
  #24 (permalink)  
Antiguo 09/03/2013, 19:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema para generar tabla desde consulta

¿Es una broma?
Si estás recorriendo un array, y ese array ya trae ahora dos campos más que antes, porque fueron obtenidos en la misma consulta, ¿en serio necesitas preguntar si tienes que agregar otro foreach?
NO.
Por supuesto que NO.

Si el array es tomado de un result (es decir de un fetch_array()), y lo recorres, devolverá un valor por cada columna de la tabla generada por la consulta... Eso es obvio.
Y esa consulta ya trae los campos que necesitabas... Ergo, ¿agregar qué?

Francamente sigo sin entender cómo es que no lo ves. Parece que te quieres ahogar en un dedal de agua (no digamos en un vaso) a toda costa.

¿Por qué no lo intentas, y luego me dices si resulta?

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #25 (permalink)  
Antiguo 09/03/2013, 19:17
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

es que es ahi donde esta mi problema con ese foreach estoy armando el cuerpo de la tabla ahora necesito aumentar dos columnas mas con otra consulta la cual obtengo con otro foreach

eso posible?
  #26 (permalink)  
Antiguo 09/03/2013, 19:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema para generar tabla desde consulta

Ajá, ¿y de dónde sale lo que recorres? ¿De dónde toma su valor $field?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #27 (permalink)  
Antiguo 09/03/2013, 19:25
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

de esta consulta

Código SQL:
Ver original
  1. SELECT
  2.     item,
  3.     V.codigo codigovolcan,
  4.     V.nombre nombrevolcan,
  5.     V.alias,
  6.     codigo_observatorio,
  7.     TE.codigo codigotipoestacion,
  8.     TE.nombre nombreestacion,
  9.     A.nombre nombrearea,
  10.     A.codigo codigoarea,
  11.     0 TotalTelem,
  12.     0 TotalNoTelem
  13. FROM
  14.     volcan V
  15.     INNER JOIN inv_est_instaladas IEI ON V.codigo = IEI.codigo_volcan
  16.     INNER JOIN conectividad_inv_estaciones CIE ON  IEI.item = CIE.item_inv_est_instaladas
  17.     INNER JOIN tipo_estacion TE ON IEI.codigo_tipo_estacion = TE.codigo
  18.     INNER JOIN area A ON TE.codigo_area =  A.codigo
  19. WHERE
  20.     V.código_observatorio = 'ovsm'
  21.     AND TE.suma = 't'
  22.     AND CIE.item_conectividad = 1
  23. ORDER BY
  24.     A.codigo,
  25.     TE.codigo,
  26.     V.codigo

mira la cosa es esta: es como unir dos tablas(con la primera consulta de 140 registros) se hace la tabla y con la otra consulta de 140 registros para las dos columnas
  #28 (permalink)  
Antiguo 09/03/2013, 19:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema para generar tabla desde consulta

Pues es medio evidente: Modificas las dos consultas para agregar esas dos columnas... De ese modo ambas tendrán la misma cantidad de columnas.

Incluso más, si esas consultas se llamarán siempre una detrás de otra, entonces te recomendaría que uses UNION o UNION ALL y hagas una única consulta que te devuelva todo.

Llamar a la base de datos dos veces para buscar datos que puede devolverte en una sola... es un desperdicio de recursos y tiempo.

Creí que era tan obvio que no hacía falta aclararlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 09/03/2013 a las 19:35
  #29 (permalink)  
Antiguo 09/03/2013, 19:51
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para generar tabla desde consulta

pero a una consulta como esta
Código SQL:
Ver original
  1. SELECT cantidad,item,volcan.codigo AS codigovolcan,volcan.nombre AS nombrevolcan,volcan.alias,codigo_observatorio,tipo_estacion.codigo AS codigotipoestacion,tipo_estacion.nombre AS nombreestacion,area.nombre AS nombrearea,area.codigo AS codigoarea FROM inv_est_instaladas,volcan,tipo_estacion,area WHERE inv_est_instaladas.codigo_volcan = volcan.codigo AND tipo_estacion.codigo = inv_est_instaladas.codigo_tipo_estacion AND tipo_estacion.codigo_area = area.codigo AND volcan.codigo_observatorio = :obsevatorio ORDER BY area.codigo, tipo_estacion.codigo, volcan.codigo

se le puede hacer UNION o UNION ALL DE

Código SQL:
Ver original
  1. SELECT
  2.     item,
  3.     V.codigo codigovolcan,
  4.     V.nombre nombrevolcan,
  5.     V.alias,
  6.     codigo_observatorio,
  7.     TE.codigo codigotipoestacion,
  8.     TE.nombre nombreestacion,
  9.     A.nombre nombrearea,
  10.     A.codigo codigoarea,
  11.     0 TotalTelem,
  12.     0 TotalNoTelem
  13. FROM
  14.     volcan V
  15.     INNER JOIN inv_est_instaladas IEI ON V.codigo = IEI.codigo_volcan
  16.     INNER JOIN conectividad_inv_estaciones CIE ON  IEI.item = CIE.item_inv_est_instaladas
  17.     INNER JOIN tipo_estacion TE ON IEI.codigo_tipo_estacion = TE.codigo
  18.     INNER JOIN area A ON TE.codigo_area =  A.codigo
  19. WHERE
  20.     V.código_observatorio = 'ovsm'
  21.     AND TE.suma = 't'
  22.     AND CIE.item_conectividad = 1
  23. ORDER BY
  24.     A.codigo,
  25.     TE.codigo,
  26.     V.codigo
  #30 (permalink)  
Antiguo 09/03/2013, 20:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema para generar tabla desde consulta

La verdad que sigues ahogándote en un dedal, que ahora se redujo a una gota de agua...
Si ambas consultas son estructuralmente iguales, con la sola diferencia de un campo al inicio de la primera... ¿no te parece que todo se resuelve agregando esa columna en la segunda consulta?
Algo como:
Código SQL:
Ver original
  1. SELECT *
  2. FROM
  3.     (SELECT
  4.         cantidad,
  5.         item,
  6.         VO.codigo codigovolcan,
  7.         VO.nombre nombrevolcan,
  8.         VO.alias,
  9.         codigo_observatorio,
  10.         tipo_estacion.codigo codigotipoestacion,
  11.         tipo_estacion.nombre nombreestacion,
  12.         AR.nombre nombrearea,
  13.         AR.codigo codigoarea,
  14.         0 TotalTelem,
  15.         0 TotalNoTelem
  16.     FROM
  17.         volcan VO
  18.         INNER JOIN inv_est_instaladas INEI ON VO.codigo = INEI.codigo_volcan
  19.         INNER JOIN conectividad_inv_estaciones COIE ON  IEI.item = COIE.item_inv_est_instaladas
  20.         INNER JOIN tipo_estacion TIE ON IEI.codigo_tipo_estacion = TIE.codigo
  21.         INNER JOIN area AR ON TE.codigo_area =  AR.codigo
  22.     WHERE
  23.         VO.codigo_observatorio = :obsevatorio
  24.     ORDER BY AR.codigo, TIE.codigo, VO.codigo) T1
  25. UNION ALL
  26. SELECT *
  27. FROM (
  28.     SELECT
  29.         0 cantidad, -- Aqui pones el valor que quieras, cero (0) o uno (1)
  30.         item,
  31.         V.codigo codigovolcan,
  32.         V.nombre nombrevolcan,
  33.         V.alias,
  34.         codigo_observatorio,
  35.         TE.codigo codigotipoestacion,
  36.         TE.nombre nombreestacion,
  37.         A.nombre nombrearea,
  38.         A.codigo codigoarea,
  39.         0 TotalTelem,
  40.         0 TotalNoTelem
  41.     FROM
  42.         volcan V
  43.         INNER JOIN inv_est_instaladas IEI ON V.codigo = IEI.codigo_volcan
  44.         INNER JOIN conectividad_inv_estaciones CIE ON  IEI.item = CIE.item_inv_est_instaladas
  45.         INNER JOIN tipo_estacion TE ON IEI.codigo_tipo_estacion = TE.codigo
  46.         INNER JOIN area A ON TE.codigo_area =  A.codigo
  47.     WHERE
  48.         V.código_observatorio = 'ovsm'
  49.         AND TE.suma = 't'
  50.         AND CIE.item_conectividad = 1
  51.     ORDER BY A.codigo, TE.codigo, V.codigo) T2
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: 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 01:05.