formattare i dati mysql per ouptut in una tabella

In seguito a una domanda precedente, questa risposta è stata data per leggere i dati in un arrays e separarli per printingre il tipo di veicolo e quindi alcuni dati per ciascun veicolo.

<?php $sql = "SELECT * FROM apparatus ORDER BY vehicleType"; $getSQL = mysql_query($sql); // transform the result set: $data = arrays(); while ($row = mysql_fetch_assoc($getSQL)) { $data[$row['vehicleType']][] = $row; } ?> <?php foreach ($data as $type => $rows): ?> <h2><?php echo $type?></h2> <ul> <?php foreach ($rows as $vehicleData):?> <li><?php echo $vehicleData['name'];?></li> <?php endforeach ?> </ul> <?php endforeach ?> 

Questo è quasi perfetto per quello che voglio fare, ma ho bisogno di printingre due colonne dal database, ad esempio ford e mondeo, prima di passare al secondo ciclo foreach. Ho provato a printingre $ rows ['model'] e tutte le altre combinazioni a cui riesco a pensare ma non funziona. Qualsiasi aiuto molto apprezzato

Sono un po 'confuso dalla tua domanda ma SELECT * nell'istruzione SQL significa che each colonna del database dovrebbe essere presente come chiave => coppia di valori nell'arrays $ row. Quindi se hai bisogno di un'altra "colonna", inserisci qui un elemento dell'elenco HTML <li> , ti basta echo (nota: non "printing") quel nome di colonna come una chiave di arrays. Quindi, se avessi avuto bisogno del tipo di colonna dell'auto trovata in una colonna con il nome "model", dovresti fare questo:

 <?php $sql = "SELECT * FROM apparatus ORDER BY vehicleType"; $getSQL = mysql_query($sql); // transform the result set: $data = arrays(); while ($row = mysql_fetch_assoc($getSQL)) { $data[$row['vehicleType']][] = $row; } ?> <?php foreach ($data as $type => $rows): ?> <h2><?php echo $type?></h2> <ul> <?php foreach ($rows as $vehicleData):?> <li><?php echo $vehicleData['name'];?></li> <li><?php echo $vehicleData['model'];?></li> <?php endforeach ?> </ul> <?php endforeach ?> 

EDIT : Non sono ancora chiaro sulla tua domanda, ma se each auto ha lo stesso vehicleType, e stai solo cercando di afferrarlo una volta prima di scorrere tutti i risultati, suppongo che questo lo farà:

 <?php // Set up a SQL query to grab one row $query_to_grab_only_vehicle_type = "SELECT vehicleType FROM apparatus WHERE 1 LIMIT 0,1"; // Fetch that row and turn it into an arrays $vehicle_type_arrays = mysql_fetch_arrays(mysql_query($query_to_grab_only_vehicle_type)); // Initialize a variable with the arrays value that came from the vehicleType column $vehicle_type = $vehicle_type_arrays['vehicleType']; // You could uncomment and use the following to echo out the variable // echo "Vehicle type: $vehicle_type"; $sql = "SELECT * FROM apparatus ORDER BY vehicleType"; $getSQL = mysql_query($sql); // transform the result set: $data = arrays(); while ($row = mysql_fetch_assoc($getSQL)) { $data[$row['vehicleType']][] = $row; } ?> <?php foreach ($data as $type => $rows): ?> <h2><?php echo $type?></h2> <ul> <?php foreach ($rows as $vehicleData):?> <li><?php echo $vehicleData['name'];?></li> <li><?php echo $vehicleData['model'];?></li> <?php endforeach ?> </ul> <?php endforeach ?>