PHP - Crear Tabla de forma dinamica con PHP y SQL SERVER

 
Vista:
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear Tabla de forma dinamica con PHP y SQL SERVER

Publicado por Pavel Escobar (9 intervenciones) el 29/08/2019 03:06:57
Hola a todos, quisiera el apoyo de ustedes ya que estoy creando una tabla de forma dinámica desde una consulta con php y sqlserver en una pagina (se debe de crear los nombres de las columnas y los datos en una tabla html en la pagina que da como resultado la consulta sql), asi que necesito saber como puedo extraer los nombres de las columnas y los datos de las filas de la consulta sql (deben de ser iguales los nombres de las columnas y los datos de las filas) ya que en cada consulta cambian las columnas (no son fijas) ya que utilizo un pivot en la sentencia sql, agradecería su poyo ya que intente de todo y no se como hacer.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear Tabla de forma dinamica con PHP y SQL SERVER

Publicado por Pavel (9 intervenciones) el 29/08/2019 03:48:13
este es la sentencia sql que utilizo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
procedure [dbo].[tabla_productos_redistribucion_estilo]
@estilo as nvarchar(100)
as
begin
 
select colorname as Color, sizecode as Talla, STORE.StoreNo, cast(onhandqty as int) as 'onhandqty'
into #tmpResumen
from _retaildata..product
inner join _retaildata..product_style on product.stylecode = product_style.stylecode
inner join _retaildata..product_store on product.sku = product_store.sku
inner join _retaildata..color on product.colorcode = color.colorcode
inner join _retaildata..store on product_store.storeno = store.storeno
where onhandqty <>0
and store.activestatus=1
and store.warehouse =0
and stylename = @estilo
 
declare @tiendas varchar (max)
DECLARE @SQLString nvarchar(500)
set @tiendas =''
 
select @tiendas = coalesce(@tiendas+'['+CAST(STORE.StoreNo AS varchar(100))+'],','') from _retaildata..product
inner join _retaildata..product_style on product.stylecode = product_style.stylecode
inner join _retaildata..product_store on product.sku = product_store.sku
inner join _retaildata..color on product.colorcode = color.colorcode
inner join _retaildata..store on product_store.storeno = store.storeno
where onhandqty <>0
and stylename = @estilo
and store.activestatus=1
and store.warehouse =0
group by STORE.StoreNo
 
set @tiendas = left(@tiendas, len(@tiendas)-1)
 
set @SQLString = N'
select Color, Talla, '+@tiendas+' from #tmpResumen
pivot(
sum(onhandqty) for [storenO] in ('+@tiendas+')) as P;'
 
EXECUTE sp_executesql @SQLString
 
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 95
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear Tabla de forma dinamica con PHP y SQL SERVER

Publicado por Luis (33 intervenciones) el 29/08/2019 13:44:25
Te pongo un ejemplo sencillo que luego tendrás que rellenar con tus datos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
 
//la conexion a la base de datos
$mysqli = new mysqli("localhost", "usuario", "contraseña", "basedatos");
$mysqli->set_charset('utf8');
 
//la consulta sql
$consulta = "SELECT * FROM nombretabla";
 
//guarda el resultado
$result = $mysqli->query( $consulta );
 
//verifica si obtuviste resultados 
if ( $result ) {
?>
<table>
<?php
//un while que recorre cada resultado y luego lo colocas en las casillas de la tabla   
while ($row = mysqli_fetch_assoc($result )){
?>
  <tr>
    <th>$row['campo1']</th>
    <th>$row['campo2']</th>
    <th>$row['campo3']</th>
  </tr>
<?php
}
?>
</table>
<?php
}else{
   throw new Exception( $mysqli->error );
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear Tabla de forma dinamica con PHP y SQL SERVER

Publicado por Pavel Escobar (9 intervenciones) el 29/08/2019 15:39:16
Hola luis gracias por responder en mi caso yo puedo crear la tabla pero en esta parte

<tr> <th>$row['campo1']</th> <th>$row['campo2']</th> <th>$row['campo3']</th> </tr>

Debo de poner el nombre en cada campo(columna) pero mi query de sql los resultados dan columnas diferentes por casa consulta así que no puedo poner un campo definido, necesito que php ponga cada nombre de campo según la consulta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 95
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear Tabla de forma dinamica con PHP y SQL SERVER

Publicado por Luis (33 intervenciones) el 29/08/2019 15:59:34
Prueba colocando la posición del array

1
2
3
4
5
<tr>
    <th>$row[0]</th>
    <th>$row[1]</th>
    <th>$row[2]</th>
</tr>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear Tabla de forma dinamica con PHP y SQL SERVER

Publicado por Pavel Escobar (9 intervenciones) el 29/08/2019 16:59:49
Las columnas varían de acuerdo a cada consulta en un resultado puedo tener 5 columnas (campos) en otra 7 columnas o en otra solo 3 columnas según cada consulta ¿habría alguna forma de saber cuántas columnas sale en cada consulta? Sino para poner un for y asignarle las columnas con el for
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 95
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear Tabla de forma dinamica con PHP y SQL SERVER

Publicado por Luis (33 intervenciones) el 29/08/2019 17:18:06
Con saber la longitud del array te valdría

$longitud = count($row);

Y luego haces el for con la longitud del array
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear Tabla de forma dinamica con PHP y SQL SERVER

Publicado por Pavel (9 intervenciones) el 29/08/2019 19:34:56
esto me da el conteo de la cantidad de filas pero no de columnas necesitaría un conteo de columnas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear Tabla de forma dinamica con PHP y SQL SERVER

Publicado por Pavel (9 intervenciones) el 29/08/2019 21:41:14
Gracias Luis por tu apoyo

encontré la solución creando a parte los títulos (columnas) y usando el conteo de estos para crear las filas, aca dejo el código para quien lo necesite

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
global
$texto ="<table>
                <thead>
                  <tr>
                  <th>COLOR</th>
                  <th>TALLA</th>";
 
    $sql_preg = "{CALL tabla_productos_redistribucion_estilo_columna(?)}";
    $params = array(
        array( &$dato, SQLSRV_PARAM_IN )
    );
    $registros = sqlsrv_query($conexion, $sql_preg, $params);
 
if( $registros === false) {
    die( print_r( sqlsrv_errors(), true) );
}
$total_col=0;
do {
    while ($row = sqlsrv_fetch_array($registros))
    {
        $texto .= "<th width=10 class ='lineal'>".$row['storeno']."</th>" ;
        $total_col++;
    }
}  while (sqlsrv_next_result($registros));
 
$conteo_col = $total_col;
 
$texto.="</tr>
        </thead>
        <tbody>";
 
    $sql_preg = "{CALL tabla_productos_redistribucion_estilo(?)}";
    $params = array(
        array( &$dato, SQLSRV_PARAM_IN )
    );
    $registros = sqlsrv_query($conexion, $sql_preg, $params);
 
 
if( $registros === false) {
    die( print_r( sqlsrv_errors(), true) );
}
 
do {
    while ($row = sqlsrv_fetch_array($registros))
    {
        $texto .="<tr>";
        for($y=0;$y<$conteo_col+2;$y++) {
            $texto .='<td width=10>'.$row[$y].'</td>';
        }
        $texto .="</tr>";
    }
}  while (sqlsrv_next_result($registros));
 
$texto .="</tbody> </table>";
 
echo $texto;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar