راکت
حل شده

فرم جستجو برای php برای mysqli یا mysql

4 پاسخ

سلام,
من چطور میتونم یه فرم جستجو بسازم که توی پایگاه داده mysql جستجو کنه مثلا آی دی رو؟

ثبت پرسش جدید

پاسخ‌ها

4
میلاد خسروی
میلاد خسروی
@milwad

تخصص: برنامه نویس بامزه

بهترین پاسخ

سلام خسته نباشید
اگه از php pure استفاده میکنی باید از LIKE استفاده کنی خیلی سادس و راحت میتونی درست کنی

ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

باید از LIKE تو sql استفاده کنی.
آموزش Like تو w3schools
یه سوال مشابه تو stackoverflow
نمونه:

SELECT FROM table_name WHERE content LIKE {%$search%}

$search متغیری هست که چیزی که جستجو شده توش ذخیره شده. tablename هم اسم جدول
اینجا با این Sql تو جدول tablename دنبال سطری گشتیم که ستون content توش $search وجود داره.
اون علامت های درصد(%) دور $search برای اینکه بگیم هرجای content بود فرقی نداره
مثلا اگه % رو بعد $search قرار بدی دنبال چیزی میگرده که search$ تو اول ستون content وجود داشته باشه. تو همون صفحه آموزش Like همه حالت های استفاده % رو توضیح داده

رایموند
رایموند
@Raymond

تخصص: مختصص وردپرس - برنامه نویس لاراول

شاید پاسخ شما همین‌جا باشد

صدرا
صدرا
@sadra.dev

تخصص: برنامه نویسی تحت وب

سلام. ممنون
گذاشتم نشد.
میشه بگید کجا هارو باید ویرایش کنم یا مشکلش چیه؟
کد index.php {

<?php
    $conn = mysqli_connect("localhost", "admin", "sa1389dra", "php-chat");  
    $with_any_one_of = "";
    $with_the_exact_of = "";
    $without = "";
    $starts_with = "";
    $search_in = "";
    $advance_search_submit = "";

    $queryCondition = "";
    if(!empty($_POST["search"])) {
        $advance_search_submit = $_POST["advance_search_submit"];
        foreach($_POST["search"] as $k=>$v){
            if(!empty($v)) {

                $queryCases = array("with_any_one_of","with_the_exact_of","without","starts_with");
                if(in_array($k,$queryCases)) {
                    if(!empty($queryCondition)) {
                        $queryCondition .= " AND ";
                    } else {
                        $queryCondition .= " WHERE ";
                    }
                }
                switch($k) {
                    case "with_any_one_of":
                        $with_any_one_of = $v;
                        $wordsAry = explode(" ", $v);
                        $wordsCount = count($wordsAry);
                        for($i=0;$i<$wordsCount;$i++) {
                            if(!empty($_POST["search"]["search_in"])) {
                                $queryCondition .= $_POST["search"]["search_in"] . " LIKE '%" . $wordsAry[$i] . "%'";
                            } else {
                                $queryCondition .= "title LIKE '" . $wordsAry[$i] . "%' OR description LIKE '" . $wordsAry[$i] . "%'";
                            }
                            if($i!=$wordsCount-1) {
                                $queryCondition .= " OR ";
                            }
                        }
                        break;
                    case "with_the_exact_of":
                        $with_the_exact_of = $v;
                        if(!empty($_POST["search"]["search_in"])) {
                            $queryCondition .= $_POST["search"]["search_in"] . " LIKE '%" . $v . "%'";
                        } else {
                            $queryCondition .= "title LIKE '%" . $v . "%' OR description LIKE '%" . $v . "%'";
                        }
                        break;
                    case "without":
                        $without = $v;
                        if(!empty($_POST["search"]["search_in"])) {
                            $queryCondition .= $_POST["search"]["search_in"] . " NOT LIKE '%" . $v . "%'";
                        } else {
                            $queryCondition .= "title NOT LIKE '%" . $v . "%' AND description NOT LIKE '%" . $v . "%'";
                        }
                        break;
                    case "starts_with":
                        $starts_with = $v;
                        if(!empty($_POST["search"]["search_in"])) {
                            $queryCondition .= $_POST["search"]["search_in"] . " LIKE '" . $v . "%'";
                        } else {
                            $queryCondition .= "title LIKE '" . $v . "%' OR description LIKE '" . $v . "%'";
                        }
                        break;
                    case "search_in":
                        $search_in = $_POST["search"]["search_in"];
                        break;
                }
            }
        }
    }
    $orderby = " ORDER BY id desc"; 
    $sql = "SELECT * FROM users " . $queryCondition;
    $result = mysqli_query($conn,$sql);
?>
<form name="frmSearch" method="post" action="index.php">
    <input type="hidden" id="advance_search_submit" name="advance_search_submit" value="<?php echo $advance_search_submit; ?>">
    <div class="search-box">
        <label class="search-label">With Any One of the Words:</label>
        <div>
            <input type="text" name="search[with_any_one_of]" class="demoInputBox" value="<?php echo $with_any_one_of; ?>"  />
            <span id="advance_search_link" onClick="showHideAdvanceSearch()">Advance Search</span>
        </div>              
        <div id="advanced-search-box" <?php if(empty($advance_search_submit)) { ?>style="display:none;"<?php } ?>>
            <label class="search-label">With the Exact String:</label>
            <div>
                <input type="text" name="search[with_the_exact_of]" id="with_the_exact_of" class="demoInputBox" value="<?php echo $with_the_exact_of; ?>"   />
            </div>
            <label class="search-label">Without:</label>
            <div>
                <input type="text" name="search[without]" id="without" class="demoInputBox" value="<?php echo $without; ?>" />
            </div>
            <label class="search-label">Starts With:</label>
            <div>
                <input type="text" name="search[starts_with]" id="starts_with" class="demoInputBox" value="<?php echo $starts_with; ?>" />
            </div>
            <label class="search-label">Search Keywords in:</label>
            <div>
                <select name="search[search_in]" id="search_in" class="demoInputBox">
                    <option value="">Select Column</option>
                    <option value="title" <?php if($search_in=="title") { echo "selected"; } ?>>Title</option>
                    <option value="description" <?php if($search_in=="description") { echo "selected"; } ?>>Description</option>
                </select>
            </div>
        </div>

        <div>
            <input type="submit" name="go" class="btnSearch" value="Search">
        </div>
    </div>
</form>

نتیجه دریافتی از مرورگر :
 تصویر

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام