registros para modificar millon mas insertar español eliminar datos codigo biblia php sql dynamic html-table

php - para - manual de mysql 6.0 en español pdf



Cómo integrar array_column() y array_filter()-bloques en la generación dinámica de tablas de resultados sql (0)

Quiero leer datos de una base de datos sql y mostrarlos en una tabla. Esto funciona bien Ahora, me gustaría mostrar solo las columnas con al menos un valor y no las vacías (que contienen NULL, 0, cadena vacía). Esto funciona con el siguiente ejemplo:

enter code here <TABLE width="500" border="1" cellpadding="1" cellspacing="1"> <?php $query = mysql_query("SELECT * FROM guestbook", $db); $results = array(); while($line = mysql_fetch_assoc($query)){ $results[] = $line; $Name = array_column($results, ''Name''); $Home = array_column($results, ''Home''); $Date = array_column($results, ''Date''); $Emptycolumn = array_column($results, ''Emptycolumn''); $Comment = array_column($results, ''Comment''); $City = array_column($results, ''City''); } echo "<TR>"; if(array_filter($Name)) {echo "<TH>Name</TH>";} if(array_filter($Home)){echo "<TH>Home</TH>";} if(array_filter($Date)){echo "<TH>Date</TH>";} if(array_filter($Emptycolumn)){echo "<TH>Emptycolumn</TH>";} if(array_filter($Comment)){echo "<TH>Comment</TH>";} if(array_filter($City)){echo "<TH>City</TH>";} echo "</TR>"; $query = mysql_query("SELECT * FROM guestbook", $db); while($line = mysql_fetch_assoc($query)){ echo "<TR>"; if(array_filter($Name)) {echo "<TD>".$line[''Name'']."</TD>";} if(array_filter($Home)) {echo "<TD>".$line[''Home'']."</TD>";} if(array_filter($Date)) {echo "<TD>".$line[''Date'']."</TD>";} if(array_filter($Emptycolumn)) {echo "<TD>".$line[''Emptycolumn'']."</TD>";} if(array_filter($Comment)) {echo "<TD>".$line[''Comment'']."</TD>";} if(array_filter($City)) {echo "<TD>".$line[''City'']."</TD>";} echo "</TR>"; } ?> </TABLE>

Dado que los nombres de las columnas de mi tabla son muy variables (dependiendo de la consulta), la tabla se genera mediante un bucle a través de la matriz de resultados, primero los nombres de las columnas y luego los valores en las filas:

enter code here $sql = "SELECT DISTINCT $selection FROM $tabelle WHERE $whereclause"; //will be changed to PDO $result = mysqli_query($db, $sql) or die("<b>No result</b>"); //Running the query and storing it in result $numrows = mysqli_num_rows($result); // gets number of rows in result table $numcols = mysqli_num_fields($result); // gets number of columns in result table $field = mysqli_fetch_fields($result); // gets the column names from the result table if ($numrows > 0) { echo "<table id=''myTable'' >"; echo "<thead>"; echo "<tr>"; echo "<th>" . ''Nr'' . "</th>"; for($x=0;$x<$numcols;$x++){ $key = array_search($field[$x]->name, $custom_column_arr); if($key !== false){ echo "<th>" . $key . "</th>"; }else{ echo "<th>" . $field[$x]->name . "</th>"; } } echo "</tr></thead>"; echo "<tbody>"; $nr = 1; while ($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $nr . "</td>"; for ($k=0; $k<$numcols; $k++) { // goes around until there are no columns left echo "<td>" . $row[$field[$k]->name] . "</td>"; //Prints the data } echo "</tr>"; $nr = $nr + 1; } // End of while-loop echo "</tbody></table>"; } } mysqli_close($db);

Ahora, traté de integrar los bloques array_column () y array_filter () del ejemplo anterior en los bucles, pero, por desgracia, no funcionó. Estoy seguro de que esto es fácil para un profesional y le estaría muy agradecido si alguien pudiera ayudarme con este problema.

¡¡Muchas gracias por adelantado!!