Ibland vill man snabbt överblick över resultatet av en SQL-fråga. För att göra detta så smidigt som möjligt kan man bygga en funktion för att göra detta som kan anropas där man vill visa en tabell över resultatet av en SQL-fråga. Egendefinierade funktioner brukar läggas i separata php-filer ungefär som dbconnect.php. Följande funktion skrivs i filen functions.php: <?php function print_table($query, $id="") { //Exekverar SQL-frågan
Som du säkert ser så är denna funktion beroende av att det finns en existerande databaskoppling etablerad (dvs att dbconnect.php är inkluderad före funktionen anropas).$result = mysql_query($query); //räknar antalet fält $count = mysql_num_fields($result); //om ett id har matats in, sätt det i tabellhuvudet if(!empty($id)){ echo "<table id=\"$id\">\n"; }else{ echo "<table>\n"; } echo "\t<tr>\n"; //skriver ut rubiker till kolumnerna for ($i = 0; $i < $count; $i++){ echo "\t\t<th>".mysql_field_name($result, $i)."</th>\n"; } echo "\t</tr>\n"; //skriver ut de varje rad från frågan while ($row = mysql_fetch_assoc($result)) { echo "\t<tr>\n"; foreach($row as $value){ echo "\t\t<td>$value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n"; } ?> Som exempel testar vi att använda funktionen på sidan test.php: <?php include('dbconnect.php'); //håller databasanslutningen
?>
include('functions.php'); //håller print_table() //skriver ut en tabell med alla bilar, ger tabellen id: bilar print_table("SELECT reg, marke, arsmodell FROM bilar", "bilar"); //skriver ut alla personer där förnamnet börjar på Kn print_table("SELECT * FROM personer WHERE fnamn LIKE 'Kn%'"); Resultatet blir så här:
|
Databashantering > php >