PDA

View Full Version : لیست کردن داده های تکراری دیتابیس



tick-tock
سه شنبه 15 بهمن 1392, 16:49 عصر
سلام . من میخوام داد های تکراری دیتابیس را جایی لیست کنم .
(تصویر ضمیمه را مشاهده کنید )
116399

درواقع میخوام ستون vilasale_id اگه داده تکراری داشت (مثل 25 که دو بار داریم و یا 23 . ) مقدار ستون وسطی که آدرس فایل را مشخص میکنه نشان داده شود . ( میخوام گالری تصاویر بسازم برای پروژم )

اگه راهنماییم کنید ممنون میشم ازتون

mbf5923
سه شنبه 15 بهمن 1392, 17:11 عصر
سلام

select img from table where vilasale_id in(SELECT vilasale_id FROM table group by vilasale_id HAVING COUNT(*) > 1)

tick-tock
سه شنبه 15 بهمن 1392, 17:32 عصر
سلام .
مشکلی که الان دارم اینه که وقتی مقدار 23 ستون vilasale_id را echo میکنم فقط upload/32.jpg را چاپ میکنه . درصورتی که من میخوام هم upload/32.jpg و هم upload/4.jpg را چاپ کنه .

باید شرطی بنویسم که هردو رو چاپ کنه ولی نمیدونم چطور !!؟؟

mbf5923
سه شنبه 15 بهمن 1392, 17:55 عصر
کدی رو که بکار بردین قرار بدین

tick-tock
جمعه 02 اسفند 1392, 12:35 عصر
با سلام .
کدی که ارائه کردید به خوبی کار کرد ولی مشکلی که من دارم اینجاست که تمام داده های تکراری را در همه پست ها نشان میده و من میخوام کاری کنم که (طبق تصویر اول)
uploads/2.jpg
uploads/pooster1-2.jpg
که برای پست 25 است فقط در همین پست نشان داده شوند و همینطور برای مابقی

کد من برای صفحه showpost به این صورته :



$sql="select imgaddress from vilasaleimg where vilasale_id in(SELECT vilasale_id FROM vilasaleimg group by vilasale_id HAVING COUNT(*) > 1)";
$result = mysql_query($sql,$link);
while($row=mysql_fetch_array($result))
{

echo "<br>" . $row[0];
}



این هم صفحه showpost

116940

Mr.Moghadam
جمعه 02 اسفند 1392, 21:49 عصر
برای اینکار بهتره که از دستور in استفاده نشه به خاطر اینکه سرعت کار رو میاره پایین در دیتاهای زیاد.
از کوئری زیر استفاده کنید ببینید جواب میده یا نه :


select * from vilasaleimg as a
inner join (
select vilasale_id from vilasaleimg
group by vilasale_id
HAVING COUNT(*) > 1
) b
ON a.vilasale_id = b.vilasale_id

tick-tock
شنبه 03 اسفند 1392, 22:15 عصر
متشکرم ولی مشکل من چیز دیگست . اونم اینه که من میخوام وقتی کاربر وارد صفحه با id =25 میشه تصاویر با آدرس
uploads/2.jpg
uploads/pooster1-2.jpg
نشان داده بشه و نه تمام داده های تکراری داخل دیتابیس

tick-tock
شنبه 03 اسفند 1392, 23:27 عصر
من از این کد استفاده کردم کار میکنه ولی نمیدونم که آیا از لحاظ امنیتی و سرعت مناسب هست یا نه .
اول id صفحه را ازطریق کد زیر دریافت کردم


$myid=$_GET['id'];



بعد اومدم به این صورت عمل کردم



$sql="select imgaddress from vilasaleimg where vilasale_id LIKE $myid";
$result = mysql_query($sql,$link);
while($row=mysql_fetch_array($result))
{

echo "<img src='". $row[0] . "' />";
}



نظرتون چیه ؟؟