第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有一個或多個參數(shù)的搜索表單

具有一個或多個參數(shù)的搜索表單

PHP
胡說叔叔 2019-06-25 11:10:01
具有一個或多個參數(shù)的搜索表單我已經(jīng)完成了基礎(chǔ)工作,我創(chuàng)建了兩個文件,一個用戶輸入搜索參數(shù)的搜索表單,以及一個運行輸入項的結(jié)果文件。為了簡單起見,我們將搜索表單文件指定為search.php,將結(jié)果頁面指定為Resul.php。編輯:清理標(biāo)簽禮儀,以方便閱讀。search.php<?php    if(!empty($_POST['id']) && isset($_POST['id'])) {     header("Location: ?m=search.results&id=".$_POST['id']."");     } elseif(!empty($_POST['major']) && isset($_POST['major'])) {     header("Location: ?m=search.results&major=".$_POST['major']."");     } elseif(!empty($_POST['college']) && isset($_POST['major'])) {     header("Location: ?m=search.results&college=".$_POST['college']."");     } elseif (!empty($_POST['name']) && isset($_POST['name'])) {     header("Location: ?m=search.results&name=".$_POST['name']."");     } elseif (!empty($_POST['id']) && !empty($_POST['college']) && !empty($_POST['major'])                                    && isset($_POST['submit']) && !empty($_POST['name'])) {         echo "<div class='alert alert-danger'>No students found. Please try different parameters.</div>";     }     ?>     <h4>Search</h4>     <form method="POST">         <table width="100%">     <tr><td>ID:</td><td> <input type="text" name="id" class="form-control"></textarea></td></tr>      <tr><td>Name:</td><td> <input type="text" name="name" class="form-control"></textarea></td></tr>      <tr><td>Major:</td><td><select name="major" class="form-control"><option></option><?php echo majorSelect(); ?></select></td></tr>      <tr><td>College:</td><td><select name="college" class="form-control"><option></option><?php echo collegeSelect(); ?></select></td>      </tr>      <tr><td colspan="2"><input type="submit" name="submit" value="Search" class="btn btn-lrg btn-primary" style="margin-top:10px;"></td>      </tr>         </table>     </form>因此,本質(zhì)上,我想重寫上面的內(nèi)容,而用戶可以輸入一個或多個參數(shù),然后返回所需的結(jié)果(例如,名稱和學(xué)院名稱=x&College=y或如果需要的話所有項目)。我想我需要重新思考這兩個文件中的邏輯,但我愿意接受您的任何想法或建議,這個美妙的社區(qū)可能會有!如有任何建議/指導(dǎo),將不勝感激。
查看完整描述

3 回答

?
守候你守候我

TA貢獻(xiàn)1802條經(jīng)驗 獲得超10個贊

構(gòu)建WHERE從句動態(tài)我推薦的方法是將每個條件推到數(shù)組上,然后使用implode()連接所有條件,并將它們連接到ANDOR這是你的喜好。

$wheres = array();$params = array();if (!empty($_GET['id'])) {
    $wheres[] = 'a.uid = :uid';
    $params[':uid'] = $_GET['id'];}if (!empty($_GET['major'])) {
    $wheres[] = 'a.major = :major';
    $params[':major'] = $_GET['major'];}if (!empty($_GET['name'])) {
    $wheres[] = 'b.name LIKE :name';
    $params[':name'] = '%'.$_GET['name'].'%';}// And so on for all parameters$sql = "SELECT * 
        FROM user_details AS a
        JOIN user AS b ON a.uid = b.id";if (!empty($wheres)) {
    $sql .= " WHERE " . implode(' AND ', $wheres);}$stmt = $db->prepare($sql);$stmt->execute($params);

然后顯示結(jié)果,如您的原始代碼。

while ($student = $stmt->fetch()) {
    ...}


查看完整回答
反對 回復(fù) 2019-06-25
?
慕絲7291255

TA貢獻(xiàn)1859條經(jīng)驗 獲得超6個贊

如果您不打算更改數(shù)據(jù)庫中的任何內(nèi)容-您只是在選擇-請繼續(xù)使用GET而不是POST。這樣做的好處是它將允許您將URL保存為搜索字符串。您還可以刷新搜索,而不需要重新提交后警報。您只需要確保在將值發(fā)送到數(shù)據(jù)庫之前將其參數(shù)化。我通常會通過清理函數(shù)發(fā)送這些值,比如一個正則表達(dá)式,它確保只有在您期望字母時才有字母,或者如果您希望使用數(shù)字,則使用數(shù)字。

在同一頁(全部搜索):(我只想為你概述一下。)

<form action="<?= $_SERVER["REQUEST_URI"]; ?>" method="GET">
    <input name="major" value="<?= $_GET["major"]; ?>" />    <select name="college">
        <option value="1" <?PHP if( $_GET["college"] == 1 ) echo 'selected="true"'; ?>>Business</option>
    </select></form><?PHPif( ! empty( $_GET ) ){
    if (isset($_GET['major'])) {
       $wheres[] = 'a.major = :major';
       $params[':major'] = $_GET['major'];
    }
    if (isset($_GET['name'])) {
       $wheres[] = 'b.name LIKE :name';
       $params[':name'] = '%'.$_GET['name'].'%';
    }
    // And so on for all parameters

    $sql = "SELECT * 
        FROM user_details AS a
        JOIN user AS b ON a.uid = b.id";
    if (!empty($wheres)) {
        $sql .= " WHERE " . implode(' AND ', $wheres);
    }
    $stmt = $db->prepare($sql);
    $stmt->execute($params);}?>

現(xiàn)在你可以顯示你的數(shù)據(jù)了。

編輯:答案的另一半是我寫的,然后他寫了下半部分,所以我把它合并了.

此外,這方面的下一個復(fù)雜程度將是將PHP從搜索文件中取出,并將其放入另一個文件中。當(dāng)您按下表單中的搜索按鈕時,您將使用Ajax調(diào)用PHP元素。然后,PHP文件將通過Ajax返回結(jié)果。您可以返回預(yù)先格式化的HTML或JSON,并讓類似于JQuery的內(nèi)容為您顯示。


查看完整回答
反對 回復(fù) 2019-06-25
  • 3 回答
  • 0 關(guān)注
  • 532 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號