Foros del Web » Programando para Internet » PHP »

Mostrar resultados en una sola fila

Estas en el tema de Mostrar resultados en una sola fila en el foro de PHP en Foros del Web. Buenas, necesito mostrar la informacion de esta manera mes|categoria1|categoria2 -------------------------------------- Enero|suma1|suma2 Febrero|suma1|suma2 -------------------------------------- Pero con el codigo que tengo me genera un registro por mes ...
  #1 (permalink)  
Antiguo 30/12/2014, 08:36
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Mostrar resultados en una sola fila

Buenas, necesito mostrar la informacion de esta manera

mes|categoria1|categoria2
--------------------------------------
Enero|suma1|suma2
Febrero|suma1|suma2
--------------------------------------

Pero con el codigo que tengo me genera un registro por mes y categoria, de esta forma

mes|categoria1|
--------------------------------------
Enero|suma1|
--------------------------------------
mes|categoria2|
--------------------------------------
Enero|suma2|
--------------------------------------
mes|categoria1|
--------------------------------------
Febrero|suma1|
--------------------------------------
mes|categoria2|
--------------------------------------
Febrero|suma2|
--------------------------------------


Código:
$sql = "Select SUM(monto_Doc) AS suma, code_doc as tipocuenta, MONTH(fecha_Doc) as fechan , code_Doc
FROM boletas WHERE tipo_Cuenta = '".$titulo."'
 and MONTH(fecha_Doc) BETWEEN '".$fecha1."' AND '".$fecha2."' GROUP BY code_Doc, fechan ORDER BY fechan";




$result = mysql_query ($sql);
// verificamos que no haya error
if (! $result){
echo "La consulta SQL contiene errores.".mysql_error();
exit();
}
else {
echo "<table id='data' class='table table-striped table-bordered table-hover' align='center' border='1'>";
//obtenemos los datos resultado de la consulta
while ($row = mysql_fetch_array($result)){
echo    "

      <tr>
  <td>Mes</th>
  <td>".$servicio[$row['code_Doc']]."</td>
  </tr>
    <tr class='alt'>
		<td>".$meses[$row['fechan']]."</td>
		<td>$ ".$row["suma"]." </td>
		</tr>";	
}
echo "</table>";
}
De ante mano muchas gracias.
  #2 (permalink)  
Antiguo 30/12/2014, 08:57
 
Fecha de Ingreso: octubre-2014
Ubicación: Buenos Aires
Mensajes: 278
Antigüedad: 10 años, 1 mes
Puntos: 12
Respuesta: Mostrar resultados en una sola fila

Hola Raul, por lo que se ve a simple vista esta mal definida la tabla, y otra cosa utiliza los highligth del combo para resaltar el código y así entenderte mejor.

Te dejo un ejemplo, tendrías que adecuarlo a tus necesidades.

Código PHP:
Ver original
  1. <table class="table">
  2.                                 <tbody>
  3.                                     <tr>
  4.                                         <th>Usuario</th>
  5.                                         <th>Perfil</th>
  6.                                         <th>Acci&oacute;n</th>
  7.                                     </tr>
  8.                                         <?php for($i=0; $i<sizeof($reg); $i++) { // $reg contiene el array con los datos traidos de la db ?>
  9.                                         <tr>
  10.                                             <td><?php echo strtoupper($reg[$i]["Usuario"]); ?></td>
  11.                                             <td><?php echo $reg[$i]["Perfil"]; ?></td>
  12.                                             <td>
  13.                                                 <!--<img alt="Examinar" title="Examinar" src="<?php print Conectar::Url(); ?>img/icon/eye.png" />&nbsp;
  14.                                                 <a href="<?php print Conectar::Url(); ?>?action=usuarios&token<?php print $_GET["token"]; ?>&id=<?php echo $reg[$i]["IdUsuario"]; ?>" title="Examinar">Examinar</a>&nbsp;
  15.                                                 -->
  16.                                                 <img alt="Editar usuario" title="Editar usuario" src="<?php print Conectar::Url(); ?>img/icon/b_usredit.png" />&nbsp;
  17.                                                 <a onclick="Load();" href="<?php print Conectar::Url(); ?>?action=editusuarios&token=<?php print $_GET["token"]; ?>&option=edit&id=<?php echo $reg[$i]["IdUsuario"]; ?>" title="Editar usuario">Editar</a>&nbsp;
  18.                                                 <!--<img alt="Asignar perfil" title="Asignar perfil" src="<?php print Conectar::Url(); ?>img/icon/b_sdb.png" />&nbsp;
  19.                                                 <a href="<?php print Conectar::Url(); ?>?action=usuarios&amp;token=<?php print $_GET["token"]; ?>&amp;option=perfiles" title="Asignar perfil">Asignar modulos</a>&nbsp;
  20.                                                 -->
  21.                                             </td>
  22.                                         </tr>
  23.                                     <?php } ?>
  24.                                 </tbody>
  25.                             </table>


Espero te sirva.

Saludos.
__________________
http://www.sp-vision.net
  #3 (permalink)  
Antiguo 31/12/2014, 05:17
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Mostrar resultados en una sola fila

Gracias mauritosuarez!!!

Código PHP:
<?php
session_start
();
  if(empty(
$_SESSION) or $_SESSION["perfil"]=="colaborador"){

  }
  elseif(empty(
$_SESSION) or $_SESSION["perfil"]=="admin") {
  
Header("Location: index-admin.php");
  }
  else { 
Header("Location: index.php");
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<script language="javascript" type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
<script language="javascript" type="text/javascript" src="js/datetimepicker.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery.js"></script> 
<script language="javascript" type="text/javascript" src="js/jquery.Rut.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery.Rut.min.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery.validate.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery-2.1.1.min.js"></script>
<script language="javascript" type="text/javascript" src="jquery.Rut.js"></script>


    <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
    <link rel="stylesheet" type="text/css" href="css/DT_bootstrap.css">


<style type="text/css" media="print">
.nover {display:none}
</style>



</head>


<body>

        <nav class="navbar navbar-default" role="navigation">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" >Facturacion</a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li><a href="ingresa-factu.php">Ingresar</a></li>
        <li><a href="mostrarFacturas.php">Ver Facturas</a></li>
        <li class="active"><a href="informe.php">Informes</a></li>
      </ul>
            <ul class="nav navbar-nav navbar-right">
            <li><a href="logout.php">Cerrar Sesion</a></li>
          </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>


<span class="Estilo2">
<div class="datagrid">


<?php




    
/* CONECTAR CON BASE DE DATOS **************** */

    
$con mysql_connect("localhost","root","");
if (!
$con){die('ERROR DE CONEXION CON MYSQL: ' mysql_error());}
/* ********************************************** */
/********* CONECTA CON LA BASE DE DATOS  **************** */
$database mysql_select_db("conta",$con);
mysql_query("SET NAMES 'UTF8'");
if (!
$database){die('ERROR CONEXION CON BD: '.mysql_error());}
/* ********************************************** */


$sql "Select SUM(monto_Doc) AS suma, code_doc as tipocuenta, MONTH(fecha_Doc) as fechan , code_Doc
FROM boletas WHERE tipo_Cuenta = '"
.$titulo."'
 and MONTH(fecha_Doc) BETWEEN '"
.$fecha1."' AND '".$fecha2."' GROUP BY code_Doc, fechan ORDER BY fechan";




$result mysql_query ($sql);
// verificamos que no haya error
if (! $result){
echo 
"La consulta SQL contiene errores.".mysql_error();
exit();
}
else {

//obtenemos los datos resultado de la consulta
while ($row mysql_fetch_array($result)){ ?>
<table class='table'>

                                <tbody>
                                    <tr>
                                        <th>Usuario</th>
                                        <th><?php echo $row['code_doc']; ?></th>
                                    </tr>
                                        <?php for($i=0$i<sizeof($row); $i++) { ?>
                                        <tr>
                                            <td><?php echo $row[$i]['fechan"']; ?></td>
                                            <td><?php echo $row[$i]['suma']; ?></td>
                                        </tr>
                                    <? ?>
                                </tbody>
                            </table>

<? ?>

</div>
<center><input type="button" name="imprimir" value="Generar Informe" onclick="window.print();" class="nover"></center>
</span>
</body>
</html>
Me tira error en la ultima linea, en la etiqueta html, eso significa que me falta una llave de cierre?
  #4 (permalink)  
Antiguo 31/12/2014, 07:41
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Mostrar resultados en una sola fila

Amigo Teemo... como saber que error es si no lo muestras?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #5 (permalink)  
Antiguo 31/12/2014, 07:50
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Mostrar resultados en una sola fila

Código PHP:
<?php
session_start
();
  if(empty(
$_SESSION) or $_SESSION["perfil"]=="colaborador"){

  }
  elseif(empty(
$_SESSION) or $_SESSION["perfil"]=="admin") {
  
Header("Location: index-admin.php");
  }
  else { 
Header("Location: index.php");
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<script language="javascript" type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
<script language="javascript" type="text/javascript" src="js/datetimepicker.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery.js"></script> 
<script language="javascript" type="text/javascript" src="js/jquery.Rut.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery.Rut.min.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery.validate.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery-2.1.1.min.js"></script>
<script language="javascript" type="text/javascript" src="jquery.Rut.js"></script>


    <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
    <link rel="stylesheet" type="text/css" href="css/DT_bootstrap.css">


<style type="text/css" media="print">
.nover {display:none}
</style>



</head>


<body>

        <nav class="navbar navbar-default" role="navigation">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" >Facturacion</a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li><a href="ingresa-factu.php">Ingresar</a></li>
        <li><a href="mostrarFacturas.php">Ver Facturas</a></li>
        <li class="active"><a href="informe.php">Informes</a></li>
      </ul>
            <ul class="nav navbar-nav navbar-right">
            <li><a href="logout.php">Cerrar Sesion</a></li>
          </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>


<span class="Estilo2">
<div class="datagrid">


<?php




    
/* CONECTAR CON BASE DE DATOS **************** */

    
$con mysql_connect("localhost","root","");
if (!
$con){die('ERROR DE CONEXION CON MYSQL: ' mysql_error());}
/* ********************************************** */
/********* CONECTA CON LA BASE DE DATOS  **************** */
$database mysql_select_db("conta",$con);
mysql_query("SET NAMES 'UTF8'");
if (!
$database){die('ERROR CONEXION CON BD: '.mysql_error());}
/* ********************************************** */
/*ejecutamos la consulta usando like */


$meses = array(
      
"1"=>"Enero",
      
"2"=>"Febrero",
      
"3"=>"Marzo",
      
"4"=>"Abril",
      
"5"=>"Mayo",
      
"6"=>"Junio",
      
"7"=>"Julio",
      
"8"=>"Agosto",
      
"9"=>"Septiembre",
      
"10"=>"Octubre",
      
"11"=>"Noviembre",
      
"12"=>"Diciembre"
 
);

$servicio = array(
    
"240241"=>"Materiales Y Menaje de Oficina",
    
"240242"=>"Materiales y utiles de Aseo",
    
"240243"=>"Publicidad",
    
"240244"=>"Reproduccion de Documentos",
    
"240245"=>"Insumos Computacionales",
    
"240246"=>"Alimentacion",
    
"240247"=>"Otros Gastos Operacionales Materiales de Uso o Consumo (Considerados Art 5 DFL-2/98)",

    
"250251"=>"Agua",
    
"250252"=>"Gas",
    
"250253"=>"Electricidad",
    
"250254"=>"Servicio de Correspondencia (Correos)",
    
"250255"=>"Telefonia (Movil y Fija)",
    
"250256"=>"Calefaccion",
    
"250257"=>"Combustible y Peajes",
    
"250258"=>"Internet",
    
"250259"=>"Otros Gastos Operacionales Servicios Basicos (Considerados Art 5 DFL-2/98)",

    
"270271"=>"Implementos de Laboratorio",
    
"270272"=>"Implementos Deportivos",
    
"270273"=>"Instrumentos Musicales y Artisticos",
    
"270274"=>"Recursos Audiovisuales y Software Educativo",
    
"270275"=>"Bibliotecas, Libros y Revistas",
    
"270276"=>"Material Didactico",
    
"270277"=>"Material Educativo",
    
"270278"=>"Eventos Educativos, Deportivos, Culturales",
    
"270279"=>"Otros Gastos Operacionales Recursos de Aprendizaje (Considerados Art 5 DFL-2/98)",

    
"280281"=>"Equipos Informaticos</option>",
    
"280282"=>"Equipos Reproductores de Imagen</option>",
    
"280283"=>"Equipos Multicopiadores</option>",
    
"280284"=>"Equipos de Amplificacion y Sonido</option>",
    
"280285"=>"Equipos de Fotografia y Filmacion</option>",
    
"280286"=>"Pizarra Interactiva</option>",
    
"280287"=>"Gastos en Indumentaria o Articulos Escolares</option>",
    
"280288"=>"Otros Gastos Operacionales Equipamiento de Apoyo (Considerados Art 5 DFL-2/98)</option>",

    
"290291"=>"Adquisicion de Bienes Muebles</option>",
    
"290292"=>"Adquisicion de Bienes Inmuebles</option>",

    
"300301"=>"Arriendo de Bienes Muebles</option>",
    
"300302"=>">Arriendo de Bienes Inmuebles</option>",

    
"310311"=>"Asesorias Tecnicas</option>",
    
"310312"=>"Perfeccionamiento y Capacitacion de RR.HH.</option>",

    
"320321"=>"Remuneraciones RR.HH. Contrato Bajo Dependencia</option>",
    
"320322"=>"Remuneraciones RR.HH. a Honorarios</option>",
    
"320323"=>"Retencion de Honorarios</option>",
    
"320324"=>"Incentivo Institucionales al RR.HH.</option>",
    
"320325"=>"Viaticos y Pasajes de RR.HH.</option>",
    
"320326"=>"Aporte Patronal</option>",
    
"320327"=>"Otros Gastos Operacionales RR.HH. (Considerados Art 5 DFL-2/98)</option>",

    
"330331"=>"Contratacion Servicios de Aseo</option>",
    
"330332"=>"Contratacion Servicios de Seguridad</option>",
    
"330333"=>"Contratacion Servicios de Transporte Escolar</option>",
    
"330334"=>"Otros Gastos Servicios de Empresa Externa (Considerados Art 5 DFL-2/98)</option>",

    
"340341"=>"Caja Chica</option>",
    
"340342"=>"Otros Gastos Operacionales Imprevistos (Considerados Art 5 DFL-2/98)</option>",

    
"350351"=>"Mantenimiento y Reparaciones de Inmuebles</option>",
    
"350352"=>"Mantenimiento y Reparaciones de Muebles</option>",
    
"350353"=>"Repuestos, Mantenimiento y Reparacion de Vehiculos</option>",
    
"350354"=>"Construccion de Infraestructura (Obra Gruesa)</option>",
    
"350355"=>"Adquisiquin y Mantencion de Elementos de Seguridad</option>",

    
"360361"=>"Otros Gastos Operacionales (Considerados Art 5 DFL-2/98)</option>",

    
"370371"=>"Uniforme y Vestuario</option>",
    
"370372"=>"Libreta, Libros e Insignias</option>",
    
"370373"=>"Otros Gastos Operacionales Adquisicion de Articulos y Servicios Educacionales</option>",

    
"380381"=>"Colocaciones de Inversiones</option>",

    
"390391"=>"Prestamo o Creditos Obtenidos</option>",
    
"390392"=>"Interes Pagados</option>",

    
"400401"=>"Remuneracion del Directorio</option>",
    
"400402"=>"Remuneracion de la Plana Administrativa</option>",
    
"400403"=>"Otros Gastos No Operacionales Directorio y/o Administracion</option>",

    
"500501"=>"Otros Gastos No Operacionales</option>",

    
"510511"=>"Impuestos Pagados</option>",
    );    




$titulo $_POST['titulo'];
$fecha1 $_POST['fecha1'];
$fecha2 $_POST['fecha2'];



$sql "Select SUM(monto_Doc) AS suma, code_doc as tipocuenta, MONTH(fecha_Doc) as fechan , code_Doc
FROM boletas WHERE tipo_Cuenta = '"
.$titulo."'
 and MONTH(fecha_Doc) BETWEEN '"
.$fecha1."' AND '".$fecha2."' GROUP BY code_Doc, fechan ORDER BY fechan";




$result mysql_query ($sql);
// verificamos que no haya error
if (! $result){
echo 
"La consulta SQL contiene errores.".mysql_error();
exit();
}
else {
echo 
"<table id='data' class='table table-striped table-bordered table-hover' align='center' border='1'>";
//obtenemos los datos resultado de la consulta
while ($row mysql_fetch_array($result)){
  
echo    
"

      <tr>
  <td>Mes</th>"
;
  for(
$i=0$i<sizeof($row); $i++){
  echo 
"<td>".$servicio[$row[$i]['code_Doc']]."</td>
  </tr>
    <tr class='alt'>
   <td>"
.$meses[$row[$i]['fechan']]."</td>
    <td>$ "
.$row[$i]['suma']." </td>
    </tr>"

  }
}
echo 
"</table>";
}

?>
</div>
<center><input type="button" name="imprimir" value="Generar Informe" onclick="window.print();" class="nover"></center>
</span>
</body>
</html>
Warning: Illegal string offset 'code_Doc' in C:\xampp\htdocs\contabilidad1\informe-generado.php on line 226

Notice: Undefined offset: 2 in C:\xampp\htdocs\contabilidad1\informe-generado.php on line 226

Warning: Illegal string offset 'fechan' in C:\xampp\htdocs\contabilidad1\informe-generado.php on line 229

Warning: Illegal string offset 'suma' in C:\xampp\htdocs\contabilidad1\informe-generado.php on line 230
  #6 (permalink)  
Antiguo 31/12/2014, 07:56
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Mostrar resultados en una sola fila

Pero haces una consulta en MySql y luego invocas los campos como Array, cuando que en realidad no lo son..

$titulo = $_POST['titulo'];
$fecha1 = $_POST['fecha1'];
$fecha2 = $_POST['fecha2'];

estos no son arreglos de array y luego intentas tratar como tal...

<td>".$meses[$row[$i]['fechan']]."</td>
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #7 (permalink)  
Antiguo 31/12/2014, 08:15
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Mostrar resultados en una sola fila

Disculpa, pero no te entiendo...

Si lo dejo asi, funciona, pero no en el orden que quiero

Código PHP:
echo    "

      <tr>
  <th>Mes</th>
  <th>"
.$servicio[$row['code_Doc']]."</th>
  </tr>
    <tr class='alt'>
   <td>"
.$meses[$row['fechan']]."</td>
    <td>$ "
.$row['suma']." </td>
    </tr>"

  #8 (permalink)  
Antiguo 31/12/2014, 08:21
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Mostrar resultados en una sola fila

Pero hermano, quieres que traiga MES | SUMA 1 | SUMA 2

pero lo único que haces es poner

MES | SUMA 1

me imagino que algo te falta, no? a ver, dime tú mi querido Teemo, que estás haciendo mal.. teniendo en cuenta que TR es una fila y TD son las columnas...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #9 (permalink)  
Antiguo 31/12/2014, 08:40
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Mostrar resultados en una sola fila

Se visualiza asi


y lo necesito asi



Que aparezca una ves el mes y las categorias hacia la derecha en la misma fila.

Etiquetas: fecha, fila, mysql, registro, resultados, select, sql
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 17:27.