PDA

View Full Version : سوال: جلوگیری از تکرار کوئری



mohmmad6006
سه شنبه 26 دی 1391, 12:47 عصر
من میخوام تعداد پست ها رو برای کاربران مختلف نمایش بده

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


mysql_select_db($database_dbconnection, $dbconnection);
$query_Recordset1 = "SELECT postid, `date`, `time`, user_id, now FROM `post` WHERE user_id = 21";
$Recordset1 = mysql_query($query_Recordset1, $dbconnection) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);


حالا با استفاده از دستور زیر:


<?php echo $totalRows_Recordset1 ?>

تعداد پست های ارسالی از طرف کاربر شماره 21 رو نشون میده

حالا اگه بخوام مثلا برای 5 تا کاربر مختلف این ها رو نشون بده اونوقت باید برای 5 کاربر مختلف یک recordset جدا بنویسم؟

راهش چیه؟

Unique
سه شنبه 26 دی 1391, 13:25 عصر
مربوط به این انجمن نیست ولی بخاطر اینکه کارتون راه بیفته :


select user_id,count(*) as totalposts from post group by user_id

حالا id همه کاربران با تعداد پستهاشون را بهتون میده با یک query اگه هم میخواین با username باشه باید join کنید :


select post_user,user_username,count(*) as totalposts from post inner join users on user_id = post_user group by post_user

mohmmad6006
چهارشنبه 27 دی 1391, 15:24 عصر
مربوط به این انجمن نیست ولی بخاطر اینکه کارتون راه بیفته :


select user_id,count(*) as totalposts from post group by user_id




ببخشید من تازه کارم این یک آرایه میده به نام totalposts حالا از این چطوری استفاده کنم؟

مثلا این آرایه میشه

user_id count
50 1
70 2
90 3

میخوام خروجی تعداد شمارشی که برای user_id شماره 3 انجام داده نشون بده

Reza1607
پنج شنبه 28 دی 1391, 08:54 صبح
اينم كد آماده


$result=mysql_query("select user_id,count(*) as totalposts from post group by user_id");
while($row=mysql_fetch_assoc($result)){
echo 'User ID : '.$row['user_id'].'<br />Count Post : '.$row['totalposts'].'<hr />';
}

mohmmad6006
پنج شنبه 28 دی 1391, 16:55 عصر
اينم كد آماده


$result=mysql_query("select user_id,count(*) as totalposts from post group by user_id");
while($row=mysql_fetch_assoc($result)){
echo 'User ID : '.$row['user_id'].'<br />Count Post : '.$row['totalposts'].'<hr />';
}


این کارمو راه انداخت

حالا این user_id یک شماره هست ولی من تو یک تیبل دیگه با نام users نام یوزر ها رو نوشتم حالا میخوام تو دستور قبلی که مثلا مینویسه user_id=5 بره از تیبل users نام یوزر شماره 5 رو بخونه و تو دستور به جای نمایش user_id = 5 نام این یوزر رو با استفاده از جدول users نشون بده

Unique
جمعه 29 دی 1391, 12:33 عصر
باید از join استفاده کنین ! پست ها را کامل نمیخونین دوست من ! من توی پست شماره 2 این موضوع را هم متذکر شدم.