За последние 24 часа нас посетил 40341 программист и 1277 роботов. Сейчас ищут 1414 программистов ...

Проверка на наличие записи в БД

Тема в разделе "PHP для новичков", создана пользователем darkgod, 20 янв 2009.

  1. darkgod

    darkgod Активный пользователь

    С нами с:
    31 мар 2008
    Сообщения:
    201
    Симпатии:
    0
    Привет всем!

    Вот возник вопрос...

    Я сделал проверку поля на аналогичный текст (т.е. до отправки формы в базу у меня идет запрос на проверку аналогичной записи), т.е. если например при добавлении новости название в точности повторяет уже существующее в базе, то выводится сообщение об ошике. На этом этапе все работает как нужно!

    Но при редактировании новости так сделать не могу, т.е. если например редактирую и название оставляю без изменения, то мне выдает ошибку что такая запись уже есть в базе, а надо чтобы у этой новости это поле пропускалось.

    Помогите модифицировать код ниже, чтобы при редактировании новости ошибка не вылазила, но в тоже время если изменить название на другое (которое уже есть в базе у другой новости), то выдавалась ошибка!

    Код (Text):
    1. <?
    2. // Это запрос на наличие аналогичных записей
    3. $sql=$db->query("SELECT COUNT(id_info) FROM info WHERE link_info='".mysql_real_escape_string($_POST['link_info'])."'");
    4.     if($db->fetchrow($sql, 0) > 0)
    5.     {
    6.         $err[] = 'Данная запись уже есть в базе';
    7.     }
    8.     if(count($err) == 0)
    9.     {
    10. // Если ошибки небыло, отправляем
    11.           $sql=$db->query("UPDATE info SET link_info='$link_info'  WHERE id_info=".$_POST['idup']);
    12. }
    13.     else
    14.     {
    15.         print "Ошибка: ";
    16.         foreach($err AS $error)
    17.         {
    18.             print $error."";
    19.         }
    20.      }
    21. ?>
     
  2. djunkie

    djunkie Активный пользователь

    С нами с:
    19 ноя 2008
    Сообщения:
    134
    Симпатии:
    0
    при нажатии кнопки "редактировать"
    PHP:
    1. <?php $edit = true; ?>
    при проверке существования заголовка новости
    PHP:
    1. <?php if($db->fetchrow($sql, 0) > 0) && $edit != true; ?>
    по завершении редактирования и записи новости в базу делать
    PHP:
    1. <?php unset $edit; ?>
     
  3. darkgod

    darkgod Активный пользователь

    С нами с:
    31 мар 2008
    Сообщения:
    201
    Симпатии:
    0
    Не работает и выдает ошибку: syntax error, unexpected T_BOOLEAN_AND в строке
    PHP:
    1. <?php if($db->fetchrow($sql, 0) > 0) && $edit != true; ?>
     
  4. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    PHP:
    1.  
    2. <?php if($db->fetchrow($sql, 0) > 0 && $edit != true) ?>
    3.  
     
  5. djunkie

    djunkie Активный пользователь

    С нами с:
    19 ноя 2008
    Сообщения:
    134
    Симпатии:
    0
    ну мозг включать нужно, а не бездумно копировать
    PHP:
    1. <?php if(($db->fetchrow($sql, 0) > 0) && ($edit != true)); ?>
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    нету мозга. одна пепси и чипсы.
     
  7. darkgod

    darkgod Активный пользователь

    С нами с:
    31 мар 2008
    Сообщения:
    201
    Симпатии:
    0
    Не выходит никак... либо же ошибка в обеих случаях, либо же сохраняет по всякому ...
     
  8. darkgod

    darkgod Активный пользователь

    С нами с:
    31 мар 2008
    Сообщения:
    201
    Симпатии:
    0
    Всем спасибо, сам смог сделать, оказалось все намного проще (просто понял как это сделать логически, до этого никак допетрить не мог)... Просто сделал еще сравнение по ид, т.е. если ид равен текущему, то значение если такое даже есть в базе пишется, если ид меньше или больше текущего, то выдаем ошибку если находим совпадение в имени...