رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نشان دادن اسم category و پست دهنده با استفاده از id در صفحه مدیریت پست
#1
سلام خداقوت
من با استفاده از پکیچ پایه تا پیشرفته شما 10 جلسه اول یه سایت بلاگ درست کردم تو صفحه مدیریت پست میخوام با استفاده از user_id و cat_id
اسامی category  و پست دهنده رو صدا بزنم باید join کنم؟
و اینکه هر دو مورد باید به صورت select  باشه تو فرم؟
چطور میتونم برای درج کردن از id استفاده کنم؟
ممنون
پاسخ
تشکر شده توسط:
#2
1
2
3
4
SELECT `p`.*,`u`.`name` AS `user`,`c`.`name` AS `category` FROM `posts` `p`
LEFT JOIN `users` `u` ON `p`.`user_id`=`u`.`id`
LEFT JOIN `categories` `c` ON `p`.`category_id`=`c`.`id`
WHERE (`p`.`id`='5')
پاسخ
تشکر شده توسط: maryam22
#3
(06-08-1394، 02:36 ب.ظ)ADMIN نوشته:
1
2
3
4
SELECT `p`.*,`u`.`name` AS `user`,`c`.`name` AS `category` FROM `posts` `p`
LEFT JOIN `users` `u` ON `p`.`user_id`=`u`.`id`
LEFT JOIN `categories` `c` ON `p`.`category_id`=`c`.`id`
WHERE (`p`.`id`='5')

استاد ممنون 
من نتونستم کدها رو قرار بدم  میتونید بیشتر راهنماییم کنید
این کدهای صفحه پست
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<?php
if(!isset($_SESSION)) {
   session_start();
}
require_once  str_replace('\', '/', dirname(dirname(__FILE__))) .'/config.php';
require_once ROOT . 'inc/db.php';
require_once ROOT . 'inc/functions.php';
require_once ROOT . 'inc/jdf.php';
require_once ROOT . 'admin/header.php';
$po = array(
               'id' => 0,
               'user_id' =>'',
               'cat_id'  =>'',
               'title'   =>'',
               'body'    =>'',
               'ts'      =>'',
               'visible' => true,
);
if(isset($_GET['action'], $_GET['id'])) {
   $id = intval($_GET['id']);
   settype($_GET['action'], 'string');
   switch(strtolower($_GET['action'])) {
       case 'change':
           $post = ArrayQuery("SELECT * FROM `posts` WHERE (`id`='{$id}')");
           if(count($post) > 0) {
               $visible = ($post[0]['visible'] ? '0' : '1');
           }
           Query("UPDATE `posts` SET `visible`='{$visible}' WHERE (`id`='{$id}')");
           if(AffectedRows() > 0) {
               echo '<p class="alert alert-success">دسته بندی موردنظر با موفقیت ویرایش شد.</p>' . PHP_EOL;
           }
           else {
               echo '<p class="alert alert-danger">دسته بندی موردنظر ویرایش نشد.</p>' . PHP_EOL;
           }
           break;
       case 'delete':
           Query("DELETE FROM `posts` WHERE (`id`='{$id}')");
           if(AffectedRows() > 0) {
               echo '<p class="alert alert-success">دسته بندی موردنظر با موفقیت حذف شد.</p>' . PHP_EOL;
           }
           else {
               echo '<p class="alert alert-danger">دسته بندی موردنظر یافت نشد.</p>' . PHP_EOL;
           }
           break;
       case 'edit':
           $post = ArrayQuery("SELECT * FROM `posts` WHERE (`id`='{$id}')");
           if(count($post) > 0) {
               $po = $post[0];
           }
           break;
   }
}
if(count($_POST) > 0) {
   $id = intval($_POST['id']);
    
   $title = DBEscape($_POST['title']);
   $body = DBEscape($_POST['body']);
   $ts = time();
   $visible = (isset($_POST['visible']) ? '1' : '0');
   if($id == 0) {
       Query("INSERT INTO `posts` VALUES (NULL,'{$title}','{$body}' ,'{$ts}','{$visible}')");
   }
   else {
       Query("UPDATE `posts` SET `title`='{$title}', `body`='{$body}',`visible`='{$visible}' WHERE (`id`='{$id}')");
   }
   if(AffectedRows() > 0) {
       echo '<p class="alert alert-success">عملیات با موفقیت انجام شد.</p>';
       $post = ArrayQuery("SELECT * FROM `posts` WHERE (`id`='{$id}')");
       if(count($post) > 0) {
           $po = $post[0];
       }
   }
   else {
       echo '<p class="alert alert-danger">به علت بروز خطا، عملیات انجام نشد. مجدداً سعی کنید.</p>';
   }
}
?>
<p class="alert alert-info">درج پست جدید</p>
<form action="" class="form-horizontal" method="post">
<input name="id" type="hidden" value="<?php echo $po['id']; ?>" />
          <div class="form-group">
               <label for="inputParent" class="col-sm-2 control-label">پست دهنده</label>
               <div class="col-sm-3">
               <select class="form-control" id="inputParent" name="parent">
                  <option value="">- انتخاب کنید - </option>
                   <?php
                        
                           echo '<option value="' . $po['user_id'] . '">' . HTMLEscape($po['user_id']) . '</option>' . PHP_EOL;
                        
                   ?>
               </select>
               </div>
           </div>
            
           <div class="form-group">
               <label for="inputParent" class="col-sm-2 control-label">دسته بندی</label>
               <div class="col-sm-3">
               <select class="form-control" id="inputParent" name="parent">
                  <option value="">- انتخاب کنید - </option>
                   <?php
                        
                           echo '<option value="' . $po['cat_id'] . '">' . HTMLEscape($po['cat_id']) . '</option>' . PHP_EOL;
                        
                   ?>
               </select>
               </div>
           </div>
 
           <div class="form-group">
               <label for="inputtitle" class="col-sm-2 control-label">عنوان</label>
               <div class="col-sm-3">
                   <input class="form-control" id="inputtitle" name="title" placeholder="عنوان" required type="text" value="<?php echo $po['title']; ?>" />
               </div>
           </div>
           <div class="form-group">
                       <label for="inputBody" class="col-sm-2 control-label">متن</label>
                       <div class="col-sm-3">
                       <textarea  class="form-control" id="inputBody" name="body" required="required" placeholder="متن" rows="5" style="resize:none;"><?php echo $po['body']; ?></textarea>
                       </div>
           </div>
                    
           <div class="form-group">
               <label for="inputVisible" class="col-sm-2 control-label">نمایش</label>
               <div class="col-sm-1">
                   <input<?php echo ($po['visible'] ? ' checked="checked"' : ''); ?> class="form-control" id="inputVisible" name="visible" type="checkbox" />
               </div>
           </div>
            
           <div class="form-group">
               <div class="col-sm-offset-2 col-sm-10">
                   <?php
                   if ($po['id'] == 0) {
                   ?>
                   <button class="btn btn-success" type="submit"><span class="fa fa-check"></span> درج </button>
                   <?php
                   }
                   else {              
                   ?>
                   <button class="btn btn-warning" type="submit"><span class="fa fa-list"></span> ویرایش </button>
                   <?php
                   }
                   ?>
               </div>
           </div>
       </form>
<hr />
<?php
$posts = ArrayQuery("SELECT * FROM  `posts` ORDER BY `id`");
if(count($posts) > 0) {
 echo '<table class="table table-bordered table-condensed table-hover">' . PHP_EOL;
 echo '<tr class="warning">
         <th width="30px">ردیف</th>
         <th width="50px">پست دهنده</th>
         <th width="70px">دسته بندی</th>
         <th width="110px"; hieght="auto"; owerflow:"hidden";>عنوان</th>
         <th width="280px"; hieght="auto"; owerflow:"hidden";>متن</th>
         <th width="80px"; hieght="auto"; owerflow="hidden";text-align="center";>تاریخ و زمان</th>
         <th width="205px">عملیات</th>
           
         </tr>' . PHP_EOL;
         foreach ($posts as $post) {
             echo '<tr class="' . ($post['visible'] ? 'success' : 'danger') . '">' . PHP_EOL;
             echo '<td>' . $post['id'] . '</td>';
             echo '<td>' .HTMLEscape($post['user_id']) . '</td>';  
             echo '<td>' . HTMLEscape($post['cat_id']) .'</td>';
             echo '<td>' . HTMLEscape($post['title']) . '</td>';
             echo '<td>' . HTMLEscape($post['body']) . '</td>';
             echo '<td>' . jdate('Y/m/d H:i:s' , $post['ts']) . '</td>';
             echo '<td>';
             echo '<a class="btn btn-warning btn-sm" href="?action=edit&id=' . $post['id'] . '">ویرایش</a> ';
             echo '<a class="btn btn-danger btn-sm" href="?action=delete&id=' . $post['id'] . '" o<strong></strong>nclick="return confirm('آیا مطمئن هستید؟');">حذف</a> ';
             echo '<a class="btn btn-info btn-sm" href="?action=change&id=' . $post['id'] . '">' . ($post['visible'] ? 'عدم نمایش' : 'نمایش') . '</a>';
             echo '</td>';
             echo '</tr>' . PHP_EOL;
         }
 echo '</table>' . PHP_EOL;  
}
else {
   '<p class="alert alert-danger"> پست یافت نشد</p>' . PHP_EOL;
}
require_once ROOT . 'admin/footer.php';
   
  ?>


یه سوال دیگه استاد اینکه برای درج کردن پست جدید چطور اسم دسته بندی و پست دهنده رو فراخوانی کنم ؟ممنون
پاسخ
تشکر شده توسط:
#4
استاد میشه کمکم کنید من سر این قسمت به مشکل خوردم
پاسخ
تشکر شده توسط:
#5
راستش متوجه نشدم دقیقاً مشکل کجاست. کدی که گذاشتم درست کار میکنه.
پاسخ
تشکر شده توسط: maryam22
#6
سلام.این رو امتهان کنید به جوابتون میرسید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
<?php
if(!isset($_SESSION)){
session_start();
}
 
require_once str_replace('\', '/', dirname(dirname(__FILE__))) . '/config.php';
require_once ROOT .'inc/db.php';
require_once ROOT .'inc/functions.php';
require_once ROOT .'inc/jdf.php';
require_once ROOT .'admin/header.php';
if(!isset($_SESSION['uid'], $_SESSION['uname'])) {
Redirect(ADDR . 'admin/login.php');
}
?>
 <?php
  
 $post=array(
 'id'=>0,
 'user_id'=>'',
 'cat_id'=>'',
 'title'=>'',
 'body' =>'',
 'ts'=>'',
 'visible'=>'',
 );
  
  
if(isset($_GET['cmd'],$_GET['id'])){
$ID=intval($_GET['id']);
settype($_GET['cmd'],'string');
switch(strtolower($_GET['cmd'])){
case 'delete':
Query("DELETE FROM `posts` WHERE  (`id`='{$ID}')");
if(Affected_Rows()>0){
echo '<p class="alert alert-info"> پست مورد نظر با موقیت حذف گردید.</p>'.PHP_EOL;
}
else{echo '<p class="alert alert-warning"> پست مورد نظر یافت نشد.</p>'.PHP_EOL;}
break;
case 'edit':
$posts=ArrayQuery("SELECT * FROM `posts` WHERE (`id`='{$ID}') ");
if(Affected_Rows()>0){
if(count($posts)>0){
$post=$posts[0];
 
}
}
break;
case 'change':
$posts=ArrayQuery("SELECT * FROM `posts` WHERE (`id`='{$ID}') ");
if(Affected_Rows()>0){
if(count($posts)>0){
$visible=($posts[0]['visible']? '0' : '1');
}
Query("UPDATE   `posts` SET `visible`='{$visible}' WHERE (`id`='{$ID}') ");
}
 
break;
}
 
}
//-----------------//
if(count($_POST)>0){
 
$row=intval($_POST['id']);
$userid=$_POST['user_id'];
$catid=dbEscape($_POST['cat_id']);
$title=dbEscape($_POST['title']);
$body=dbEscape($_POST['body']);
$ts=time();
$visible = (isset($_POST['visible']) ? '1' : '0');
if($row==0){
Query("INSERT INTO `posts` (`id`, `user_id`, `cat_id`, `title`, `body`, `ts`, `visible`)
VALUES(NULL,'$userid','{$catid}','{$title}','{$body}','$ts','$visible')");
}
else{
Query("UPDATE `posts` SET
`user_id`='{$userid}',`cat_id`='{$catid}',`title`='{$title}',`body`='{$body}',`ts`='{$ts}',
`visible`='{$visible}' WHERE `id`='{$row}'");
}
if(Affected_Rows()>0){
echo '<p class="alert alert-info"> عملیات با موفقیت انجام شد.</p>'.PHP_EOL;
$posti = ArrayQuery("SELECT * FROM `posts` WHERE (`id`='{$row}')");
if(count($posti) > 0) {
$post = $posti[0];
}
}
else{
echo '<p class="alert alert-warning"> عملیات با موفقیت انجام نشد.</p>'.PHP_EOL;
}
 
 
}
 
 
 
 
 
?>
<div class="well">
   <p class="alert alert-info">ثبت پست</p>
   <form action="" class="form-horizontal" method="post">
   <input type="hidden" name="id" value="<?PHP echo $post['id'];?>">
         <div class="form-group">
           <label for="inputParent" class="col-sm-2 control-label"> نویسنده</label>
           <div class="col-sm-3">
               <select class="form-control" id="inputParent" name="user_id" name="parent">
                  
                   <?php
                   $sql=Query("SELECT * FROM `users` ");
                  while($_u=mysql_fetch_assoc($sql)){
$state="";
if($_u['id']==$post['user_id'])
$state="selected";
echo '<option  '.$state.' value="'.$_u['id'].'"> '.HTMLEscape($_u['name']).'</option>'.PHP_EOL;  
   
}
 
 
                   ?>
               </select>
           </div>
       </div>
    
       <div class="form-group">
           <label for="inputParent" class="col-sm-2 control-label">گروه</label>
           <div class="col-sm-3">
               <select class="form-control" id="inputParent" name="cat_id" name="parent" >
 
                   <?php
                   $sql=Query("SELECT * FROM `categories`");
                   while ($_h=mysql_fetch_assoc($sql)){
$state="";
if($_h['id']==$post['cat_id'])
$state="selected";
   echo '<option  '.$state.' value="'.$_h['id'].'"> '.HTMLEscape($_h['name']).'</option>'.PHP_EOL;
 
}
 
                   ?>
               </select>
           </div>
       </div>
    
       <div class="form-group">
           <label for="inputname" class="col-sm-2 control-label">عنوان</label>
           <div class="col-sm-3">
               <input class="form-control" id="inputname" name="title" placeholder="عنوان" type="text" value="<?php echo $post['title'];?>" />
           </div>
       </div>
       <div class="form-group">
           <label for="inputname" class="col-sm-2 control-label">متن</label>
           <div class="col-sm-3">
 
               <textarea  class="form-control"
               id="inputBody" name="body" placeholder="متن" required rows="5" style="resize: none;"><?php echo $post['body'];?>
               </textarea>
                 
           </div>
       </div>
       <div class="form-group">
           <label for="inputvisible" class="col-sm-2 control-label">نمایش</label>
           <div class="col-sm-1">
               <input <?PHP echo ($post['visible']? 'checked ="checked"' :'');?> class="form-control" id="inputvisible" name="visible" placeholder="نمایش"  type="checkbox" />
           </div>
       </div>
       <div class="form-group">
           <div class="col-sm-offset-2 col-sm-10">
           <?php
if($post['id']==0){
 
?>
            <button class="btn btn-success" type="submit">ثبت</button>
           <?php
    }
else{
?>
            <button class="btn btn-warning" type="submit">ویرایش</button>
            <?php
}
?>
           </div>
       </div>
   </form>
</div>
 
 
 
 
<?php
$post=ArrayQuery("SELECT * FROM `posts` ORDER BY `id` ASC");
if(count ($post)>0){
echo '<table class="table table-striped" >'.PHP_EOL;
echo '<tr class="warning"><th width="50px">ردیف</th><th>نام کاربر</th><th>نام گروه</th><th>عنوان</th><th>متن</th><th>تاریخ</th><th width="205px" >عملیات</th></tr>'.PHP_EOL;
foreach($post as $p){
   echo '<tr class="'.($p['visible'] ? 'success' : 'danger').'">';
   echo '<td> '.$p['id'].'</td>';
$user=ArrayQuery("SELECT `name` From `users` WHERE(`id`='{$p['user_id']}')");
foreach($user as $u){
echo '<td>'.HTMLEscape($u['name']).'</td>';
}
$catname=ArrayQuery("SELECT `name` FROM `categories` WHERE (`id`='{$p['cat_id']}')");
foreach ($catname as $c){
echo '<td>'.HTMLEscape($c['name']).'</td>';
}
 
echo '<td>'.HTMLEscape($p['title']).'</td>';
echo '<td>'.HTMLEscape($p['body']).'</td>';
echo  '<td>'.tr_num(jdate('Y/m/d H:i:s',$p['ts']),'fa').'</td>'.PHP_EOL;
echo '<td>';
echo '<a class="btn btn-warning btn-sm  " href="posts.php?cmd=edit&id='.$p['id'].' ">ویرایش</a>';
echo '<a class="btn btn-danger btn-sm" href="posts.php?cmd=delete&id='.$p['id'].'  "o<strong></strong>nClick="return confirm('آیا برای حذف رکورد مورد نظر مطمئن هستید؟');">حذف</a>';
echo '<a class="btn btn-info btn-sm" href="posts.php?cmd=change&id='.$p['id'].' ">'.($p['visible'] ? 'نمایش' : 'عدم نمایش').'</a>';
echo '</td>';
echo '</tr>'.PHP_EOL;
}
echo '</table>'.PHP_EOL;
}
else{echo '<p class="alert alert-danger">متاسفانه هیچ گروهی یافت نگردید.</p>'.PHP_EOL;}
 
?>
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: