Foros del Web » Programando para Internet » PHP »

bucle para creacion de tabla

Estas en el tema de bucle para creacion de tabla en el foro de PHP en Foros del Web. Buenas tengo un pequeño problema, estoy creando una tabla que recoge datos de varias tablas, pero no se como hacer para "pintar los datos correctamente". ...
  #1 (permalink)  
Antiguo 23/04/2010, 02:29
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
bucle para creacion de tabla

Buenas tengo un pequeño problema, estoy creando una tabla que recoge datos de varias tablas, pero no se como hacer para "pintar los datos correctamente".
El problema esta cuando uno de lso campos esta vacio, me pinta el resultado siguiente en el del que esta vacio y no se como hacer para que me lo pinte bien, a ver si me pueden ayudar


Código PHP:
$query="select * from meses;";
if(
$resultado=mysql_db_query($nom_base,$query,$link)){
    echo
"<tr>";
    
//pintar meses
    
while ($arr_result=mysql_fetch_array($resultado)){
        
$query='select resultado from resultado_interno where idmes='.$arr_result[0];
        echo
"<td>".$arr_result[1]."</td>";
        if(
$resultado2=mysql_db_query($nom_base,$query,$link)){
            
//pintar resultado
            
while ($arr_result2=mysql_fetch_array($resultado2)){
                echo 
"<td>".$arr_result2[0]."</td>";
            }
            echo
"</tr>";
        }
    }
    

ya se que la forma de pintar los meses no es correcta pero yo solo soy un becario en practicas y me han dicho que lo hiciera asi...

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 23/04/2010, 03:54
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: bucle para creacion de tabla

Primero de todo usa mysql_query() , no mysql_db_query(), eso ya es un poco antiguo creo.

Ademas en tr está mal posicionado ahi, ya que solo se habre un tr y cierras muchos, ya que el cierre esta dentro de un while
  #3 (permalink)  
Antiguo 23/04/2010, 03:57
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: bucle para creacion de tabla

ya lo se pero en la empresa esta trabajan asi... y yo no puedo hacer na, soy un mierdas aqui que va a estar 2 meses les hago el trabajo y no me pagan ni na pero lo tengo que hacer para aprobar xD
  #4 (permalink)  
Antiguo 23/04/2010, 04:06
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: bucle para creacion de tabla

No te desesperes que yo pasé por lo mismo...

Que tu empresa quiere utilizar mysql_db_query() en vez del mysql_query()?? lol
Código PHP:
$query="select * from meses;"
if(
$resultado=mysql_db_query($nom_base,$query,$link)){ 
    
//pintar meses 
    
while ($arr_result=mysql_fetch_array($resultado)){ 
        echo 
'<tr><td>'.$arr_result[1].'</td>'
        
$query='select resultado from resultado_interno where idmes='.$arr_result[0]; 
        if(
$resultado2=mysql_db_query($nom_base,$query,$link)){ 
            
//pintar resultado 
            
while ($arr_result2=mysql_fetch_array($resultado2)){ 
                echo 
'<td>'.$arr_result2[0].'</td>'
            } 
        } 
         echo 
'</tr>'
    } 
     

Prueba con algo asi, he movido los tr, a ve si ase sale mejor
  #5 (permalink)  
Antiguo 23/04/2010, 04:12
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: bucle para creacion de tabla

Si es que realmente no es una empresa de informatica, es la camara de comercio y el informatico de aqui no esta actualizado, aparte de que no es programador pero bueno

Gracias por intentarlo pero me muestra el mismo resultado, he intentado cambiar la segunda consulta para que me pille el de ese codigo pero asi nisiquiera me saca el de la ultima fila rellena
  #6 (permalink)  
Antiguo 23/04/2010, 04:17
 
Fecha de Ingreso: junio-2008
Mensajes: 93
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: bucle para creacion de tabla

Simplente recoge los datos en variables y ya está, es decir:

Código PHP:
$query="select * from meses;";
if(
$resultado=mysql_db_query($nom_base,$query,$link)){
    echo
"<tr>";
    
//pintar meses
    
while ($arr_result=mysql_fetch_array($resultado)){
        list(
'cada valor de la BBDD que saques en una variable') = mysql_fetch_array($resultado);
//A partir de aquí has de cambiar la forma de mostrar los datos, en vez de $arr_result[1] deberas poner $NombreDeVariable
$query='select resultado from resultado_interno where idmes='.$arr_result[0];
        echo
"<td>".$arr_result[1]."</td>";
        if(
$resultado2=mysql_db_query($nom_base,$query,$link)){
            
//pintar resultado
            
while ($arr_result2=mysql_fetch_array($resultado2)){
                echo 
"<td>".$arr_result2[0]."</td>";
            }
            echo
"</tr>";
        }
    }
    

Espero que te sirva
  #7 (permalink)  
Antiguo 23/04/2010, 04:44
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: bucle para creacion de tabla

Nada, asi se me salta el mes de febrero de forma magica y tampoco entiendo el porque.

Empiezo a odiar las tablas xD
  #8 (permalink)  
Antiguo 23/04/2010, 08:47
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Respuesta: bucle para creacion de tabla

No te saldría mejor así???

Código PHP:
Ver original
  1. if( mysql_result( mysql_query("select count(idmes) from meses") , 0 ) > 0 ){
  2.     $query = mysql_query("select * from meses");
  3.  
  4.     if( $arr = mysql_fetch_array($query) ){
  5.          do{
  6.               echo "<tr>";
  7.               echo "<td>$arr[dato1]</td>";
  8.               echo "<td>$arr[dato2]</td>";
  9.               echo "<td>$arr[dato3]</td>";
  10.               echo "<td>etc, etc,</td>";
  11.               echo "</tr>";
  12.  
  13.          } while( $arr = mysql_fetch_array($query) );
  14.     }
  15.  
  16. }

de paso aprovecho de saludarles, soy nuevo como usario registrado, pero llevo cerca de 3 años nutriendome con ustedes..

saludos.

Última edición por dunde; 23/04/2010 a las 08:51 Razón: sorry, seleccioné cita en vez de php
  #9 (permalink)  
Antiguo 26/04/2010, 02:34
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: bucle para creacion de tabla

Ya lo he conseguido aunque se que no e suna opcion muy buena lo pongo aqui por si alguien le puede ayudar

Código PHP:
$query="select * from meses;"
if(
$resultado=mysql_db_query($nom_base,$query,$link)){ 
    
//pintar meses 
    
while ($arr_result=mysql_fetch_array($resultado)){ 
        echo
"<tr>"
        
$query='select resultado from resultado_interno where idmes='.$arr_result[0]." and idrevision=1 and anyo=".$anyo
        echo
"<td>".$arr_result[1]."</td>"
        if(
$resultado2=mysql_db_query($nom_base,$query,$link)){ 
            
//pintar resultado 
            
$sw=false;
            while (
$arr_result2=mysql_fetch_array($resultado2)){ 
                echo 
"<td class='Conresult'>".$arr_result2[0]."</td>"
                
$sw=true;
            }
            if(
$arr_result2=="" && $sw==false){
                echo 
"<td class='Sinresult'>Sin resultado</td>";
            }
        }
        
         
$query='select resultado from resultado_interno where idmes='.$arr_result[0]." and idrevision=2 and anyo=".$anyo;
        if(
$resultado2=mysql_db_query($nom_base,$query,$link)){ 
            
//pintar resultado 
            
$sw=false;
            while (
$arr_result2=mysql_fetch_array($resultado2)){ 
                echo 
"<td class='Conresult'>".$arr_result2[0]."</td>"
                
$sw=true;
            }
            if(
$arr_result2=="" && $sw==false){
                echo 
"<td class='Sinresult'>Sin resultado</td>";
            }
        }
        echo
"</tr>";
    }      

supongo que con un bucle con contador s epueden ir haciendo las consultas, pero como no me pagan, no me van a contratar y lo hacen todo mal en esta empresa s elo dejo asi...

Etiquetas: bucle, tablas
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 13:18.