رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کار نکردن redirectو query
#1
<?php
function showform($post) {
   echo '<h1>' . ($post['id'] === '' ? 'New post' : 'Edit &quot;' . $post['title'] . '&quot;') . '</h1>' . PHP_EOL;
   echo '<hr />' . PHP_EOL;
   echo '<form  class="form-group" method="post" action="" >';
   if ($post['id'] !== '') {
       echo '<input name="id" type="hidden" value="' . $post['id'] . '" />' . PHP_EOL;
   }
   $confirmed = ($post['confirmed'] ? ' checked="checked"' : '');
   echo <<<EOT
<div class="form-group">
   <label class="col-sm-3 label-control" for="idcategory">IdCategory:</label>
   <input class="col-sm-5 form-control" id="idcategory" type="text" name="idcategory" value=" {$post['category_id'] }"/>
</div>
<div class="form-group">
   <label class="col-sm-3 label-control" for="title">Title:</label>
   <input class="col-sm-5 form-control" id="title" type="text" name="title" value="{$post['title']}"/>
</div>
<div class="form-group">
   <label class="col-sm-3 label-control" for="abstract">Abstract:</label>
   <input class="col-sm-5 form-control" id="abstract" type="text" name="abstract" value="{$post['abstract']}"/>
</div>
<div class="form-group">
   <label class="col-sm-3 label-control" for="body">Body:</label>
   <input class=" col-sm-5 form-control" id="body" type="text" name="body" value="{$post['body']}"/>
</div>
<div class="form-group">
   <label class="col-sm-3 label-control" for="confirmed">Confirmed</label>
   <div class="col-sm-1">
       <input{$confirmed} class="form-control" id="confirmed" name="confirmed" type="checkbox" />
   </div>
</div>
<div class="form-group">
   <div class="col-sm-offset-3 col-sm-5">
       <input class="btn btn-success btn-block" value="save" type="submit" />
   </div>
</div>

EOT;
echo '</form>';
}


case 'edit':
    if (isset($_POST['title'], $_POST['id'], $_POST['id_category'], $_POST['abstract'], $_POST['body'], $_POST['confirmed'])) {
        $id = dbEscape($_POST['id']);
        $idcategory = dbEscape($_POST['id_category']);
        $title = dbEscape($_POST['title']);
        $abstract = dbEscape($_POST['abstract']);
        $body = dbEscape($_POST['body']);
        $confirmed = ($_POST['confirmed'] ? '1' : '0');
        dbQuery("UPDATE `posts` SET `id_category`={$idcategory},`title`={$title},`abstract`={$abstract},`body`={$body},`confirmed`={$confirmed}  WHERE (`id`={$id});");
        redirect(basename(__FILE__));
    } else {
        $id = encode($_GET['id']);
        $posts = dbArrayQuery("SELECT * FROM `posts` WHERE `id`={$id}");
        $post = $posts[0];
        showform($post);
    }
    break;
پاسخ
تشکر شده توسط:
#2
اگه میبینید کار نمیکنه، یکبار خطای MySQL رو با کمک تابع dbError که توضیح دادیم چاپ کنید ببینید چه خطایی وجود داشته که آپدیت انجام نمیشه.
پاسخ
تشکر شده توسط:
#3
تابع error هم نوشتم ولی بازم editانجام نمیشه
پاسخ
تشکر شده توسط:
#4
با اجازه از استاد شهرکی عزیز ...

WHERE (`id`={$id});"

این ; احساس میکنم نیازی نباشه

راستی فکر کنم وجود کتیشن (') برای مقادیر الزامی باشه یعنی به جای {$id} از '{$id}' استفاده کنید
پاسخ
تشکر شده توسط:
#5
متد dbEscape خودش کوتیشن اضافه میکنه. ضمناً سمی کالن آخر کوئری اختیاریه ولی توی کوئری استاندارد لازمه.
پاسخ
تشکر شده توسط:




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