PDA

View Full Version : سیستم کامنت ساده نیاز به Join دارد؟



dddd10
جمعه 23 مرداد 1394, 12:39 عصر
سلام.
لطفا راهنمایی کنید همچین سیستمی که مد نظرمه به Join احتیاج داره؟ بنظرم خیلی ساده هست! البته پیاده سازی نکردم چون ذهنم درگیرش شده که میخواد یا نه!


جدول کامنت :
-id
-id_article
-name
-email
-subject
-message
خلاصه کد نویسی:

$id_article = $_GET['id'];$query = mysql_query(" select from * comment where `id_article` = "'.$id.'" ");

while($row = mysql_fetch_assoc($query)){
// codes
}

INERT:
$query = ("INSERT INTO `comment` VALUES('', '$id_article','$name','$email','$subject','$messag e') ");[/QUOTE]

Unique
جمعه 23 مرداد 1394, 18:03 عصر
وقتی به join نیاز دارین که میخواین اطلاعاتی را بر اساس دو تا جدول مرتبط load کنید. ولی مثلا اگه توی صفحه article هستین و id اون article را هم دارین دیگه نیاز به join نیست.

dddd10
پنج شنبه 29 مرداد 1394, 22:18 عصر
جناب Unique من این قسمتو با کمک شما نوشتم و حل شد.

میتونید بیشتر کمک کنید تا امکان ذخیره آیدی نویسنده هم داشته باشه؟ یعنی اگر کسی که کامنت میده از اعضای سایت باشه آیدیشو ذخیره کنه. در غیر این صورت معمولی باشه! یکم سخت واسه من

Unique
جمعه 30 مرداد 1394, 00:28 صبح
به هر حال شما باید بتونین بررسی کنید طرف لاگین هست یا نه که در این صورت اگه لاگین بود id نام کاربریش را دارین. حالا کافیه یک فیلد مثلا user توی جدول commect ها داشته باشین که در زمان insert اگه کاربر لاگین کرده بود id کاربر توش قرار بگیره و اگه نه هم null باشه. حالا با Join کردن جدول comment و user ها میتونید نام نویسنده comment را هم در بیارین و اگه Null بود هم میشه مهمان !

dddd10
جمعه 30 مرداد 1394, 11:21 صبح
سلام دوباره
قسمت اول را متوجه شدم چطوری باید از سشن آیدی کاربری که لاگین هست رو بدست بیارم.
اما Join رو میشه تکه کد بزارین؟ من تکه کدو میخونم و اگر متوجه جاییش نشم مجدد پست ارسال میکنم تا کمی در مورد ساختارش توضیح بدید. تشکر

Unique
جمعه 30 مرداد 1394, 14:44 عصر
چطوری باید از سشن آیدی کاربری که لاگین هست رو بدست بیارم.
در زمان لاگین وقتی چک میکنیم کاربر نام کاربری و گذرواژه را درست وارد کرده باشه عموما یک select یمگیریم که توی همین select میتونیم مقدار id کاربر را به دست بیاریم و وقتی میخوایم session مربوط به لاگین را ایجاد کنیم مقدار این id را هم توی session ذخیره میکنیم که بتونیم ازش استفاده کنیم :

select user_id from users where user_username = 'form_username' and user_password = 'form_password'


اما Join رو میشه تکه کد بزارین؟ من تکه کدو میخونم و اگر متوجه جاییش نشم مجدد پست ارسال میکنم تا کمی در مورد ساختارش توضیح بدید.
با فرض اینکه توی جدول comment یک فیلد به نام user داریم که ID کاربر را داره کافیه یک left join بزنیم :

select comment_subject,comment_message,comment_name,user_ fullname from comments left join users on user_id = comment_user where comment_article = 'get_articleid'

حالا اگه جواب query را فرض کنیم توی متغیر row$ داریم :

echo "<b>".$row['comment_subject']."</b><br>";
echo (!is_null($row['user_fullname']) ? $row['user_fullname'] : $row['comment_name'])."<br>";
echo $row['comment_message'];

dddd10
جمعه 06 شهریور 1394, 12:12 عصر
سلام دوباره
تصاویر جدول هام:
http://uupload.ir/files/fn3g_1111.jpg
http://uupload.ir/files/r654_2222.jpg
کد رو برای نمایش نوشتم اما هیچی نشون نمیده لطفا خودتون نگاه کنید:


<?php $id_article = $_GET['id']; $query_comment = mysql_query(" SELECT comment_date_time,comment_subject,comment_descript ion,users_fullname FROM `comment` left join `users` on users_id = comment_author_id where `comment_post_id` = '".$id_article."'"); while($row_comment = mysql_fetch_assoc($query_comment)){ ?> <div style="float:left; width: 100px;"> <?php echo $row_comment['comment_date_time']; ?></div> <div style=" float:right; width: 300px; text-align:right;"><?php echo $row_comment['user_fullname']; ?></div> <div style=" float:right; width: 500px; text-align:right;"><?php echo $row_comment['comment_subject']; ?></div> <div style=" float:right; width: 700px; text-align:right;"><?php echo $row_comment['comment_description']; ?></div> <?php } ?> </div>