PDA

View Full Version : ایجاد فیلد جستجو از نوع select (حل شد)



ساراعلی
یک شنبه 20 اردیبهشت 1394, 13:52 عصر
سلام و خسته نباشید به همه

لطفا دوستان اگه درمورد تگ select که برای هدف جستجو در محتوای سایت ایجاد شده توضیح بدید که چطوری ساخته میشه همه مراحلش از اول تا اخر به ترتیب چیکار باید انجام بدم و چطوری با ید نتایج به دست اومده رو نمایش بدم ممنون میشم خیلییییی فوری و ضروریههههه:اشتباه:

MMSHFE
یک شنبه 20 اردیبهشت 1394, 14:44 عصر
لطفاً بیشتر توضیح بدین. تگ Select و کلاً هیچ تگ دیگری به خودی خود ارتباطی به جستجو نداره. منظورتون رو واضحتر بیان کنید.

reza_alie
یک شنبه 20 اردیبهشت 1394, 15:37 عصر
سلام select در mysql، کوئری محسوب میشه نه تگ
به همین سادگی



$text=$_POST['text'];

$run=mysql_query("select * from `yourdatabase` where name=$text");

while($row=mysql_fetch_assoc($run))

{

echo $row['title'];


}

ساراعلی
دوشنبه 21 اردیبهشت 1394, 10:08 صبح
لطفاً بیشتر توضیح بدین. تگ Select و کلاً هیچ تگ دیگری به خودی خود ارتباطی به جستجو نداره. منظورتون رو واضحتر بیان کنید.

ببنید من یک فرم دارم که داخلش تگ select گذاشتم که چند تا option داره و میخوام وقتی کاربر یکی از این ایتم ها رو انتخاب کرد وارد صفحه action بشه و نتایج مربوط به انتخابش رو از دیتابیس بهش نشون بدم کلا میخوام باکس جستجو از نوع select باشه و بعدم نمیدونم چطوری باید نتایج رو بهش نشون بدم! کلا در مورد سرچ داخل خود سایت توضیح کامل میخوام چون دفعه اولم هست که میخوام روش کار کنم

ساراعلی
دوشنبه 21 اردیبهشت 1394, 10:11 صبح
سلام select در mysql، کوئری محسوب میشه نه تگ
به همین سادگی



$text=$_POST['text'];

$run=mysql_query("select * from `yourdatabase` where name=$text");

while($row=mysql_fetch_assoc($run))

{

echo $row['title'];


}



شما اشتباه متوجه شدید منظورم باکس جستجو از نوع select بود یعنی کاربر یک ایتم رو انتخاب کنه و بر اساس اون نتایج از دیتابیس بهش نشون داده بشه:متفکر:

arenaw
دوشنبه 21 اردیبهشت 1394, 11:00 صبح
توی اچ‌تی‌ام‌ال یه چنین چیزی:


<form method="post" action="action.php">
<select name="x">
<option value="one"> 1 </option>
<option value="two"> 2 </option>
</select>
<button type="submit"> Show </button>
</form>

و توی فایل action.php هم:


<?php
// meghdari ke be in safe ferestade shode
$x = $_POST['x'];
// vasl shodan be database
$dblink = mysql_connect('127.0.0.1','root','') or die();
// ejraye ye query ba sharte delkhah (inja dar surati ke FIELD barabar ba meghdare vurudi bashe)
$check = mysql_query("SELECT * FROM `DATABASE`.`TABLE` WHERE `FIELD` = '$x';");
// be ezaye recordhayi ke az database khundim, unaro neshun bede
while( $row = mysql_fetch_assoc($check) ){
print_r( $row );
echo '<hr/>';}
?>

توی فایل پی‌اچ‌پی توضیحات مربوط به هر خط رو کامنت کردم که متوجه شی.

ساراعلی
دوشنبه 21 اردیبهشت 1394, 13:22 عصر
توی اچ‌تی‌ام‌ال یه چنین چیزی:


<form method="post" action="action.php">
<select name="x">
<option value="one"> 1 </option>
<option value="two"> 2 </option>
</select>
<button type="submit"> Show </button>
</form>

و توی فایل action.php هم:


<?php
// meghdari ke be in safe ferestade shode
$x = $_POST['x'];
// vasl shodan be database
$dblink = mysql_connect('127.0.0.1','root','') or die();
// ejraye ye query ba sharte delkhah (inja dar surati ke FIELD barabar ba meghdare vurudi bashe)
$check = mysql_query("SELECT * FROM `DATABASE`.`TABLE` WHERE `FIELD` = '$x';");
// be ezaye recordhayi ke az database khundim, unaro neshun bede
while( $row = mysql_fetch_assoc($check) ){
print_r( $row );
echo '<hr/>';}
?>

توی فایل پی‌اچ‌پی توضیحات مربوط به هر خط رو کامنت کردم که متوجه شی.


این فرمم هست


<form action="examp.php" id="searchform" method="post">
<select name="selectcity" id="selectcity">
<option value="تهران" > تهران</option>
<option value="کرمان" > کرمان</option>
<option value="مشهد" >مشهد</option>
</select> <button type="submit" name="searchBtn"><img src="images/search_icon.png" width="40px" height="40px"></button> </form>


اینم کد php و اتصال به دیتابیس



$selectcity = $_POST['selectcity'];$con=mysql_connect("localhost","root","");mysql_select_db("startup2");

if (!$con){ die("no conn: <br />" . mysql_error());}mysql_query("SET CHARACTER SET utf8");

$sql = mysql_query("SELECT * FROM `startup2`. `client` WHERE `selectcity` = '$selectcity';");

if (!mysql_query($sql,$con)){ die('erro: <br />' . mysql_error());}else{

while ($row = mysql_fetch_assoc($sql)){

echo "<span style='color:#ff7805;'>عنوان:</span>","&nbsp;&nbsp;&nbsp",$row['onvan']; echo"<br/>";

ولی نمیدونم چرا این error میده؟؟

erro:
Query was empty
اگه کمکم کنید ممنون میشم

iker-casillas
دوشنبه 21 اردیبهشت 1394, 14:12 عصر
توی کوئری آخر اسم دیتابیس رو حذف کنید. وقتی بالاتر select_db رو زدید دیگه پایین نیازی ندارید از اسم دیتابیس استفاده کنید.

ساراعلی
دوشنبه 21 اردیبهشت 1394, 20:21 عصر
توی کوئری آخر اسم دیتابیس رو حذف کنید. وقتی بالاتر select_db رو زدید دیگه پایین نیازی ندارید از اسم دیتابیس استفاده کنید.

حذف کردم ولی بازم همون error میده:گریه:

MMSHFE
دوشنبه 21 اردیبهشت 1394, 20:25 عصر
دوست عزیز شما دوبار mysql_query رو صدا زدین. یکبار کوئری رو فرستادین براش و دفعه بعد نتیجه کوئری رو که یک resource هست. دفعه دوم خطا میگیرین. دستور دوم رو حذف کنید یا توی دستور اول فقط کوئری رو بعنوان یک متن توی sql$ بگذارین و از mysql_query استفاده نکنید.

ساراعلی
سه شنبه 22 اردیبهشت 1394, 11:15 صبح
دوست عزیز شما دوبار mysql_query رو صدا زدین. یکبار کوئری رو فرستادین براش و دفعه بعد نتیجه کوئری رو که یک resource هست. دفعه دوم خطا میگیرین. دستور دوم رو حذف کنید یا توی دستور اول فقط کوئری رو بعنوان یک متن توی sql$ بگذارین و از mysql_query استفاده نکنید.

مرسی از شما حل شد این مشکلم:لبخندساده: ولی بازم سوال داشتم در مورد همین مسئله search ! آخه چون اولین بار هست میخوام تو پروژم اجراش کنم میخوام توضیح بدید روند کار چطوریه:لبخندساده: حالا که دستور echo رو دادیم و داده ها رو در صفحه نمایش دادیم چطور میتونم مثل سایتهای آگهی که تو صفحه اول به ترتیب همه آگهی ها رو به صورت کلی نشون میدن بعد از کلیک کاربر روی هر کدوم از آگهی ها صورت کاملش با جزئیات تو یه صفحه دیگه نشون داده میشه؟؟؟ راهنماییم کنید ممنون میشم

MMSHFE
سه شنبه 22 اردیبهشت 1394, 11:18 صبح
خوب شما باید یک سری از جزئیات رو (نه همه) نشون بدین و یک لینک بگذارین به یک صفحه دیگه مثلاً اینطوری: details.php?id=5 و بجای 5، ID اون رکورد رو بنویسید. حالا توی صفحه details.php باید با $_GET['id'] شماره ID دریافتی رو بگیرین و توی دیتابیس پیداش کنید و کل اطلاعاتش رو نشون بدین.

ساراعلی
سه شنبه 22 اردیبهشت 1394, 13:00 عصر
خوب شما باید یک سری از جزئیات رو (نه همه) نشون بدین و یک لینک بگذارین به یک صفحه دیگه مثلاً اینطوری: details.php?id=5 و بجای 5، ID اون رکورد رو بنویسید. حالا توی صفحه details.php باید با $_GET['id'] شماره ID دریافتی رو بگیرین و توی دیتابیس پیداش کنید و کل اطلاعاتش رو نشون بدین.

ببخشد اگه میشه بیشتر در مورد Id توضیح بدید این قسمت رو
details.php?id=5 یعنی واسه href قرارش بدم؟؟؟

arenaw
سه شنبه 22 اردیبهشت 1394, 13:30 عصر
نگاه کنید. مثلا شما یه صفحه php به اسم test.php دارین.
توی حالت عادی این صفحه رو به صورت: www.x.com/test.php (http://www.x.com/test.php) اجرا میکنید.

اما اگه این صفحه رو به صورت www.x.com/test.php?city=tehran (http://www.x.com/test.php?city=tehran) اجرا کنید، داخل کدهای این صفحه میتونید اینطوری:


$_GET['city']

به مقدار ورودی city که اینجا برابر با tehran هست دسترسی پیدا کنید.
چیزی که ایشون گفتن، یعنی اینکه شما یک صفحه درست کنید که داخلش یه کوئری‌ای شبیه به این اجرا کنه و مقدار برگشتی از دیتابیس رو نمایش بده:


$check = mysql_query( "SELECT * FROM `startup2`. `client` WHERE `selectcity` = '$_GET[city]';" );
while ( $row = mysql_fetch_assoc($check) ) echo "عنوان: $row[onvan] <br>";
حالا توی صفحه اچ‌تی‌ام‌ال، وقتی شما این کد رو بنویسید:


<form method="GET" action="test.php">
<select name="city">
<option value="tehran"> Tehran </option>
<option value="ahwaz"> Ahwaz </option>
</select>
<button type="submit"> Show </button>
</form>

به طور مثال کاربر اگه گزینه‌ی Tehran از select رو انتخاب کنه و روی دکمه Show کلیک کنه، صفحه test.php به این صورت www.x.com/test.php?city=tehran (http://www.x.com/test.php?city=tehran) اجرا میشه.