صدرا
3 سال پیش توسط صدرا مطرح شد
4 پاسخ

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

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


ثبت پرسش جدید
میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
0

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


ASPgo
تخصص : HTML، CSS، PHP و JS، طراح قالب...
@asp.gosk 3 سال پیش آپدیت شد
0

باید از 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 3 سال پیش مطرح شد
صدرا
تخصص : برنامه نویسی تحت وب
@sadra.dev 3 سال پیش مطرح شد
0

سلام. ممنون
گذاشتم نشد.
میشه بگید کجا هارو باید ویرایش کنم یا مشکلش چیه؟
کد 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>

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


میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
0

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


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

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