0

データベースから取得したデータをソートしようとしました

まず、ユーザーは選択オプション メニューから表示する国のデータを選択します。

その後、次のページには、並べ替えの昇順/降順関数を使用してテーブル内の特定のデータが表示されます

これは私のコードです

最初のページ test.html

<form action="showDB1.php" method="post">
<table border="0">
<tr>
    <th colspan="3">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 colspan="3">
    <input type="submit" name="formSubmit" value-"Submit">
    </td>
</table>
</form>

これは、ユーザーが表示する国のデータを選択した後にデータを表示するための私のコードです showDB1.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 == TRUE) {
    $order = "";
    $sort = "asc"; 
    $sql = "SELECT wipo_applicant1_city, applicant1_addr1 FROM auip_wipo_sample";
    if(isset($_GET['orderby'])){
        $order = $_GET['orderby']; 
        $sort = $_GET['sort'];  

        //limiting the possible values of order/sort variables
        if($order != 'wipo_applicant1_city' && $order != 'applicant1_addr1')$order = "applicant1_addr1";
            if($sort != 'asc' && $sort != 'desc')$sort = "asc";
                $sql = "SELECT wipo_applicant1_city, applicant1_addr1 FROM auip_wipo_sample WHERE applicant1_country='$country' ORDER BY ".mysql_real_escape_string($order)." ".$sort; 

                //here we reverse the sort variable
                if($sort == "asc"){
                    $sort = "desc";
                }
            else{
                $sort = "asc";
            }
        }
    // query to get all US records   
} 
    $result = mysql_query($sql);
    $num_rows = mysql_num_rows($result);
    $row_counter = 0; 

    $icon = "";
    echo "<table  border=\"1\" cellspacing=\"0\">\n";
    echo "<tr>\n"; 

    // first column
    echo "<th>";
    $icon = "";
    if($order == "wipo_applicant1_city"){
        if($sort == "asc"){
            $icon = "<img src=\"images/up.png\" class=\"arrowSpace\"/>";
        }
        if($sort == "desc"){
            $icon = "<img src=\"images/down.png\" class=\"arrowSpace\"/>";
        }
    }

    //print the result
    echo "<a href='index.php?orderby=wipo_applicant1_city&sort=".$sort."'>City</a>".$icon;
    echo "</th>\n";


    // second column
    echo "<th>";
    $icon = "";
    if($order == "applicant1_addr1"){
        if($sort == "asc"){
            $icon = "<img src=\"images/up.png\" class=\"arrowSpace\"/>";
        }
        if($sort == "desc"){
            $icon = "<img src=\"images/down.png\" class=\"arrowSpace\"/>";
        }
    }
    echo "<a href='index.php?orderby=applicant1_addr1&sort=".$sort."'>Address</a>".$icon;
    echo "</th>\n";
    echo "</tr>";

//fetch the result

while($row = mysql_fetch_array($result))
{
    if($row_counter % 2){
            $row_color="bgcolor='#FFFFFF'";
        }else{
            $row_color="bgcolor='#F3F6F8'";
        }
    echo "<tr class=\"TrColor\" ".$row_color.">";
    echo "<td>" . $row['wipo_applicant1_city'] . "</td>\n";
    echo "<td>" . $row['applicant1_addr1'] . "</td>\n";
    echo "</tr>";
    $row_counter++;
}

Print "</table>";

私の問題は、ユーザーが選択オプションの国を選択すると、すべてのデータが表示されることです。

期待される結果は、表示する必要がある特定のデータのみである必要があります

誰でもこれを修正できますか?

ありがとう

4

1 に答える 1