تالار گفتمان nCIS.ir

نسخه‌ی کامل: نشان دادن اسم category و پست دهنده با استفاده از id در صفحه مدیریت پست
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام خداقوت
من با استفاده از پکیچ پایه تا پیشرفته شما 10 جلسه اول یه سایت بلاگ درست کردم تو صفحه مدیریت پست میخوام با استفاده از user_id و cat_id
اسامی category  و پست دهنده رو صدا بزنم باید join کنم؟
و اینکه هر دو مورد باید به صورت select  باشه تو فرم؟
چطور میتونم برای درج کردن از id استفاده کنم؟
ممنون
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')
(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';
  
  ?>


یه سوال دیگه استاد اینکه برای درج کردن پست جدید چطور اسم دسته بندی و پست دهنده رو فراخوانی کنم ؟ممنون
استاد میشه کمکم کنید من سر این قسمت به مشکل خوردم
راستش متوجه نشدم دقیقاً مشکل کجاست. کدی که گذاشتم درست کار میکنه.
سلام.این رو امتهان کنید به جوابتون میرسید.
<?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;}

?>