PDA

View Full Version : نمایش یک مقدار از مقادیر تکراری ذخیره شده در msql



haniye70
یک شنبه 20 اسفند 1391, 17:46 عصر
با سلام من نیاز به راهنمایی دارم

من می خوام از اطلاعات ذخیره شده درون دیتابیسم اطلاعات اون رو نمایش بدم
حالا می خوام اطلاعات تکراری بعضی از فیلد ها که اسمش ,country,city هست رومقادیر تکراریشون رو نشون ندم و فقط به یکیش نیاز دارم همین

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


SELECT DISTINCT * FROM mytabl where subgroupt=4

desatir7316
یک شنبه 20 اسفند 1391, 17:55 عصر
اگه منظورتون اینه که فیلد های city , country هردو توی یک جدول هستن و به ازای یک مقدار از یکی از فیلد ها مقدار اون یکی چند بار تکرار شده که باید از group by استفاده کنید،

haniye70
یک شنبه 20 اسفند 1391, 18:02 عصر
باتشکرازشما
ببینید من چندین هزار فیلد دارم توی یکی از تیبلهام
خوب بعضی از اطلاعات اونا تکراری هستن دیگه حالا من می خوام اطلاعات تکراری رو نشون ندم فقط یک نمونه ازشون رو نشون بدم
مثلا از کدوم کشور و کدوم شهر همین نه این که بیام مقادیر اون فیلد رو رو کنم چندین هزار اسم تکراری به من میده من فقط یکی شون رو می خوام نه همه تکراری ها

desatir7316
یک شنبه 20 اسفند 1391, 18:12 عصر
خواهش می کنم، ولی اگه می شه واضح تر بگید
ببنید، جدولتون همین دو تا فیلد رو داره؟
رکوردی مثل contry=iran , city = tehran بیش تر از بک باز ذخیره شده؟

البته با توجه به پست یک، فکر نکنم اینجوری باشه، چون در این صورت باید با distict حل میشد
می شه یه کم بیشتر توضیح بدین ؟

haniye70
یک شنبه 20 اسفند 1391, 18:29 عصر
با سپاس مجدد
ببینید من برای اطلاعات ذخیره شدم چندین فیلد دارم از جمله همن دوتا کشور و شهر خوب هر بار که کاربر ذخیره میکنه اینارو توی یکی از تیبل هام که مخصوص یوسرهام گذاشتم ذخیره میشه
خوب من می خوام کاربرام بتونند توسط یک منوی به کشور کاربر و شهر کاربر دسترسی داشته باشند مثلا توی منو کشورهای کاربران و شهرهای کاربران عضو شده رو نمایش بدم خوب

خوب این منو به صورت اچ تی ام ال هست یعنی بالای سایت قرار میگیره

من قبلش اومدم دوتا تیبل دیگه که توی یکی که هست اسامی کشورهارو وارد کردم که از خودتون هم گرفتم از مدیریت برای کشورها زیرگروه یا همون شهر هم ساختم
یک تیبل کشور
یک تیبل شهر
که کاربر هردوتای اونو درون یک لیست باکس ای جکس با تعغیر کشور زیر گروه یا شهر مورد نظر خودش رو انتخاب میکنه و ای دی اون لیست باکس ها رو به دیتا بیس می فرسته
من اومد برای ارسال مقادیر id هر کدوم رو فرستادم به دیتابیس تیبل یوسرم
مثلا در یک فیلد کشور عدد 75 کشور ایران و عدد 23 در شهر هم مثلا تهران رو فرستادم الان این مقادیر رو دارم راحت ذخیره میشه مشکلی ندارم
حالا مشکل من شورع میشه در نحوه نمایش اون
1-تعداد کشور کاربر ممکنه تکراری بشه و همینجور شهر اون من میخوام توی یک منوی ابشاری کشور و زیر گروه اون شهر رو نمایش بده و کشور ها و شهر های تکراری رو نمایش نده


کد من اینه که تلفیق با اچ تی ام ال هست




<li><a href='#'><span>کشور</span></a>
<ul>
<?
$result6t = $db->sql_query("SELECT * from ".$prefix."_user_item where subgroupt=4 ");
while ($row6 = $db->sql_fetchrow($result6t)) {
$row6['id'] = intval($row6['id']);
//$id= intval($row6['id']);
$subgroupt = $row6['subgroupt'];
$country= $row6['country'];
$city= $row6['city'];

$resultcountry = $db->sql_query("SELECT * from ".$prefix."_listbox WHERE id='$country'");
while ($row66 = $db->sql_fetchrow($resultcountry)) {
$ids= $row66['id'];
$sname= $row66['sname'];
////////////////////////
}
//if ($country==$ids){$namecountry=$sname;}
/////////////////////////////////////////
echo" <li class=\"has-sub\"><a href=\"#\">$sname</a>";


echo' <ul>';


$resultcity = $db->sql_query("SELECT * from ".$prefix."_listbox_sub WHERE id='$city'");
while ($row55 = $db->sql_fetchrow($resultcity)) {
$ids= $row55['id'];
$subname= $row55['subname'];
echo"
<li><a href=\"\">$subname</a></li>";
}
echo"</ul>";
}
?>
</ul>





کشور ها رو نمایش میده ولی نمی تونم جلوی تکراری بودنشون و همچنین نمایش زیرمجموه اون که شهر هست رو نمایش بدم به صورت دقیق


امیدوارم متوجه شده باشید:لبخند:

desatir7316
یک شنبه 20 اسفند 1391, 19:18 عصر
امیدوارم متوجه شده باشید
یه جورایی ... شدم تا فهمیدم :چشمک:


خوب من می خوام کاربرام بتونند توسط یک منوی به کشور کاربر و شهر کاربر دسترسی داشته باشند مثلا توی منو کشورهای کاربران و شهرهای کاربران عضو شده رو نمایش بدم خوب
فک کنم کاری شما که باهاش مشکل دارید همینه، درسته؟
یعنی می خواید فقط شهر ها و کشور هایی رو نشون بدید که قبلا کاربری عضو شده از اون کشور و شهر داشتید؟

SELECT DISTINCT * FROM mytabl where subgroupt=4
چیزی که من فهمیدم شما توی اون فرمتون که فقط می خواد این اطلاعات شهر و کشور رو بالای سایت نشون بدید از این استفاده کردید
این جدول شما ظاهرا فیلد های زیادی توش ذخیره شده، خوب باید هم اطلاعات تکراری دریافت کنید، باید فقط تو select فیلد های شهر و کشور رو انتخاب کنید تا distinct نسبت به اونا عمل کنه نه همه فیلدها
اگه چیزی رو اشتباه متوجه شدم بگید لطفا

desatir7316
یک شنبه 20 اسفند 1391, 19:54 عصر
$city= $row6['city'
.
.
.
$resultcity = $db->sql_query("SELECT * from ".$prefix."_listbox_sub WHERE id='$city'")


راستی اگه توی city$ مقدار رشته ای ذخیره کردید ، اینجا توی query دارید با id مقایسش می کنید، اگه نوع مقداراشون یکی نباشن خوب مشکل پیش میاد!!!