За последние 24 часа нас посетили 18859 программистов и 1621 робот. Сейчас ищут 915 программистов ...

В чем ошибка?

Тема в разделе "PHP для новичков", создана пользователем sham, 14 авг 2014.

  1. sham

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

    С нами с:
    19 мар 2014
    Сообщения:
    54
    Симпатии:
    0
    Почему не удаляет DELET?

    Код (Text):
    1. //$sql = "DELETE FROM news WHERE text_news='".$row['text_news']."' AND date_news='".$row['date_news']."'";
    2. $sql = "DELETE FROM `news` WHERE `text_news`='".$row['text_news']."' AND `date_news`='".$row['date_news']."'";
    Добавлено спустя 27 секунд:
    Удалить нужно строку в таблице news)

    Добавлено спустя 3 минуты 34 секунды:
    Столбцы date_news и text_news
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
  3. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Очевидно же - условие WHERE `text_news`='".$row['text_news']."' AND `date_news`='".$row['date_news']."' не выполняется ни для одной строки.
     
  4. sham

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

    С нами с:
    19 мар 2014
    Сообщения:
    54
    Симпатии:
    0
    Можно подробнее...
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    и на примерах ;)
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    mysqli забыли =)
     
  7. sham

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

    С нами с:
    19 мар 2014
    Сообщения:
    54
    Симпатии:
    0
    Так кто-нибуть скажет, так сказать тыкнет пальцем)?
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А как мы можем что-то сказать, если запрос не видим, видим только код, его формирующий? artoodetoo вам великолепную ссылку дал, там есть инфа, как отладить неработающий sql-запрос
     
  9. sham

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

    С нами с:
    19 мар 2014
    Сообщения:
    54
    Симпатии:
    0
    Вот код
    Код (Text):
    1. <?
    2. include("config.php");
    3. // SQL-запрос
    4.     $strSQL = "SELECT * FROM news ";
    5.     // Выполнить запрос (набор данных $rs содержит результат)
    6.     $rs = mysql_query($strSQL);
    7.     // Цикл по recordset $rs
    8.     // Каждый ряд становится массивом ($row) с помощью функции mysql_fetch_array
    9.     while($row = mysql_fetch_array($rs)) {
    10.        // Записать значение столбца FirstName (который является теперь массивом $row)
    11. $date=$row['date_news'];
    12. $text=$row['text_news'];
    13. $avtor=$row['avtor'];
    14. echo '<form method="post"><div class="raz_news"><span style="margin-right:30px;"><b>Дата</b> ',$date,'</span>',$text,' <br><b>Автор ',$avtor,'</b><br>','</div>',
    15. '<input type="submit" value="Удалить новость" name="delet_news"><br><br></form>';
    16.  
    17. // ################################    Удаление новости ########################################
    18.     if (isset($_POST['delet_news'])) {
    19.  
    20. //$sql = "DELETE FROM news WHERE text_news='".$row['text_news']."' AND date_news='".$row['date_news']."'";
    21. $sql = "DELETE FROM `news` WHERE `text_news`='".$row['text_news']."' AND `date_news`='".$row['date_news']."'";
    22. if (!$sql) {
    23.     echo "Ошибка!";
    24.     ini_set('display_errors',1);
    25. error_reporting(E_ALL);
    26. }
    27.  
    28.  
    29.  
    30.  
    31.  
    32.      }
    33. }
    34.  
    35.  
    36.  
    37.  
    38. ?>
    При нажатии на кнопку с именем delet_news, новость должна удалиться.
     
  10. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    http://phpfaq.ru/na_tanke - это во-первых, во-вторых присваивание строки переменной $sql не может чего-то там удалить...
     
  11. sham

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

    С нами с:
    19 мар 2014
    Сообщения:
    54
    Симпатии:
    0
    Огромное спасибо, 2 день думал в чем косяк) (mysql_query добавить нужно)
     
  12. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Не добавляйте :) Вы такой код написали, что всё сотрёте. Если вам дали ссылочку, её прочитать надо!
     
  13. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Не даете вы ему думать, сразу все карты открываете.
    Ну, что тут не понятного, как вам должна работать строка с базой если вы запрос не отправляете.
    Код (PHP):
    1. $sql = "DELETE FROM `news` WHERE `text_news`='".$row['text_news']."' AND `date_news`='".$row['date_news']."'"; 
    И этот запрос не безопасен. Вы еще и в цикле это делаете, жесть.
    Все, что вам нужно - это в $_POST['delet_news'] передать id новости и в условии сделать:
    WHERE `id`='".intval($_POST['delet_news'])."'. И не надо в цикле это делать.