PDA

View Full Version : سوال: جستجوی دو فیلد جدا در دیتابیس در یک textbox



ali.a.j
سه شنبه 07 شهریور 1391, 16:01 عصر
با سلام به همه دوستان.
من دو تا فیلد برند و مدل در دیتابیس دارم که هردوتاشون رو تحت عنوان مدل لپ تاپ به کاربر نمایش می دم مثلا sony w200 که sony در دیتابیس brand هست و w200 در دیتابیس مدل.و حالا "یک" textbox برای جستجو گذاشتم و می خوام که کاربر اگه زد sony w20 براش بیاره.اما توجه کنید که اینا دو تا فیلد جدا در دیتا بیس هستند.
من برای فیلد برند یا مدل به تنهایی می تونم عملیات جستجو را انجام بدم.مثلا اگه بزنم sony کار میکنه یا اگه بزنم 20 مدل sony w200 رو میاره.اما اگه بزنه sony w200 نمیاره.دوستان می تونن کمک کنند؟؟؟ممنون می شم.

meisam12
سه شنبه 07 شهریور 1391, 17:43 عصر
سلام
در طراحی دیتا بیست بین اون دو جدول ارتباط برقرار کردی؟
اگر برقرار کردی باید بین جدولت join بزنی.

ali.a.j
سه شنبه 07 شهریور 1391, 18:02 عصر
من یک جدول دارم و اون دو تا فیلد در یک جدول قرار دارند.پس عملا Join اینجا کاربردی نداره.

kamrannazari
سه شنبه 07 شهریور 1391, 18:37 عصر
select * from table where name=@txt or model=@txt or name+' '+model=@txt


يا بار با نام مقايسه مي كني يك بار با مدل و بار ديگر با هر دو
البته مي توني از like هم استفاده كني
و به جاي فاصله هايي كه كاربر زده شما با علامت % جايگزين كني

ali.a.j
سه شنبه 07 شهریور 1391, 18:53 عصر
ممنون از شما.من با Like نوشتمش قبلا.اما مثل اینکه مشکل از اینجاس.
cmd.Parameters.AddWithValue("model", TextBox1.Text);
cmd.Parameters.AddWithValue("brand", TextBox1.Text);

و برای دستور جستجو نوشتم


select * from laptop where brand like'%'+ @brand +'%' or model like'%'+ @model +'%'

کدی که شما می گید رو اگه بخوام بنویسم نمی شه چون برای آخرش که گفتید @txt باید چی بنویسم.@model یا @brand ??

ali.a.j
سه شنبه 07 شهریور 1391, 20:40 عصر
کسی از دوستان می تونن کمک کنند؟ خیلی برام مهمه.ممنون

ali.a.j
چهارشنبه 08 شهریور 1391, 17:46 عصر
لطفا اساتید یه کمکی بکنند.هرکاری می کنم نمی شه.ممنون میشم.

hamidkh
چهارشنبه 08 شهریور 1391, 19:05 عصر
سلام
اون کاری که دوستمون kamrannazari گفتند درسته. اونو انجام بدین کارتون راه میفته

ali.a.j
چهارشنبه 08 شهریور 1391, 19:29 عصر
اون کاری که گفتند نمیشه

select * from table where name=@txt or model=@txt or name+' '+model= @*****

می شه بگید بجای ستاره ها باید @brand بذارم یا @model???????????????
این کد دستور من

select * from table where brand or model=@model or brand+' '+model= @*****

جای ستاره رو لطفا پر کنید

hamidkh
چهارشنبه 08 شهریور 1391, 22:47 عصر
cmd.Parameters.AddWithValue("model", TextBox1.Text);
cmd.Parameters.AddWithValue("brand", TextBox1.Text);
دوست عزیز شما که یکبار محتوای تکست باکس رو به عنوان پارامتر اضافه کردین. بین model و brand فرقی نیس. لزومی هم نداره یکبار یکبار شرط را چک کنید. همون brand+' '+model رو بگذارید کفایت میکنه. اگر هم میخواهید میتونید همونطور که دوستمون گفت به جای فاصله از % استفاده کنید.

select * from table where brand+' '+model like @model
cmd.Parameters.Add("model", OleDbType.VarChar).Value = "%" + TextBox1.Text + "%";

pooyamakarachi
دوشنبه 27 شهریور 1391, 13:42 عصر
دوستان میشه یه کمک هم به من برسونید !!!!!!!!!!رئیسم بدجوری بهم گیر داده ..............میخوام قابلیت جستجو بر اساس دو موضوع یا بیشتر داشته باشم که به صورت زیر نوشتمش
<form action="search.php" method="get">
<fieldset>
<table>
<tr>
<td> name:</td>
<td><input name="tag" type="text" id="tag" size="15"/></td>
</tr>
<tr>
<td> sys_name: </td>
<td><input sys_name="tag" type="text" id="tag" size="15"/></td>
</tr>
<tr>
<td>month:</td>
<td><input month="tag" type="int" id="tag" size="15"/></td>
</tr>
<tr>
<td>day:</td>
<td><input day="tag" type="int" id="tag" size="15"/></td>
</tr>
<tr><td>&nbsp;</td>
<td><input type="submit" value="search" /></td>
</tr>
</table>
</fieldset>
</form>


</form>

</body>
ولی صفحه search.php رو بلد نیستم بنوسم ........میشه لطف کنین کمکم کنید

pooyamakarachi
دوشنبه 27 شهریور 1391, 13:46 عصر
راستی ادرس ایمیل من mahsa.zade@yahoo.com هست و اینکه از php mysql استفاده میکنم ..........مرسییییییییی از کمکتون