PDA

View Full Version : دستورselectوپایگاه داده



rahele83
جمعه 01 مرداد 1389, 21:44 عصر
سلام من یه دستوردارم

<select name="cpu" >
<option selected="selected" > CPU موردنظر راانتخاب کنید </option>
<option value="1">تا 2 گیگا هرتز</option>
<option value="2">از 2 تا 2.5 گیگا هرتز</option>
<option value="3">از 2.5 تا 3 گیگا هرتز</option>
<option value="4">از 3 تا 3.5 گیگا هرتز</option>
<option value="5">از 3.5 تا 4 گیگا هرتز</option>
<option value="6">از 4 گیگا هرتز به بالا</option>


</select>

حالامیخام اطلاعات روازجدولم بگیرم
درجدولم یه ستون دارم به نام cpuکه اطلاعات دراون مثلا به این شکل dell cpu 2gh
dell cpu 2.5gh
dell cpu 2.6gh
چه طوربایدازدستوورات شرطی برای نوشت این کداستفاده کنم
که وقتی مثلاvalue="3 انتخاب شددرجدول لپ تاپ های دراین محدوده cpu روبیاره
ممنون

yasgig
جمعه 01 مرداد 1389, 22:07 عصر
<?php
include("connect.php");
$cpu = $_POST['cpu'];
if($cpu == '1')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu <= 2"));
}
if($cpu == '2')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu < 2.5 and cpu > 2"));
}
if($cpu == '3')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu < 3 and cpu > 2.5"));
}
if($cpu == '4')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu < 3.5 and cpu > 3"));
}
if($cpu == '5')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu < 4 and cpu > 3.5"));
}
if($cpu == '6')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu >= 4"));
}
?>

rahele83
جمعه 01 مرداد 1389, 23:30 عصر
ممنون ولی جواب نمیده کل dellهارومیاره محدوده بازه روتوجه نمیکنه

bestirani2
جمعه 01 مرداد 1389, 23:52 عصر
یا هنگام select از regexp استفاده کن و عبارت منظم مربوط به اون رو بنویس
یا بیا یک ستون دیگه اضافه کن که سرعت سی پی یو رو به صورت float وارد کنی

saied_genius
شنبه 02 مرداد 1389, 00:10 صبح
سلام

من PHP بلد نیستم ، ولی برای شرط های SQL از BETWEEN استفاده کن.

مثال:

select * from table_name where cpu BETWEEN 2 AND 2.5

موفق باشید.

bestirani2
شنبه 02 مرداد 1389, 00:27 صبح
مشکل این دوستمون این هست که ما یک رشته داریم و BETWEEN هم مربوط به اعداد هست
یا باید یک ستون دیگه که عددی باشه درست کنه یا با عبارت منظم بیاد بگه که هر جا
توی الگو عدد 2. و بعدش هم یکی از 1 2 3 4 5 آمد سری اول و الی آخر

rahele83
شنبه 02 مرداد 1389, 11:00 صبح
دوستان من الان توی جدولم یه ستون گذاشتم به نام cpu detail ازنوع float که فقط اعدادروتوی اون ریختم
ولی بازم به صورت کلی به من جواب میده بدون درنظرگرفتن بازه
مثلاوقتی مینویسم cpu detail<=2همه رومیاره حتی 3و3.2روبایدچیکارکنم

if($cpu=='2')
{
$result =mysql_query("select * from detail where 'cpu detail' BETWEEN 2 AND 2.5 and baner='$baner'");
}

ممنون

bestirani2
شنبه 02 مرداد 1389, 16:49 عصر
دوستان من الان توی جدولم یه ستون گذاشتم به نام cpu detail ازنوع float که فقط اعدادروتوی اون ریختم
ولی بازم به صورت کلی به من جواب میده بدون درنظرگرفتن بازه
مثلاوقتی مینویسم cpu detail<=2همه رومیاره حتی 3و3.2روبایدچیکارکنم

if($cpu=='2')
{
$result =mysql_query("select * from detail where 'cpu detail' BETWEEN 2 AND 2.5 and baner='$baner'");
}
ممنون
از پرانتز برای تعیین الویت استفاده کن

rahele83
شنبه 02 مرداد 1389, 17:08 عصر
متوجه منظورتون نشدم یعنی چی ازپرانتزمیشه بامثال توضیح بدید ممنون

bestirani2
شنبه 02 مرداد 1389, 17:36 عصر
if($cpu=='2')
{
$result =mysql_query("select * from detail where (cpu detail BETWEEN 2 AND 2.5) and (baner='$baner')");
} کدت رو دقیق قرار بده
شاید جای دیگه مشکل باشه

rahele83
شنبه 02 مرداد 1389, 19:07 عصر
سلام من یه جدول دارم توی پایگاه دادم که ازیک اکسل گرفتم اکسل روبه TXTتبدیل کردم ودرپایگاه ریختم یک ستون به نام cpu dtail دارم که اعداددراون قرارگرفته میخام وقتی کاربرانتخاب کردمحدودcpuروکه دراولین تایپیکم نوشتم <select>...
ازپایگاه داده ازاین ستون انتخاب کنه مثلااگربین2تا2.5خاست فقطاین محدوده ازcpu هاانتخاب بشه
ممنون

rahele83
شنبه 02 مرداد 1389, 21:17 عصر
؟هیچکس نمی تونه به من کمک کنه

rahele83
شنبه 02 مرداد 1389, 23:10 عصر
<?php
include("connect.php");
$cpu = $_POST['cpu'];
if($cpu == '1')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu <= 2"));
}
if($cpu == '2')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu < 2.5 and cpu > 2"));
}
if($cpu == '3')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu < 3 and cpu > 2.5"));
}
if($cpu == '4')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu < 3.5 and cpu > 3"));
}
if($cpu == '5')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu < 4 and cpu > 3.5"));
}
if($cpu == '6')
{
$query = mysql_fetch_array(mysql_query("select * from table_name where cpu >= 4"));
}
?>
من یه سوال داشتم اگرمن چندتا دیگه <select>

<select name="ram">
<option selected="selected"> RAM موردنظر راانتخاب کنید </option>
<option value="1">تا 1 گیگا بایت</option>
<option value="2">از 1 تا 2 گیگا بایت</option>
<option value="3">از 2 تا 3 گیگا بایت</option>
<option value="4">از 3 تا 4 گیگا بایت</option>
<option value="5">از 4 گیگا بایت به بالا</option>

</select>
,مثلا

<select name="hdd">
<option selected="selected">HDDموردنظرراانتخاب کنید</option>
<option >تا100گیگابایت</option>
<option>از100تا200گیگا بایت</option>
<option> از200تا300گیگا بایت</option>
<option>از300تا400گیگا بایت</option>
<option>از400تا500گیگابایت </option>
</select>

حالا چه طوربایدشرط اول روبذارم
ممنون

gardeshgar
یک شنبه 03 مرداد 1389, 10:15 صبح
سلام دوست من

1- براي ريختن اطلاعات از اكسل به mysql از import استفاده كن( مستقيما). خيلي از نرم افزار ها مثل navicat mysql گزينه import رو از طريق اكسل دارن. در ضمن دقت كن كه فيلد مربوط به جزئيات ، حتما float باشه

2- براي استفاده از چند select بايد داخل بانك براي هر كدوم يك فيلد داشته باشي. براي همه select ها از خاصيت name استفاده كني
<select name="hdd"></select>

بعد از اون ، توسط درستور $_POST مقادير پست شهد رو بخوني و دستور sql رو بسازي
مثلا:


Select * from table_name where ( hdd BETWEEN 2 AND 2.5) and ( ram < 2)

gardeshgar
یک شنبه 03 مرداد 1389, 10:19 صبح
سلام دوست من
1- براي ريختن اطلاعات از اكسل به mysql از import استفاده كن( مستقيما). خيلي از نرم افزار ها مثل navicat mysql گزينه import رو از طريق اكسل دارن. در ضمن دقت كن كه فيلد مربوط به جزئيات ، حتما float باشه
2- براي استفاده از چند select بايد داخل بانك براي هر كدوم يك فيلد داشته باشي. براي همه select ها از خاصيت name استفاده كني
<select name="hdd"></select>
بعد از اون ، توسط درستور $_POST مقادير پست شهد رو بخوني و دستور sql رو بسازي
مثلا:

Select * from table_name where ( hdd BETWEEN 2 AND 2.5) and ( ram < 2)

morteza_naderloo
یک شنبه 03 مرداد 1389, 13:05 عصر
سلام خوبین ببخسدمزاحم شدم ممنون بابت جواب به سوال من من یه سوال دیگه دارم ببخشید البته مشکلم اینه که چندتا < select>دارم نمیدونم باید چیکارکنم
سوالمواینجاگذاشتم
http://barnamenevis.org/forum/showthread.php?t=235223&page=2
کسی که به من جواب داده برای یه مورداز<select>نوشته من چه طوربایداین شرط هاروتوام باهم چک کنم ممنون
http://www.7laptop.com/Default.aspx?lng=fa&gid=aa21ff19-1f1c-4b63-99e7-9d26b8b85ba6&cid=home
توی این سایت اون<select>که مشتری باید انتخاب کنه روگذاشته
سايت رو ديدم
اگه مي خواهيد كه مثل اون سايت باشه نياز به يك كم AJAX,JAVA داره امام با php هم مي شه ولي اون موقه بايد select هارو يكي يكي نمايش بديد .
من جاوا و ايجكس بلد نيستم اما با پي اچ پي خيلي جالب در نمياد .

چيزي كه من از صحبتهاي شما متوجه شدم اينه :

شما يك جدول داريد كه مثلا دوتا فيلد داره به اسمهاي cpude كه اندازه سي پيو ها درش قرار مي گيره و cpu كه مدل توش قرار مي گيره .

فايل كانفيگ



$user='root';
$pass='';
$Mydb='amlaakdidani';

function connect($user,$pass,$Mydb){
$con=mysql_connect('localhost',$user,$pass);
if ($con){
//echo "<span class='ok'>ارتباط با خدمات دهنده پايگاه داده برقرار شد .</span><br/>";

$db_select=mysql_select_db($Mydb,$con);
if($db_select){
//echo "<span class='ok'>ارتباط با پايگاه داده $Mydb برقرار شد .</span><br/>";
}else {
//echo "<span class='no'>ارتباط با پايگاه داده $Mydb برقرار نشد . ممكن است پايگاه داده مورد نظر وجود نداشته باشد .</span><br/>";
}

}else{
//echo "<span class='no'>ارتباط با خدمات دهنده پايگاه داده برقرار نشد .</span><br/>";
}

}



include 'config.php';
echo "<select name='cpu' style='font-family:tahoma;font-size:9pt;' >";
echo "<option value='CPU' >CPU Power</option>";
connect ($user,$pass,$mydb);
$query="SELECT * FROM mydb WHERE cpude<=$vorody";
$result=mysql_query($query);
while($cpushow=mysql_fetch_array($result,MYSQL_ASS OC)){
echo "<option value=\"$cpushow[cpu]\" >$cpushow[cpude]</option>";
}

echo "</select>";




$vorody اون عددي هست كه كاربر وارد مي كنه اگه توضيح بيشتر خواستيد بگيد .

rahele83
یک شنبه 03 مرداد 1389, 14:29 عصر
سلام ببخشید مزاحم می شم
من فکرمیکنم شمامتوجه منظورمن نشدید

<select name="baner">
<option selected="selected">مدل مورد نظرراانتخاب کنید</option>
<option value="DELL">DELL</option>
<option value="SONY">SONY</option>
<option value="HP">HP</option>
<option value="MSI">MSI</option>
<option value="TOSHIBA">TOSHIBA</option>
<option value=" LENOVO">LENOVO</option>
<option value="ASUS">ASUS</option>
</option>
</select>
<BR />
<BR />

<select name="cpu" >
<option selected="selected" > CPU موردنظر راانتخاب کنید </option>
<option value="1">تا 2 گیگا هرتز</option>
<option value="2">از 2 تا 2.5 گیگا هرتز</option>
<option value="3">از 2.5 تا 3 گیگا هرتز</option>
<option value="4">از 3 تا 3.5 گیگا هرتز</option>
<option value="5">از 3.5 تا 4 گیگا هرتز</option>
<option value="6">از 4 گیگا هرتز به بالا</option>


</select>


<BR />
<BR />
<select name="ram">
<option selected="selected"> RAM موردنظر راانتخاب کنید </option>
<option value="1">تا 1 گیگا بایت</option>
<option value="2">از 1 تا 2 گیگا بایت</option>
<option value="3">از 2 تا 3 گیگا بایت</option>
<option value="4">از 3 تا 4 گیگا بایت</option>
<option value="5">از 4 گیگا بایت به بالا</option>

</select>
<BR />
<BR />
<select name="vga">
<option selected="selected" > VGAموردنظر راانتخاب کنید </option>
<?php
include 'db.php';
$sql = mysql_query("select vga from detail");
while($row=mysql_fetch_array($sql))
print'<option value="'.$row['vga'].'">'.$row['vga'].'</option>';
?>

</select>
<br />
<br />
<select name="hdd">
<option selected="selected">HDDموردنظرراانتخاب کنید</option>
<option >تا100گیگابایت</option>
<option>از100تا200گیگا بایت</option>
<option> از200تا300گیگا بایت</option>
<option>از300تا400گیگا بایت</option>
<option>از400تا500گیگابایت </option>
</select>
<BR>
<BR />
<select name="lcd">
<option selected="selected">LCD موردنظرراانتخاب کنید</option>
<option value="1">تا 10 اینچ</option>
<option value="2">از 10 تا 12 اینچ</option>
<option value="3">از 12 تا 14 اینچ</option>
<option value="4">از 14 تا 16 اینچ</option>
<option value="5">از 16 تا 18 اینچ</option>
<option value="6">از 18 اینچ به بالا</option>

</select>
<BR>
<BR />
<select name="weight">
<option selected="selected">وزن موردنظرراانتخاب کنید</option>

<option value="1">زیر 1 کیلوگرم</option>
<option value="2">بین 1 تا 1.5 کیلوگرم</option>
<option value="3">بین 1.5 تا 2 کیلوگرم</option>
<option value="4">بین 2 تا 2.5 کیلوگرم</option>
<option value="5">بین 2.5 تا 3 کیلوگرم</option>


</select>ببینید من مشکلم درکدنویسی برای این همه <selesct>من توی پایگاهم چندتاجدول دارم به نام های cpu hdd weight وبقیه ی name های <select<حالاچه طورکدهای شرطی برای چک کردن اون چیزیکه کاربرانتخاب کرده روبنویسم تاازپایگاهم selectکنم
ممنون
........................................

morteza_naderloo
دوشنبه 04 مرداد 1389, 17:33 عصر
سلام من يك بار خدمتتون عرض كردم اگه مي خواهيد وقتي در سلكت اول سي پيو رو انتخاب كنيد اطلاعات مربوط به جدول اندازه سي پيو ها بياد بايد يكم از جاوا استفاده كنيد يا ايجكس ، بنده نه ايجكس نه جاوا بلد نيستم . فقط يككم پي اچ پي

rahele83
چهارشنبه 06 مرداد 1389, 21:36 عصر
کسی نمیتونه مشکله منوحل کنه

mohmadd
چهارشنبه 06 مرداد 1389, 23:06 عصر
دقیقا مشکلتون چیه ؟؟
یه بار کامل توضیح بدید, اگه بنده توانایی پاسخ نداشته باشم از بقیه دوستان کمک میگیرم.
ویرایش :
الان سایتتون رو دیدم مشکلی نداشت (سرعت پردازنده)

rahele83
پنج شنبه 07 مرداد 1389, 14:12 عصر
سلام ببینید من یه فرم دارم که به شخص قدرت انتخاب رومیده که ازبین مثلا سی پیوها وکارت گرافیکیووزن وچیزای دیگه که درپایگاه من هست انتخاب کنه لپ تاپی که میخادمن مشکلم درنوشتن کدپی اچ پی که نمیدونم چه طوروقتی چندتا selectدرفرم دارم کدروبنویسم
مثلااگرشخص مدل 1وسی پی 2کارت گرافیکی 1وزن 2...روانتخاب کنه چه طورباید دستورروبنویسم که select بشه ازپایگاه من برای تمام این موارد ستون جداگانه ای دارم درپایگاه ممنون