0

私はこのスイッチを持っており、スイッチでのアクションの選択に基づいて特定のことを行います。私のテストに基づいて、ページの実行時にスイッチ内の機能が実行されていません。

今のところ、並べ替えアクションを実行できることに興味があります。ページに移動すると、スイッチは最初のケースに入れますが、機能を実行しません。なぜですか? どうすれば修正できますか?

switch ($_GET['action']) {
        case 'sortby':
            sort_by($_GET['sortby']);
            break;
        case 'add':
            resident_add($_GET['residentID']);
            include('inc/modify/add.php');
            break;
        case 'edit':
            resident_edit($_GET['residentID']);
            include('inc/modify/edit.php');
            break;
        case 'delete':
            resident_delete($_GET['residentID']);
            include('inc/modify/delete.php');
            break;
        case 'search':
            echo "";
            break;
        default:
            resident_default($_GET['sortby']);
    }

function sort_by($sortby) {
    if ($sortby == "last_name") {
        $sort_db_field = "Last Name";
        $sort_order = "ASC";    
    } elseif ($sortby == "lot") {
        $sort_db_field = "Lot"; 
        $sort_order = "ASC";
    } elseif ($sortby == "date_added") {
        $sort_db_field = "No";  
        $sort_order = "DESC";   
    } else {
        include('inc/error.php?error_code=100');
    }
return $sort_db_field;
return $sort_order;
}

$data = mysqli_query($dbcon, "SELECT * FROM `residents` ORDER BY `residents`.`".$sort_db_field."` ".$sort_order."") or die(mysqli_error());
4

1 に答える 1

0

関数に 2 つの return ステートメントを含めることはできません。2 番目のステートメントは実行されません。

スイッチの前に 2 つの変数を宣言します。

$sort_db_field = "";  
$sort_order = "";  

switch ($_GET['action']) {
    /*snip*/
}

次に、関数で戻り値をドロップします。この関数は、宣言した 2 つの変数に値を設定します。

于 2013-10-05T17:36:06.847 に答える