۱۰ سینا علیزاده
کار نکردن Query String برای ارسال ریکوئست به سرور
جامعه پی اچ پی ایجاد شده در ۰۵ آبان ۱۴۰۱

سلام. وقت بخیر

وقتی این ریکوئست و میفرستم لیست همه شهرها به درستی گرفته میشه:

http://localhost/iran-api/api/v1/cities

ولی وقتی با Query String زیر به سرور ریکوئست میزنم به جای گرفتن شهرهایی که آیدی استانشون 25 هست، بازم لیست همه ی شهرها رو میگیره. مثل اینکه Query String اصلا اعمال نمیشه. دقیقا کد‌های توی ویدیو رو نوشتم ولی بازم کار نمیکنه.

http://localhost/iran-api/api/v1/cities/?province_id=25

علتش چی میتونه باشه؟

استاد امکانش هست این سوال مارو جواب بدید????

سینا علیزاده ۰۶ آبان ۱۴۰۱، ۰۲:۲۷

سلام سینا جان

در ابتدا یه توضیحی خدمتت بدم که زمان پاسخگویی ۲۴ تا ۴۸ ساعت کاری است ?

یه var_dump بگیر سمت سرور ببین آیا در GET_$ کلیدی که میخوای هست یا نه

محمد گازری ۰۶ آبان ۱۴۰۱، ۱۲:۰۵

استاد با عرض معذرت اصلا حواسم نبود که امروز جمعه‌‌‌‌‌‌‌س???

بله var_dump گرفتم ولی پارامتر province_id تو $_GET نیست.

سینا علیزاده ۰۶ آبان ۱۴۰۱، ۱۲:۲۴

پروژت با بکپا پایگاه داده رو بفرس رو گیتهایب

محمد گازری ۰۶ آبان ۱۴۰۱، ۱۲:۴۲

استاد فرستادم ولی هنوز کار نمیکنه

سینا علیزاده ۰۶ آبان ۱۴۰۱، ۱۲:۵۷
سینا علیزاده ۰۷ آبان ۱۴۰۱، ۰۶:۳۳

$_GET["province_id"] که در دسترس هست!

089f-Screenshot 2022-10-31 at 20.05.39.png

محمد گازری ۰۹ آبان ۱۴۰۱، ۱۶:۳۶

بخدا استاد من دامپ کردم نبود ولی الان که تست کردم هستش اما استاد هنوز اون دیتایی که برمیگردونه درست نیست نمیدونم چرا اصن مقدار $province_id رو اعمال نمیکنه!!!

سینا علیزاده ۰۹ آبان ۱۴۰۱، ۱۶:۵۳
function getCities($data = null){
    global $pdo;
    $province_id = $data['province_id'] ?? null;
    $where = '';
    if(!is_null($province_id) && is_numeric($province_id)){ # <----------the "is_int" to "is_numeric" replaced
        $where = "where province_id = {$province_id} ";
    }
    $sql = "select * from city $where";
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $records = $stmt->fetchAll(PDO::FETCH_OBJ);
    return $records;
}

استاد اینجا وقتی کد‌های SQL دکتر رو تو قسمت شرط if تغییر دادم درست شد!!

تفاوت "is_int()" با "is_numeric()" چیه؟؟

وقتی اون رو به "is_numeric()" تغییر دادم دیتای درست رو برگردوند!!!

سینا علیزاده ۰۹ آبان ۱۴۰۱، ۱۸:۲۳
is_int() checks the type of variable, while is_numeric() checks the value of the variable

موفق باشی سینا جان

بهترین پاسخ
محمد گازری ۱۱ آبان ۱۴۰۱، ۰۷:۳۰