PDA

View Full Version : سوال: بازگشت ستون های مورد نظر پس از ارسال کوئری



DelDard
دوشنبه 23 اسفند 1395, 15:46 عصر
سلام دوستان برنامه نویس.

عنوان سوال خیلی مبهمه میدونم :) عنوان بهتری به ذهنم نرسید.

فرض کنید ما کوئری زیر رو با PDO میفرستیم به سرور:


SELECT id FROM guys WHERE name LIKE :keyword OR lastname LIKE :keyword OR nikname LIKE :keyword


فرض کنید این کوئری بالا رو برای تمام ستون های تیبل (اطلاعات موجود در پرونده هر کاربر) ادامه میدم مثلا نام پدر و غیره رو هم اضافه کنم
خب حالا سرچ میکنم علی، کاربر هایی که تو پروندشون علی بوده میاره و منم لینکش رو با id که گرفتم میسازم و نشون میدم.

خب تا اینجا که مشکلی نیست ولی سوال اینه که اگه من بخوام تو همون صفحه نتایج جست وجو نشون بدم که تو کدام مشخصه کاربر کلمه "علی" یافت شده چی؟
یعنی تو نتایج مثلا بزنه

1- نام: علی __ لینک پرونده
2- نام خانوادگی: علی یاری __ لینک پرونده
3- نام پدر: علی رضا __ لینک پرونده

البته یه راه سادش اینه که بجای id بزنم * و وقتی همه ستون ها رو گرفتم توی کد چک کنم کدوم "علی" داره بعد همون رو نشون بدم. اما خب این راه به نظرم بهینه نیست یا حداقل حرفه ایی نیست.
اگه من بخام جوری باشه که خود کوئری که میفرستم در جواب به من بگه این کلمه در کدوم ستون پیدا شده باید چی کار کنم به نظر شما؟


شرمنده من کوئری نویسیم یه ذره ضعیفه و انصافن نمیدونم باید چی سرچ کنم دقیقا . هر چی هم "اسکریپت سرچ با php" تو گوگل سرچ کردم راه حلی که اینو گفته باشه پیدا نکردم.

ممنون از راهمنایی های شما عزیزان.

مهرداد سیف زاده
سه شنبه 24 اسفند 1395, 08:12 صبح
این کار رو با sql میشه ولی بصورت query ساده نمیشه
با stored procedure میتونید ابتدا query بزنید و بعد بریزید توی variable و از طریق تاریع INSTR محل کلمه رو در اون فیلد بگیرید. این تابع اگر 0 برگردونه یعنی کلمه شما در اون رشته نبوده. بعد از هر کدوم از این مقدارها رو میتونید توی یک فیلد مجازی بدید کاربر.