Foros del Web » Programando para Internet » PHP »

Consulta de tabla en columnas

Estas en el tema de Consulta de tabla en columnas en el foro de PHP en Foros del Web. Sres, quiero hacer una consulta a una base de datos y que me muestre los registros uno por uno y los campos que esten distribuidos ...
  #1 (permalink)  
Antiguo 17/03/2004, 15:06
 
Fecha de Ingreso: enero-2004
Mensajes: 41
Antigüedad: 13 años, 10 meses
Puntos: 0
Consulta de tabla en columnas

Sres, quiero hacer una consulta a una base de datos y que me muestre los registros uno por uno y los campos que esten distribuidos en columnas, tengo este codigo que saque de las faqs, pero solo me despliega el primer campo de los registros:

<?php
include ("conec.php");
$link=conectarse();
$sql="select * from orden where activo='s'";
$res=mysql_query($sql,$link);
echo "<table align=center>";

$columnes = 16; # Número de columnas (variable) Tengo 16 campos
echo "<tr><td colspan=$columnes>$rows Orden de Trabajo </td></tr>";
if (mysql_num_rows($res)==0){echo "<tr><td colspan=$columnes>No hay Ordenes de Trabajo en la BD.</td></tr> ";}

for ($i=1; $row = mysql_fetch_row ($res); $i++) {
$resto = ($i % $columnes); # Número de celda del <tr> en que nos encontramos
if ($resto == 1) {echo "<tr>";} # Si es la primera celda, abrimos <tr>
echo "<td>$row[1]</td>";
if ($resto == 0) {echo "</tr>";} # Si es la última celda, cerramos </tr>
}
if ($resto <> 0) { # Si el resultado no es múltiple de $columnes acabamos de rellenar los huecos
$ajust = $columnes - $resto; # Número de huecos necesarios
for ($j = 0; $j < $ajust; $j++) {echo "<td>&nbsp;</td>";}
echo "</tr>"; # Cerramos la última línea </tr>
}
mysql_close($link);
echo "</table>";
?>

el resultado de esto es:

Orden de Trabajo
Gerencia de Ciencia y Cultura Gerencia de Ciencia y Cultura

gracias...
__________________
With thank you lord for the fly high nights!!!
  #2 (permalink)  
Antiguo 17/03/2004, 15:57
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 15 años, 10 meses
Puntos: 6
Nunca lo he preobado pero quizas te falte un while(){}

digo yo..
__________________
www.dataautos.com
  #3 (permalink)  
Antiguo 17/03/2004, 16:41
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Yo he probado el código antes y siempre me ha ido bien, seguro que la consulta arroja varios resultados?
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 17/03/2004, 21:56
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 8 meses
Puntos: 1
Mira yo utilizo este codigo que me sirve para todas las bases de datos y todas las tablas,

Saca todos los registros de todas las tablas y pagina los resultados, esta un poco sucio porque lo hice hace mucho y siempre me he dicho que lo tengo de depurar pero nunca encuentro el momento,

El codigo crea dos combos si es necesario, uno de paginacion y otro de las tablas existentes en la BDD,,

solo es neceario darle los datos de la BDD y el numero de salidsas de registros por pagina, quizas os puede servir

Código PHP:

<html>
<head>
<title>Creaci&oacute;n de Productos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script src="/admin/lib/funciones_admin.js"></script>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


//-->
</script>


<style type="text/css">
<!--
.tabla1 {
    border: 1px solid #666699;
}
.entrada {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    background-color: #F3F3F3;
    border: 1px solid #666699;
}
.tex10 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    
}
.tex11B {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: bold;
    background-color: #aaaadd;
}
.tex14B {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: bold;
    color: #ffffff;
}
.tex12azul {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: bold;
    background-color: #ddddff;
}
-->
</style>
</head>

<body leftmargin="0" topmargin="0">
<table width="100%" border="0" cellspacing="0" cellpadding="5">
  <tr> 
    <td>
    
<table width="100%" height="95" border="0" cellpadding="0" cellspacing="0">
        <tr> 
          <td width="13%" bgcolor="#395263">&nbsp;</td>
          <td width="87%" bgcolor="#ff3300">&nbsp;</td>
        </tr>
        <tr> 
          
        <td height="39"  bgcolor="#ff3300">&nbsp;</a></td>
        <td align="right"  bgcolor="#395263" class="text14b">&nbsp;</td>
        </tr>
       </table>
     </td>
  </tr>
  <tr>
       <td height="20">&nbsp;</td>
    </tr>
  <tr> 
    <td>
    
    
<?php
$CONFIG
['dbserver'] = "localhost";
$CONFIG['dbuser']   = "uusario";
$CONFIG['dbpass']   = "contraseña";
$CONFIG['dbname']   = "base de datos";
$reg_pag=40// numero de regitros por pagina  

function connect()
{
       global 
$CONFIG;
       
$result mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']) or die (mysql_error());
       if (!
$result)
            return 
false;
       if (!
mysql_select_db($CONFIG['dbname']))
            return 
false;
       return 
$result;
}


function 
query($sql)

    
    
$result=mysql_query($sql) or die (mysql_error()."<br>".$sql);
    return 
$result;
}



function 
listar_campos($tabla)
{
      global 
$CONFIG,$conn;
      
      
$fields mysql_list_fields($CONFIG['dbname'],$tabla,$conn) or die (mysql_error());
      
$columns mysql_num_fields($fields);
      for (
$i 0$i $columns$i++) {  
      
$campo[$i]=mysql_field_name($fields$i);
      }
      return 
$campo;
}





   
$conn connect();
   
       
//-------------listar las tablas ------------//
   
   
$result_tablas mysql_list_tables($CONFIG['dbname']) OR DIE (mysql_error()); 
    
   echo 
"<select name='tablas' class='entrada'  onChange=\"MM_jumpMenu('parent',this,0)\">";
   echo 
"<option  value='".$HTTP_SERVER_VARS['PHP_SELF']."?inicial=".$ini."&final=".$fin."&tabla=".$tabla."'>Lista de tablas</option>";
    
    while (
$row mysql_fetch_row($result_tablas)) {   
        
$tabla = (!empty($_GET['tabla'])) ? $_GET['tabla'] : $row[0];
        
$SELECTED =($tabla == $row[0]) ? "selected='selected'" :'';
        echo 
"<option value='".$HTTP_SERVER_VARS['PHP_SELF']."?inicial=".$ini."&final=".$fin."&tabla=".$row[0]."' ".$SELECTED.">".$row[0]."</option>";
    }
// FIN WHILE
     
echo "</select>";    
                              
     
mysql_free_result($result_tablas);

  
   
$sql="SELECT * FROM ".$tabla;
   
$result_campos query($sql);   
      

   
$numero_registros=mysql_num_rows($result_campos);
   
$num_paginas=intval($numero_registros/$reg_pag);
    
   
if(
$numero_registros>=$reg_pag){
   echo 
"<select name='dirc' class='entrada'  onChange=\"MM_jumpMenu('parent',this,0)\">";
   echo 
"<option value='".$HTTP_SERVER_VARS['PHP_SELF']."?inicial=0&final=50&tabla=".$tabla."'>P&aacute;gina</option>";
   
  for (
$i=0$i<=$num_paginas$i++)
  {
    
    
$ini=$i*$reg_pag;
    
$fin=$ini+$reg_pag;
    if(
$ini>=($numero_registros-$reg_pag)) $ini=$numero_registros-$reg_pag;
    if(
$fin>=$numero_registros$fin=$numero_registros-1;
   
    
$select = ($i == ($_GET['inicial'] /$reg_pag)) ? "selected='selected'" :'';
   
    echo 
"<option value='".$HTTP_SERVER_VARS['PHP_SELF']."?inicial=".$ini."&final=".$fin."&tabla=".$tabla."' ".$select .">".$i."</option>";
  }
//fin for

  
echo "</select>";  
}
//fin if numero_registros  

   
else $reg_pag=$numero_registros;

?> 

      <hr width="65%" noshade>
    </td>
  </tr>
  <tr> 
    <td> 
        <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="tabla1" >
          <tr align="center" bgcolor="#666699"> 
            <td class="tex14B">BDD <?=$CONFIG['dbname']?>  Tabla  <? echo $tabla ?></td>
          </tr>
          <tr> 
            <td >
<?php


  
      $inicial
= (empty($_GET['inicial'])) ? $_GET['inicial'] ;
      
              
      
$final = (empty($_GET['final'])) ?  $reg_pag :$_GET['final'];

 
      
$sql_reg="SELECT * FROM ".$tabla." LIMIT ".$inicial.", ".$reg_pag;
      
$result=query($sql_reg);      
     
      
$fields mysql_num_fields($result);
      
$campos_tabla=listar_campos($tabla); 
      

      echo
"<table width='100%' border='0' cellspacing='1' cellpadding='5'>";
      echo 
"<tr>";
      
      foreach (
$campos_tabla as $columna){
          echo 
"<td class='tex11B' align='center'>".$columna."</td>";
     } 
// fin foreach  
        
$registros_mostrados=0
       while(
$query mysql_fetch_array($result)){
           
$registros_mostrados ++;

           
?>
         <tr bgcolor="#ccccff" class="tex10" OnMouseOver="this.style.backgroundColor='#aaaadd'" OnMouseOut="this.style.backgroundColor='#ccccff'">

                       
<?php
      
foreach ($campos_tabla as $columna){
          echo 
" <td>".$query[$columna]."</td>";
         
      } 
// fin foreach

            
      
echo"</tr>";
}  
//fin while
echo "</table>";
mysql_free_result($result);
mysql_close($conn);
?>         
            </td>
          </tr>
        </table>
      </form>
      </td>
  </tr>
  <tr> 
    <td valign="top"> <p><br>
      <hr width="80%" noshade>&nbsp;     
      </td>
  </tr>
 </table>
</body>
</html>
Espero que os sirva

Un saludo
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 21:54.