0

データを降順または昇順でソートする機能を持つボタンを作成しようとしました。しかし、私はそれを行う方法がわかりません

私はインターネットでいくつかの調査を行いましたが、どれも答えを出していません。

誰もがそれを行う方法または参照になる可能性のあるソースコードを知っていますか???

これは私のコードtest.htmlです

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Data Mining</title>
</head>

<body>
    <form action="showDB.php" method="post">
    <table border="0">
    <tr>
        <th>test</th>
    </tr>
    <tr>
        <td>Select Foreign Agent Country</td>
        <td></td>
        <td>
        <select name="country">
        <option value="US">United States</option>
        <option value="NZ">New Zealand</option>
        <option value="JP">Japan</option>
        </select> 
        </td>
      </tr>
        <td>
        <input type="submit" name="formSubmit" value-"Submit">
        </td>
    </table>
    </form>

</body>
</html>

showDB.php

<?php
//connect to server
$connect = mysql_connect("localhost", "root", "");

//connect to database
//select the database
mysql_select_db("fak_databases");

//submit button
if($_POST['formSubmit'] == "Submit")
{
    $country = $_POST['country'];
}

//query the database
if($country == 'US') {  
    // query to get all US records  
    $query = mysql_query("SELECT * FROM auip_wipo_sample WHERE applicant1_country='US'");  
}  
elseif($country == 'NZ') {  
    // query to get all AUD records  
    $query = mysql_query("SELECT * FROM auip_wipo_sample WHERE applicant1_country='NZ'"); 
}elseif($country == 'JP') {  
    // query to get all AUD records  
    $query = mysql_query("SELECT * FROM auip_wipo_sample WHERE applicant1_country='JP'");  
} else {  
    // query to get all records  
    $query = mysql_query("SELECT * FROM auip_wipo_sample"); 
}  
//fetch the result
Print "<table border cellpadding=3>"; 
//ascending descending button
Print "<tr><th colspan='2'><input type='submit' name='asc_sort' value-'Asc'></input></th></tr>";

while($row = mysql_fetch_array($query))
{

    Print "<tr>";
    Print "<td>".$row['invention_title'] . "</td>"; 
    Print "<td>".$row['invention-title'] . " </td></tr>"; 
}
    //sorting the data, I got from internet but doesn't work
    if(isset($_POST['asc_sort']) && !empty($_POST['asc_sort']) && $_POST['asc_sort']==1)
    {
         $query = "SELECT * FROM auip_wipo_sample ORDER BY invention_title ASC";

    }else{

        $query = "SELECT * FROM auip_wipo_sample ORDER BY invention_title DESC";
    }

Print "</table>";
?>
4

2 に答える 2

1

これを変える:

Print "<tr><th colspan='2'><input type='submit' name='asc_sort' value-'Asc'></input></th></tr>";

Print "<tr><th colspan='2'><input type='submit' name='asc_sort' value='Asc'></input></th></tr>";

この

if(isset($_POST['asc_sort']) && !empty($_POST['asc_sort']) && $_POST['asc_sort']==1)

if(isset($_POST['asc_sort']) && !empty($_POST['asc_sort']))
于 2013-04-12T15:16:01.577 に答える
0
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Data Mining</title>
</head>

<body>
    <form action="showDB.php" method="post">
    <table border="0">
    <tr>
        <th colspan="3">test</th>
    </tr>
    <tr>
        <td>Select Foreign Agent Country</td>
        <td>
        <select name="country">
        <option value="US">United States</option>
        <option value="NZ">New Zealand</option>
        <option value="JP">Japan</option>
        </select> 
        </td>
        <td><input type="checkbox" name="asc" value="1" /> Ascending?</td>
      </tr>
     <tr> 
        <td colspan="3">
        <input type="submit" name="formSubmit" value-"Submit">
        </td>
       </tr>
    </table>
    </form>

</body>
</html>    

いくつかのこと:

  • 前のステートメントをまだ取得している途中で、クエリ ステートメントをプルしていました。これには、データを複数の配列にプルしてから処理する必要があります。
  • これには pdo や mysqli などを使用する必要がありますが、現在の方法の例を次に示します。
  • また、POST で isset を使用していました... POST に何かが含まれている場合は、設定どおりに返されます。
  • 設定されていない POST 変数を参照するとエラーが発生するため、国が設定されていることを確認してから、スイッチに NULL の回答が提供されます。

コード例:

<?php
    //connect to server
    $connect = mysql_connect("localhost", "root", "");

    //connect to database
    //select the database
    mysql_select_db("fak_databases");

    //submit button
    if(!empty($_POST['formSubmit'])&&($_POST['formSubmit']=="Submit")&&(!empty($_POST['country']))){
        $country = $_POST['country'];
    } else {
        $country = '';  
    }

    if(!empty($_POST['asc']))
        {
             $append = " ORDER BY invention_title ASC";

        }else{

            $append = " ORDER BY invention_title DESC";
        }

    switch($country){
    case 'US':
    $query = "SELECT * FROM auip_wipo_sample WHERE applicant1_country='US'$append";
    break;
    case 'NZ':
    $query = "SELECT * FROM auip_wipo_sample WHERE applicant1_country='NZ'$append";
    break;
    case 'JP':
    $query = "SELECT * FROM auip_wipo_sample WHERE applicant1_country='JP'$append";
    break;
    default:
    //all records
    $query = "SELECT * FROM auip_wipo_sample$append";

    }

    //query the database
    if($result = mysql_query($query)){
    //fetch the result
    print "<table border cellpadding=3>"; 

    while($row = mysql_fetch_array($result))
    {

        print "<tr>";
        print "<td>".$row['invention_title'] . "</td>"; 
        print "<td>".$row['invention-title'] . " </td></tr>"; 
    }
        //sorting the data, I got from internet but doesn't work


    print "</table>";
    } else {
                    //For Testing
        echo "Query Failed:<br />$query";   
    }


?>
于 2013-04-12T15:24:44.830 に答える