Regina Schaukrug: Die Lösung (sortierte Spaltennamen) und warum das Quatsch ist

Beitrag lesen

Im Prinzip kannst Du die Spaltennamen auf eine ganz triviale Weise holen und sortieren:

(Es fehlt jegliche Fehlerbehandlung!)

<?php

$mysqli = new mysqli( $host, $user, $pass, $database );

$sql    = "SHOW COLUMNS FROM `$database`.`$table`";
$result = $mysqli -> query( $sql );

$fields = array();

while ( $row = $result -> fetch_array( MYSQLI_ASSOC ) ) {
    $fields[] = $row['Field'];
}

sort( $fields );
print_r( $fields );

Baue dann mit den sortierten Feldern Deine eigentliche Abfrage. Hier hilft Dir

$ar = array();
foreach ( $fields as $s ) {
    $ar[] = '`' . $s . '`';
}
$from = implode(', ', $ar);
print $from;

Und jetzt dazu, warum das Quatsch ist:

Die Felder einer Tabelle sind normalerweise (jenseits von schweren Fehlern im Programmdesign, nicht mal wenn man PHPmyAdmin neu schreiben will ist dieses Vorgehen sinnvoll) nicht dynamisch, ändern sich also nicht. Du verschwendest also Serverzeit für die Abfrage, das Sortieren des Arrays und so weiter.