Tämä skripti siis luo yksinkertaisen taulukon, johon tulostetaan MySQL:stä haetut tiedot, ja sen lisäksi jokaisen sarakkeen otsikosta painamalla pystyy järjestelemään taulukon tiedot sen sarakkeen mukaan nousevassa järjestyksessä. Skripti sopii esim. joihinkin vertailuihin...
Koodi on varsin yksinkertainen ja kommenttien avulla sitä pitäisi olla helppo muokata sopivaksi. Sen toiminta siis vaaitii MySQL:llän ja PHP-tuen, jotta sitä pystyy pyörittämään sen lisäksi taulukon muotoilu kannattaa hoitaa CSS-tiedostolla...
jarjestelija.php
<?php # Code by Triton //Avataan muodostetaan yhteydet kantaan $connect = mysql_connect("localhost","tunnus","salasana"); mysql_select_db("esim"); //Kyselyt $main = mysql_query("SELECT * FROM taulukko"); $auto = mysql_query("SELECT * FROM taulukko ORDER BY auto ASC"); $malli = mysql_query("SELECT * FROM taulukko ORDER BY vuosimalli ASC"); $hinta = mysql_query("SELECT * FROM taulukko ORDER BY hinta ASC"); //Aloitetaan taulukko echo "<table border = '1'>"; echo "<tr bgcolor = '#00FF00'><td bgcolor = '#00FF00'><center><b><a href='?order=auto'>Auto</a></b></center>"; echo "</td><td bgcolor = '#00FF00'><center><b><a href='?order=malli'>Vuosimalli</a></b></center></td>"; echo "<td bgcolor = '#00FF00'><center><b><a href='?order=hinta'>Hinta</a></b></center></td>"; //Tarkistetaan, missä järjestyksessä tiedot järjestellään if (isset($_GET['order'])) $order(${$order}); //Päätetään taulukko echo "</table>"; //Funktiot function main($search) { //Hakee tiedot taulusta for ($i = 0; $i < mysql_num_rows($search); $i++) { //Tallentaan taulun tiedot muuttujiin $db_auto = mysql_result($search,$i,"auto"); $db_vuosimalli = mysql_result($search,$i,"vuosimalli"); $db_hinta = mysql_result($search,$i,"hinta"); //Tulostaa rivit echo "<tr><td><center>$db_auto</center></td><td><center>$db_vuosimalli</center></td>"; echo "<td>$db_hinta €</td>"; } } function auto($search) { //Hakee tiedot taulusta for ($i = 0; $i < mysql_num_rows($search); $i++) { //Tallentaan taulun tiedot muuttujiin $db_auto = mysql_result($search,$i,"auto"); $db_vuosimalli = mysql_result($search,$i,"vuosimalli"); $db_hinta = mysql_result($search,$i,"hinta"); //Tulostaa rivit echo "<tr><td><center>$db_auto</center></td><td><center>$db_vuosimalli</center></td>"; echo "<td>$db_hinta €</td>"; } } function malli($search) { //Hakee tiedot taulusta for ($i = 0; $i < mysql_num_rows($search); $i++) { //Tallentaan taulun tiedot muuttujiin $db_auto = mysql_result($search,$i,"auto"); $db_vuosimalli = mysql_result($search,$i,"vuosimalli"); $db_hinta = mysql_result($search,$i,"hinta"); //Tulostaa rivit echo "<tr><td><center>$db_auto</center></td><td><center>$db_vuosimalli</center></td>"; echo "<td>$db_hinta €</td>"; } } function hinta($search) { //Hakee tiedot taulusta for ($i = 0; $i < mysql_num_rows($search); $i++) { //Tallentaan taulun tiedot muuttujiin $db_auto = mysql_result($search,$i,"auto"); $db_vuosimalli = mysql_result($search,$i,"vuosimalli"); $db_hinta = mysql_result($search,$i,"hinta"); //Tulostaa rivit echo "<tr><td><center>$db_auto</center></td><td><center>$db_vuosimalli</center></td>"; echo "<td>$db_hinta €</td>"; } } ?>
vinkki kirjoitti:
Register globals päällä, vai? Unohdit nimittäin hakea sen muuttujan taulukosta. Voisit myös miettiä itse uudestaan tuota koodin ajatusta, sinulla on neljä identtistä funktiota. Taulukoistasi puuttuvat rivien lopetukset (</tr>). Kaiken kukkuraksi teet aivan turhaan kaikki neljä hakua joka kerta.
Katselepa tätä:
<?php // Sallitut järjestelytavat $orders = array( "hinta_asc" => "ORDER BY hinta ASC", "hinta_desc" => "ORDER BY hinta DESC", "auto_asc" => "ORDER BY auto ASC", "auto_desc" => "ORDER BY auto DESC", ); // Haetaan syöte $order = ""; if (isset($_GET["order"])) { $order = $_GET["order"]; } // Linkit $link_orders = array( "auto" => $order == "auto_asc" ? "auto_desc" : "auto_asc", "hinta" => $order == "hinta_asc" ? "hinta_desc" : "hinta_asc", ); echo "<tr><td><a href='?order={$link_orders["auto"]}'>Auto</a></td><td><a href='?order={$link_orders["hinta"]}'>Hinta</a></td></tr>"; // Valitaan taulukosta sallittu MySQL-pätkä if (isset($orders[$order])) { $order = $orders[$order]; } else { $order = ""; } // Haetaan tuotteet $tulos = mysql_query("SELECT * FROM taulu $order"); while ($rivi = mysql_fetch_assoc($tulos)) { echo "<tr><td>{$rivi["auto"]}</td><td>{$rivi["hinta"]}</td></tr>\n"; } ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.