رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نشان دادن اسم category و پست دهنده با استفاده از id در صفحه مدیریت پست
#1
سلام خداقوت
من با استفاده از پکیچ پایه تا پیشرفته شما 10 جلسه اول یه سایت بلاگ درست کردم تو صفحه مدیریت پست میخوام با استفاده از user_id و cat_id
اسامی category  و پست دهنده رو صدا بزنم باید join کنم؟
و اینکه هر دو مورد باید به صورت select  باشه تو فرم؟
چطور میتونم برای درج کردن از id استفاده کنم؟
ممنون
پاسخ
تشکر شده توسط:
#2
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 نوشته:
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')

استاد ممنون 
من نتونستم کدها رو قرار بدم  میتونید بیشتر راهنماییم کنید
این کدهای صفحه پست
<?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'] . '" onclick="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
سلام.این رو امتهان کنید به جوابتون میرسید.
<?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'].'  "onClick="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;}

?>
پاسخ
تشکر شده توسط:




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