MySQL (Delete)

Discussion in 'PHP' started by RaiDeRz, 16 Sep 2007.

  1. RaiDeRz

    RaiDeRz Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    121
    Likes Received:
    5
    Reputations:
    0
    Как узнать сколько было удалено записей в запросе?
    Ничего толком ненашел только узнал что вообще должен выводиться ответ от комманды этой сколько удаленно, но как реализовать даже получение этого ответа я непонял ))
     
  2. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Ты бы для начала сказал, на чем кодишь
     
  3. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    1,009
    Likes Received:
    286
    Reputations:
    27
    есть в PHPmyAdmin, то должен высветиться отчёт.
     
  4. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    Все зависит от параметров запроса, вообще ты это средсвами mysql не посчитаешь, как вариант count(*) до и после и из 1 вычитаем 2...
     
  5. RaiDeRz

    RaiDeRz Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    121
    Likes Received:
    5
    Reputations:
    0
    И без count'а как-то можно? а то что-то нехочеться грузить сильно все это))
    И так от мускула на сервер 80% нагрузки идет
     
  6. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    чето не чего в гово ботше не лезет...
    дай пример запроса.
     
  7. RaiDeRz

    RaiDeRz Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    121
    Likes Received:
    5
    Reputations:
    0
    Вот пример:
    Когда читал мануал по MySQL там вроде написано, что он в ответе должен дать кол-во удаленых рядов, но как его получить я незнаю, ведь там возможен вывод только таблиц через функции
     
  8. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    PHP:
              $zapros 'DELETE FROM test WHERE type = 1';
              
    $result = @mysql_query($zapros);
              
    $delnum = @mysql_result($result,0) ;
     
  9. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Я так и не понял на чём ТС ведёт разработку, но если на PHP, то это всё элементарно:

    Только будьте внимательны. Если запрос на удаление не содержал условия WHERE (удалялись все записи), то функция mysql_affected_rows() всегда возвращает 0.
     
    1 person likes this.
  10. Kridan

    Kridan Member

    Joined:
    2 Jun 2007
    Messages:
    24
    Likes Received:
    8
    Reputations:
    0
    Так что можно как при обычном INSERT вывести результат. (здаётся мне это будет первый элемент возвращаемого массива)

     
  11. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Kridan, насчёт insert ты не прав. Команды DML и DQL разные вещи, и не могут быть расчёсаны под одну гребёнку. Соответственно все интерфейсы предоставляют свои механизмы для работы с этими классами команд. Как я написал выше для PHP интерфейса mysql_*, есть специальная функция, которая для DML-команд возвращает актуальное число изменённых записей (mysql_affected_rows). В остальном - ты прав.
     
    1 person likes this.
Loading...