2015-04-28 4 views
0

Я использую уникальный ключ для имени поля, но когда я обновляю запись, используя файл редактирования через admin, это дает мне ошибку для дублирования записи. Я не могу удалить уникальный ключ, это необходимо ..UPDATE sql-поле с использованием уникального ключа

<!--update process--> 
<?php 
if(isset($_POST['submit']) and !empty($_POST['token'])){ 
print_r($_POST); 
$name = $_POST['name']; 
$size = $_POST['size']; 
$linkt = $_POST['link']; 
$seeds = $_POST['seeds']; 
$leechs = $_POST['leechs']; 
$active = $_POST['active']; 

$query = "UPDATE tplus_torrentlist SET name = '$name', size = '$size', link = '$linkt', seeds = '$seeds', leechs = '$leechs', active = '$active'"; 

$result = mysqli_query($link, $query) or die(mysqli_error($link)); 

$error = mysqli_error($link); 
if(empty($error)){ 
    $_SESSION['flash'] = '<blockquote style="background: green; color: #fff">One record updated</blockquote>'; 
    header('location:dashbord.php'); 
} 
else{ 
    $_SESSION['flash'] = '<blockquote style="background: green; color: #fff">Sorry cant updated this record</blockquote>'; 
    header('location:dashbord.php'); 
} 
} 
?> 
<!--fetch values from database according to id--> 

<?php 
$sql = "SELECT * FROM tplus_torrentlist WHERE id = $id limit 1"; 
$result = mysqli_query($link ,$sql) or die(mysqli_error($link)); 
$row = $result->fetch_array(); 
?> 

<div class="container"> 
<div class="row clearfix"> 

    <div class="col-md-8 col-md-offset-2"> 
     <?php if(!empty($response)){echo $response;} ?> 
     <h3>Edit this torrent</h3> 
     <hr/> 
     <form role="form" class="form" action="edit.php?id=<?php echo $_GET['id']?>" method="POST"> 

      <label>Name</label> 
      <input type="text" name="name" value="<?php echo $row['name']?>" class="form-control input-sm"> 

      <label>Size</label> 
      <input type="text" name="size" value="<?php echo $row['size']?>" class="form-control input-sm"> 

      <label>Link</label> 
      <input type="text" name="link" value="<?php echo $row['link']?>" class="form-control input-sm"> 

      <label>Seeds</label> 
      <input type="text" name="seeds" value="<?php echo $row['seeds']?>" class="form-control input-sm"> 

      <label>Leechs</label> 
      <input type="text" name="leechs" value="<?php echo $row['leechs']?>" class="form-control input-sm"> 

      <label>Active</label> 
       <select name="active" class="form-control input-sm"> 
       <?php if($row['active'] ==0){?> 
       <option value="0">Active</option> 
       <option value="1">InActive</option> 
        <?php }else{ ?> 
       <option value="1">InActive</option> 
       <option value="0">Active</option> 
         <?php } ?> 
      </select> 

      <br/> 
      <input type="hidden" name="token" value="<?php echo rand(100, 100000)?>"> 
      <input type="submit" name="submit" value="update torrent" class="btn btn-info"> 
     </form> 
    </div> 

</div> 
</div> 

Любое решение без удаления уникального ключа из поля 'name'?

+3

Ваш запрос на обновление требует ИНЕКЕ. – Dave

ответ

0

Ваш запрос на обновление необходимо исправить следующим образом -

$query = "UPDATE tplus_torrentlist SET name = '$name', size = '$size', link = '$linkt', seeds = '$seeds', leechs = '$leechs', active = '$active' WHERE id = $id limit 1"; 
+0

Почему 'limit 1'? В чем смысл «предела» здесь? –

+0

Это зависит от вас, вы можете или не можете использовать это, но для безопасной стороны используйте это – Prakash

+0

Безопасная сторона для чего? 'id' уже является первичным ключом, есть еще один уникальный ключ. Что еще может пойти не так? Зачем использовать код, который ничего не делает, а затем предложить то же самое другим людям? –

Смежные вопросы