За последние 24 часа нас посетили 15575 программистов и 1550 роботов. Сейчас ищут 892 программиста ...

удаление данных из базы

Тема в разделе "PHP для новичков", создана пользователем Panich, 29 май 2012.

  1. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Сижу и туплю,не могу понять почему из базы данные не удаляются!?
    Кнопочка не срабатывает...
    Код (Text):
    1. $HTML='<strong>id:</strong>&nbsp;&nbsp;'.$id_text.'<br>
    2.                     <strong>Изображение:</strong>&nbsp;&nbsp;<img src="../'.$img_text.'"><br>
    3.                     <strong>Заголовок:</strong>&nbsp;&nbsp;'.$title.'<br>
    4.                     <strong>Текст:</strong>&nbsp;&nbsp;'.$full_text.'<br>
    5.                     <strong>id автора:</strong>&nbsp;&nbsp;'.$autor_text.'<br>
    6.                     <strong>Дата написания:</strong>&nbsp;&nbsp;'.$date_text.'<br>
    7.                     <form action="#" method="POST">
    8.                     <input type="hidden" name="delid" value="'.$id_text.'">
    9.                     <input type="submit" value="удалить" name="delete">
    10.                     </form>';
    11.                     print $HTML;
    12.                     if(isset($_POST['delete']))
    13.                     {
    14.                         $idtext = intval($_POST['delid']);
    15.                         $sql7 = "DELETE FROM `text` WHERE `idtext` = '$idtext'";
    16.                         $result7 = mysql_query($sql7, $db_text)or die("Ошибка в запросе: " . mysql_error());
    17.                         if (!$result7)
    18.                         {
    19.                         echo "Нет доступа к базе данных!";
    20.                         }
    21.                         else
    22.                         {
    23.                         echo "Всё гуд!";
    24.                         echo "<a href='../znakomstva/hell/admin.php'></a>";
    25.                         }
    26.                     }
    Заранее благодарен...
     
  2. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Подумал может мало кода Вам предоставил...вот весь:
    Код (Text):
    1. <?php
    2. if(isset($_POST['title']))
    3. {
    4.     $title = ($_POST['title']);
    5.     if (empty($title) or $title == '')
    6.     {
    7.     unset($title);
    8.     exit ("Так по какому названию искать?");
    9.     }
    10.     else
    11.     {
    12.         include ("bd_text.php");
    13.         $sql5 = "SELECT * FROM `text` WHERE `title`='$title'";
    14.         $result5 = mysql_query($sql5, $db_text)or die("Ошибка в запросе: " . mysql_error());
    15.         if (!$result5)
    16.         {
    17.         echo "ошибка - ".mysql_error()."<br>";
    18.         echo $sql5;
    19.         exit();
    20.         }
    21.         else
    22.         {
    23.             $myrow5 = mysql_fetch_assoc($result5);
    24.             if (empty($myrow5['idtext']))
    25.             {
    26.             exit ("Такого заголовка нет");
    27.             }
    28.             else
    29.             {
    30.                 $id_text = $myrow5['idtext'];
    31.                 $img_text = $myrow5['img_text'];
    32.                 $title = $myrow5['title'];
    33.                 $full_text = $myrow5['full_text'];
    34.                 $autor_text = $myrow5['autor_text'];
    35.                 $date_text = $myrow5['date_text'];
    36.                 $HTML='<strong>id:</strong>&nbsp;&nbsp;'.$id_text.'<br>
    37.                 <strong>Изображение:</strong>&nbsp;&nbsp;<img src="../'.$img_text.'"><br>
    38.                 <strong>Заголовок:</strong>&nbsp;&nbsp;'.$title.'<br>
    39.                 <strong>Текст:</strong>&nbsp;&nbsp;'.$full_text.'<br>
    40.                 <strong>id автора:</strong>&nbsp;&nbsp;'.$autor_text.'<br>
    41.                 <strong>Дата написания:</strong>&nbsp;&nbsp;'.$date_text.'<br>
    42.                 <form action="#" method="POST">
    43.                 <input type="hidden" name="delid" value="'.$id_text.'">
    44.                 <input type="submit" value="удалить" name="delete">
    45.                 </form>';
    46.                 print $HTML;
    47.                 if(isset($_POST['delete']))
    48.                 {
    49.                     $idtext = intval($_POST['delid']);
    50.                     $sql7 = "DELETE FROM `text` WHERE `idtext` = '$idtext'";
    51.                     $result7 = mysql_query($sql7, $db_text)or die("Ошибка в запросе: " . mysql_error());
    52.                     if (!$result7)
    53.                     {
    54.                     echo "Нет доступа к базе данных!";
    55.                     }
    56.                     else
    57.                     {
    58.                     echo "Всё гуд!";
    59.                     echo "<a href='../znakomstva/hell/admin.php'></a>";
    60.                     }
    61.                 }
    62.                 $HTML='<form action="" method="post">
    63.                 <input type="submit" value="корректировать" name="korrect_text">
    64.                 </form>';
    65.                 print $HTML;
    66.                 //ещё написать скрипт для редактирования данных
    67.             }
    68.         }
    69.     }
    70. }
    71. ?>
     
  3. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    о, да, давай еще. нам мало кода. =)

    ты проверил запрос в пма?
     
  4. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Ща,второй карман открою и высыплю...)))
    Я проверял в жуке на мазиле-пишет,что передаёт числовое значение id как и положено...
     
  5. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты в phpmyadmin проверил запрос? =)
     
  6. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Да!Там всё осталось на месте и ничего не удалено...
    П.С. Ещё 586 сообщений и будет 1000!!!)))
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    эта... когда у пма что-то не выходит, он пишет что не так.

    либо нет такой строки у которой вот то что ты говоришь равно тому, чему ты указал. =)

    Добавлено спустя 15 секунд:
    а может у тебя нет прав на удаление? о_О
     
  8. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    У ПМА всё в норме...)))
    И строка есть такая...мне передаёт в посте 4,в таблице есть id под номером 4!
    Вот пишу так:
    Код (Text):
    1. if(isset($_POST['delete']))
    2.             {
    3.                $idtext = $_POST['delid'];
    4.                echo "Всё гуд!";
    5.             }
    И тут пустая страница...как так может быть?Ничего не выводит...

    Добавлено спустя 5 минут 47 секунд:
    В других случаях всё замечательно удаляет!!!
    Только я там с помощью яваскрипта это всё делаю,а тут только php попробовал и такая фигня...

    Попробовал
    Код (Text):
    1. var_dump($_POST);
    и получается пустое окно браузера!

    Мне кажется сама форма накосячена...

    Добавлено спустя 41 минуту 11 секунд:
    Вся проблема была в том,что проверку на наличие переменной нужно было вынести за пределы первой проверки на переменную title,так как код,когда повторно выполнялся,то стопорился в самом начале...!
    Всем спасибо!И будьте внимательнее чем я...)))
    Тема закрыта!!!
     
  9. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    вот это уже странно

    Добавлено спустя 22 секунды:
    а, ладно =)
     
  10. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Пишите лучше так:
    И экранируй если с базой работаете.
    Код (PHP):
    1. $sql5 = "SELECT * FROM `text` WHERE `title`='".прочитайте про экранирование($title)."'";  
    Код (PHP):
    1. print $HTML; 
    Пишите:
    Код (PHP):
    1. echo $HTML; 
    А зачем в скобки взяли:
    Код (PHP):
    1. $title = ($_POST['title']);  
    Защиту пытались сделать?)))
     
  11. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    А почему нужно писать echo,a не print?
     
  12. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    да пофик
     
  13. Panich

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

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Блин!Хорош...
    Реально в чём разница?
     
  14. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну эхо может принимать аргументы через запятую.
    забей
     
  15. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    echo быстрее, чем print.

    http://www.drupal.ru/node/13526

    и echo ничего не возвращает, а print всегда 1.

    так же как и $_GET[name] медленнее чем $_GET['name'] =)
     
  16. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Ну, $_GET[name] - это вообще ошибка (нотис: неопределённая константа).
    А разница в скорости между echo и print, сдаётся мне, такая, что на неё можно просто забить. Хотя, в принципе, если она есть хотя бы какая-то - то да, почему бы не печатать в коде echo, даже если привык к print :) Только не стоит думать, что от этого производительность приложения что-то заметное выиграет.
     
  17. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    echo не функция, поэтому время экономится на вызов функции
     
  18. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    print - тоже не функция
    Добавлено спустя 17 секунд:
    http://www.php.ru/manual/function.print.html
     
  19. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тогда странно
     
  20. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    print также является конструкцией языка, но ведет себя как функция