За последние 24 часа нас посетили 21730 программистов и 1065 роботов. Сейчас ищут 673 программиста ...

Обработка формы. Запись данных в базу

Тема в разделе "PHP для новичков", создана пользователем kordiks1972, 23 апр 2017.

  1. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    Добрый день господа,
    Есть проблема с записью данных в базу. Помогите решить. Вот такой фрагмент кода в обработчике формы:
    PHP:
    1. //Вставляем данные в базу данных.
    2. if (isset($_POST["naziv_doo"])) {
    3.     //Вставляем данные, подставляя их в запрос
    4.     $sql = mysql_query("INSERT INTO `DOO_1osnivac` (`naziv_doo`, `prezime`, `ime`, `broj_pasosa`, `pasos_datums`, `fms_pasos`, `adressa_monte`, `ustavni_fond`, `delatnost`, `derjavlanstvo`, `grad`, `id_document`)
    5.     VALUES ('".$_POST['naziv_doo']."','".$_POST['prezime']."','".$_POST['ime']."','".$_POST['broj_pasosa']."','".$_POST['pasos_datums']."','".$_POST['fms_pasos']."','".$_POST['adressa_monte']."','".$_POST['ustavni_fond']."','".$_POST['delatnost']."','".$_POST['derjavlanstvo']."','".$_POST['grad']."','".$_POST['id_document']."')");
    6. }
    В базе данных создана таблица с полями: (`naziv_doo`, `prezime`, `ime`, `broj_pasosa`, `pasos_datums`, `fms_pasos`, `adressa_monte`, `ustavni_fond`, `delatnost`, `derjavlanstvo`, `grad`, `id_document`)
    В таблицу успешно вставляются все данные, кроме последнего (id_document).
    Теперь, еще важные моменты, еще до вставки в базу есть фрагмент кода, приведу его отрывок:
    //Это пользователь вводит в форме текстовое поле. В базу проставляется, все ОК.
    empty($data['fms_pasos']);
    //Это пользователь выбирает из списка (тег селект), в базу проставляется. Все ОК.
    $data['delatnost'] = $_POST['delatnost'];
    empty($data['delatnost']);
    //Этого поля нет в форме, т.е., пользователь не заполняет поле 'id_document', обработчик формы присваивает документу уникальный номер, который нужен для различных задач, в том числе его нужно записать в базу. В базу не записывается. В чем может быть причина?
    if (empty($data['id_document']))
    $data['id_document'] =uniqid();
    Так как работает все кроме записи в базу id_document, соответственно именно в этом что то нужно доделать, вероятно, дописать одну-две строчки, вот никак не выходит сообразить, какие.
     
    #1 kordiks1972, 23 апр 2017
    Последнее редактирование модератором: 24 апр 2017
  2. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @kordiks1972
    А почему ты посылаешь из пост данных сразу в запрос?
    --- Добавлено ---
    @kordiks1972
    Попробуй так сделать, запрос:
    PHP:
    1. $sql = mysql_query("INSERT INTO `DOO_1osnivac` (`naziv_doo`, `prezime`, `ime`, `broj_pasosa`, `pasos_datums`, `fms_pasos`, `adressa_monte`, `ustavni_fond`, `delatnost`, `derjavlanstvo`, `grad`, `id_document`)
    2. VALUES (':naziv_doo, :prezime, :ime, :broj_pasosa, :pasos_datums, :fms_pasos, :adressa_monte, :ustavni_fond, :delatnost, :derjavlanstvo, :grad, :id_document')");
    3. }
     
  3. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    А почему ты посылаешь из пост данных сразу в запрос?
    Да, потому, что я только учусь, и других путей пока не знаю.

    Код (Text):
    1. VALUES (':naziv_doo, :prezime, :ime, :broj_pasosa, :pasos_datums, :fms_pasos, :adressa_monte, :ustavni_fond, :delatnost, :derjavlanstvo, :grad, :id_document')");
    Спасибо попробую, хотя, из 12 строк не проставляется в базу только одна. Наверное, надо что то вот здесь дописать:
    if (empty($data['id_document']))
    $data['id_document'] =uniqid();
     
    #3 kordiks1972, 24 апр 2017
    Последнее редактирование модератором: 24 апр 2017
  4. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    П.С. Попробовал, так вообще ничего не записывается.
     
  5. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @kordiks1972
    я тоже учусь еще программированию php и mysql
    Покажи структуру таблиц. То-есть всю таблицу скинь сюда.
     
  6. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Бред всякий другим не советуй. С каких пор расширение mysql поддерживает подготовленные запросы?
     
  7. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    Я подзабыл) за это что он использует mysql :D
     
  8. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    id_document - это первичный ключ? Или внешний?
    --- Добавлено ---
    если первый вариант, то его указывать вообще не нужно. Там должен быть автоинкремент.
    если второй, то он должен совпадать с одной из ячеек первичного ключа, на который ссылается.

    Ща придут ровные пацаны и всё правильно сформулируют :)
     
  9. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    id_document - это первичный ключ? Или внешний?
    Это автоматическая нумерация документа, который генерирует скрипт. Вот такой код за это отвечает:
    PHP:
    1. $data['id_document']    =uniqid();
    2.      
    3.         //заменяем переменные
    4.         foreach($data as $field=>$value)  $this->document->setValue($field, $value);    
    5.      
    6.      
    7.         if (!empty($data['server'])) {
    8.       $temp_file="finish/dogovor_".$data['id_document'].".docx";
    9.       $this->document->saveAs($temp_file); //сохранить в временную папку на сервере    
    10.         } else {
    11.       $temp_file = tempnam(sys_get_temp_dir(), 'PHPWord');//сохранять будем во временную папку
    12.    
    13.       $this->document->saveAs($temp_file); //сохранить в временную папку на сервере        
    14.       //заголовки чтобы скачать сразу файл
    15.       header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT" );
    16.       header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" );
    17.       header ( "Cache-Control: no-cache, must-revalidate" );
    18.       header ( "Pragma: no-cache" );
    19.       header ( "Content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document" );
    20.       header("Content-Disposition: attachment; filename=dogovor_".$data['id_document'].".docx");
    21.       readfile($temp_file);
    22.       unlink($temp_file);
    23.         }    
    Генерация работает отлично, это видно по тому, что у каждого договора получается уникальный номер.

    Далее этот номер нужно сохранить в базу, а он зараза упорно отказывается туда записываться.
    За запись в базу отвечает вот такой код:
    PHP:
    1. $sql = mysql_query("INSERT INTO `DOO_1osnivac` (`naziv_doo`, `prezime`, `ime`, `broj_pasosa`, `pasos_datums`, `fms_pasos`, `adressa_monte`, `ustavni_fond`, `delatnost`, `derjavlanstvo`, `grad`, `id_document`)
    2. VALUES ('".$_POST['naziv_doo']."','".$_POST['prezime']."','".$_POST['ime']."','".$_POST['broj_pasosa']."','".$_POST['pasos_datums']."','".$_POST['fms_pasos']."','".$_POST['adressa_monte']."','".$_POST['ustavni_fond']."','".$_POST['delatnost']."','".$_POST['derjavlanstvo']."','".$_POST['grad']."','".$_POST['id_document']."')");
    Все параметры вставляются, кроме этого ид_документ. Но, все остальное просто берется из формы, а ид_документ генерируется автоматически, в этом единственное различие. Раз не из формы идет, можно надо не переменную $_POST использовать, а что то другое, в самом конце кода, ответственного за вставку в базу: POST['id_document'].?
    --- Добавлено ---
    Да, во в таблице используется тип: text - во всех строках.
     
  10. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @kordiks1972
    Я же попросил чтобы ты скинул, таблицу эту, мы посмотрим на твои поля, тут нету магов, чтобы узнать что ж у тебя за поле такое)
    И если это автоматическая нумерация файла, это и есть первичный ключ. Поставь ему AutoIncrement как подсказали тебе выше.
    В самой базе посмотри внимательно и найдешь его. Дерзай.
     
  11. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    Понял, вот она.
    http://prntscr.com/f0b4f0
    Поставь ему AutoIncrement как подсказали тебе выше.

    Пытался, база ругается:
    http://prntscr.com/f0b5dg
    Какой тип поля можно выбрать для этого?

    П.С. Это автоматически генерируемый номер документа, но, это не id, строк которые база сама проставляет по порядку, от 1 до беконечности.
     
  12. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Ещё раз - бред не пиши :)

    @kordiks1972, ответь на вопрос:
    Хотя, по тексту, вроде бы второе. Тогда должен быть просто integer какой-нибудь, без всякого там автоинкремента. Тогда надо делать отладку. Выведи запрос, который у тебя формируется, и попробуй руками исполнить в phpmyadmin. Коли ругнётся, будет ясно, что не так.

    P.S. а с устаревшего расширения mysql надо слезать. Уже 4 года назад им пользоваться строго не рекомендовалось
     
  13. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    Хорошо спасибо, буду знать.
     
  14. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    Int пробовал ставить, он вместо вот такого номера 58fe6444d53f0 вставляет цифру 0, при чем каждый раз ноль.
    id_document - это первичный ключ? Или внешний?
    Не знаю в чем разница, постарался объяснить как мог, что скрипт его сам формирует, т.е., пользователем он не вводится. Т.е., по отношению к скрипту первичный, так как создается "внутри" скрипта, если по отношению к базе внешний.

    Тогда надо делать отладку. Выведи запрос, который у тебя формируется, и попробуй руками исполнить в phpmyadmin.
    Вы имеете в виду зайти в пшпадмин, выбрать таблицу - вставить - вставить значение в строку? Да, я это уже делал вставляет без проблем. Если речь о запросе по шаблону, увы ни разу их не делал, попробовал сейчас, и что то не то задал.

    А вот SQL запрос выполнить смог, вот такой:
    PHP:
    1. INSERT INTO `DOO_1osnivac` (`id`, `naziv_doo`, `prezime`, `ime`, `broj_pasosa`, `pasos_datums`, `fms_pasos`, `adressa_monte`, `ustavni_fond`, `delatnost`, `derjavlanstvo`, `grad`, `id_document`) VALUES (NULL, '', '', '', '', '', '', '', '', '', '', '', '345332');
    Проставляются заданные в запросе циферки в ид_документ.

    Я думаю, что дело не в таблице, а в моем коде php, где то там что то не правильно.
     
    #14 kordiks1972, 25 апр 2017
    Последнее редактирование: 25 апр 2017
  15. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    П.С. И из формы передается, если убрать переменную пост и вот так оставить "','".вавадловаролыд123."')");
    Но, вот именно то, что нужно не передается.
     
  16. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    Два часа помучился, так и не понял в чем дело. Нашел временное решение, использовать вместо идентификатора не уникально генерируемый номер, а, например, номер паспорта человека, который вводится им самим и в базу успешно проставляется. Но, мне это решение не нравится.
     
  17. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    Итак, опытным путем, установленно, что проблема именно в php, что то делать с таблицами не нужно. Я для теста упростил скрипт, так как думал, что может быть проблема именно с =uniqid();
    Вот такой скрипт:
    PHP:
    1. <?php
    2. $conn = mysql_connect ("localhost", "123", "123");
    3. mysql_select_db("123", $conn);
    4.  
    5. empty($data['ustavni_fond']);
    6.  
    7.  
    8. $data['id_document']    =uniqid();
    9.  
    10.  
    11.  
    12.     //Вставляем данные в базу данных.
    13.     $sql = mysql_query("INSERT INTO `DOO_1osnivac` (`ustavni_fond`, `id_document`)
    14.     VALUES ('".$_POST['ustavni_fond']."','".$data['id_document']."')");
    15. ?>
    Прекрасно все в базу данных записывает, а "полный" скрипт не записывает. Вот полная версия скрипта:
    PHP:
    1. <?php
    2. /*
    3. Работа с обьектом - Word
    4. генерация word документов
    5. */
    6.  
    7. class Word {
    8.     const VERSION = 1.00;
    9.  
    10.     /*
    11.     ПРИМЕНЕНИЕ:
    12.     $word=new Word();
    13.     $word->generate($data);
    14.     //решение проблемы с русскими буквами http://kumatoz.ru/novosti/reshenie-problemy-russkix-simvolov-v-phpword-setvalue/
    15.     */  
    16.        
    17.     public function generate($data=NULL){    //генерация документа по шаблону с переменными      
    18.  
    19.         if (empty($data['template']))
    20.       $template="template1";
    21.  
    22.     $tmp_patch=realpath(__DIR__."/../templates/".$template.".docx");//путь до шаблона
    23.  
    24.         if ($tmp_patch==false) {//есть ли файл шаблона на сервере?
    25.             echo "Шаблон договора не найден.";
    26.             return false;
    27.         }
    28.  
    29.         $this->document = $this->phpword->loadTemplate($tmp_patch); //открываем шаблон      
    30.  
    31.         $title="Osnivanje DOO";
    32.     $subject="Osnivanje DOO";
    33.     $description="Osnivanje DOO";
    34.  
    35.         $this->properties = $this->phpword->getDocInfo();      
    36.         $this->properties->setCreator($_SERVER['HTTP_HOST']);
    37.         $this->properties->setCompany($_SERVER['HTTP_HOST']);
    38.         $this->properties->setTitle($this->rus2translit($title));
    39.         $this->properties->setDescription($this->rus2translit($description));
    40.         $this->properties->setLastModifiedBy($_SERVER['HTTP_HOST']);
    41.         $this->properties->setCreated(time()); //time()
    42.         $this->properties->setModified(time());
    43.         $this->properties->setSubject($this->rus2translit($subject));
    44.  
    45.         //получаем переменные для подстановки в шаблон
    46.         // в шаблоне - docx файле должны быть переменные вида ${fio} причем важно чтобы они вставлялись
    47.         // одним элементом, т.е. без пробелов и лучше просто скопировать отсюда и вставить.
    48.         // потому что если по частям сохранять эту пременную она может смешаться с тегами
    49.          
    50.         //вычисляемые поля
    51.     empty($data['naziv_doo']);
    52.  
    53.     empty($data['prezime']);
    54.  
    55.     empty($data['ime']);
    56.  
    57.     empty($data['broj_pasosa']);
    58.  
    59.     empty($data['pasos_datums']);
    60.  
    61.     empty($data['fms_pasos']);
    62.  
    63.     empty($data['adressa_monte']);
    64.  
    65.     empty($data['ustavni_fond']);
    66.  
    67.         //поле select
    68. $data['delatnost'] = $_POST['delatnost'];
    69. empty($data['delatnost']);
    70.  
    71. $data['derjavlanstvo'] = $_POST['derjavlanstvo'];
    72. empty($data['derjavlanstvo']);
    73.  
    74. $data['grad'] = $_POST['grad'];
    75. empty($data['grad']);
    76.  
    77.         $data['created']        =date("d.m.Y")." года";
    78.  
    79.       $data['id_document']    =uniqid();
    80.    
    81.         //заменяем переменные
    82.         foreach($data as $field=>$value)  $this->document->setValue($field, $value);  
    83.  
    84.    
    85.         if (!empty($data['server'])) {
    86.       $temp_file="finish/dogovor_".$data['id_document'].".docx";
    87.       $this->document->saveAs($temp_file); //сохранить в временную папку на сервере  
    88.         } else {
    89.       $temp_file = tempnam(sys_get_temp_dir(), 'PHPWord');//сохранять будем во временную папку
    90.  
    91.       $this->document->saveAs($temp_file); //сохранить в временную папку на сервере      
    92.       //заголовки чтобы скачать сразу файл
    93.       header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT" );
    94.       header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" );
    95.       header ( "Cache-Control: no-cache, must-revalidate" );
    96.       header ( "Pragma: no-cache" );
    97.       header ( "Content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document" );
    98.       header("Content-Disposition: attachment; filename=dogovor_".$data['id_document'].".docx");
    99.       readfile($temp_file);
    100.       unlink($temp_file);
    101.         }
    102.      
    103.     }
    104.  
    105.         private function rus2translit($string){ //перевод русского текста в транслит
    106.         $converter = array(
    107.             'а' => 'a',   'б' => 'b',   'в' => 'v',
    108.             'г' => 'g',   'д' => 'd',   'е' => 'e',
    109.             'ё' => 'e',   'ж' => 'zh',  'з' => 'z',
    110.             'и' => 'i',   'й' => 'y',   'к' => 'k',
    111.             'л' => 'l',   'м' => 'm',   'н' => 'n',
    112.             'о' => 'o',   'п' => 'p',   'р' => 'r',
    113.             'с' => 's',   'т' => 't',   'у' => 'u',
    114.             'ф' => 'f',   'х' => 'h',   'ц' => 'c',
    115.             'ч' => 'ch',  'ш' => 'sh',  'щ' => 'sch',
    116.             'ь' => "'",  'ы' => 'y',   'ъ' => "'",
    117.             'э' => 'e',   'ю' => 'yu',  'я' => 'ya',
    118.  
    119.             'А' => 'A',   'Б' => 'B',   'В' => 'V',
    120.             'Г' => 'G',   'Д' => 'D',   'Е' => 'E',
    121.             'Ё' => 'E',   'Ж' => 'Zh',  'З' => 'Z',
    122.             'И' => 'I',   'Й' => 'Y',   'К' => 'K',
    123.             'Л' => 'L',   'М' => 'M',   'Н' => 'N',
    124.             'О' => 'O',   'П' => 'P',   'Р' => 'R',
    125.             'С' => 'S',   'Т' => 'T',   'У' => 'U',
    126.             'Ф' => 'F',   'Х' => 'H',   'Ц' => 'C',
    127.             'Ч' => 'Ch',  'Ш' => 'Sh',  'Щ' => 'Sch',
    128.             'Ь' => "'",  'Ы' => 'Y',   'Ъ' => "'",
    129.             'Э' => 'E',   'Ю' => 'Yu',  'Я' => 'Ya',
    130.         );
    131.         return strtr($string, $converter);
    132.     }
    133.  
    134.     public function __construct() {      
    135.         //подключаем PHPWord для работы с вордовскими файлами
    136.         require_once (realpath(__DIR__."/phpword/Autoloader.php"));
    137.         \PhpOffice\PhpWord\Autoloader::register();
    138.         $this->phpword = new  \PhpOffice\PhpWord\PhpWord();
    139.     }
    140.  
    141. }  //class
    142.  
    143.  
    144.     //Вставляем данные в базу данных.
    145.     $sql = mysql_query("INSERT INTO `DOO_1osnivac` (`naziv_doo`, `prezime`, `ime`, `broj_pasosa`, `pasos_datums`, `fms_pasos`, `adressa_monte`, `ustavni_fond`, `delatnost`, `derjavlanstvo`, `grad`, `id_document`)
    146.     VALUES ('".$_POST['naziv_doo']."','".$_POST['prezime']."','".$_POST['ime']."','".$_POST['broj_pasosa']."','".$_POST['pasos_datums']."','".$_POST['fms_pasos']."','".$_POST['adressa_monte']."','".$_POST['ustavni_fond']."','".$_POST['delatnost']."','".$_POST['derjavlanstvo']."','".$_POST['grad']."','".$_POST['id_document']."')");
    Проблема где то вот с этой переменной (79 строчка), потому, что с ней впоследующем, что только не происходит $data['id_document'] =uniqid(); и к тому моменту, как доходит до вставки в базу, вероятно оказывается, что в этой переменной уже ничего нет.
    --- Добавлено ---
    Решить вопрос смог, правда по корсадски, перенес часть кода, ответственного за отправку данных в базу выше, вставил на 80 и 81 строках, и в базу стало записываться корректно.
     
  18. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    У вас в sql запросе $_POST, при чем тут $data['id_document'], не могу понять))) если ничего не передают, значит нечего передавать $_POST['id_document']; дебажьте, ну или выше добавьте типа $_POST['id_document'] = (!$_POST['id_document']) ? uniqid() : intval($_POST['id_document']);
     
  19. kordiks1972

    kordiks1972 Новичок

    С нами с:
    19 апр 2017
    Сообщения:
    38
    Симпатии:
    1
    Я об этом уже думал, и вместо пост $data['id_document'] и так пробовал и по разному. Посмотрите, потом с этой $data['id_document'] чего только не происходит.
     
  20. Stanislav333

    Stanislav333 Новичок

    С нами с:
    27 апр 2017
    Сообщения:
    5
    Симпатии:
    0
    Всех приветствую, вот уже второй день не могу справится с такой задачей, хочу сделать возможность удалять записи с помощью чекбокса, то есть выставляем галочки напротив записи(строки) 2-10 или более, а ниже нажатием на кнопку "Удалить всё" они удаляются. Таблица берется из базы данных, по одной записи удаляется легко, а с чекбоксом проблемы, всё прописал, выделяю несколько строк, нажимаю на кнопку, страница перезагружается, но записи не удаляются. Прошу помощи, предоставляю код ниже:
    PHP:
    1. <?php
    2.     // соединение с базой данных
    3.     require_once 'connect.php';  
    4. ?>
    5.  
    6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    7. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
    8. <head>
    9. <title>Таблица</title>
    10. <meta content="text/html; charset=windows-1251" http-equiv="Content-Type" />
    11. <title>Таблица 2000 строк с фильтрацией</title>
    12. <link rel='stylesheet' href='classes.css' type='text/css'>
    13. <link rel='stylesheet' href='tabsort1.css' type='text/css'>
    14. <script type='text/javascript'>var d0 = new Date()</script>
    15. <script type='text/javascript' src='tabtools1.js'></script>
    16. <script type='text/javascript' src='tabsort1.js'></script>
    17. </head>
    18.  
    19. <?php
    20.      // Отображаем результаты
    21. echo '<p>Таблицы, имеющиеся в базе данных: </p>';
    22. echo "<table class='sortable' id='t' border=1 >";
    23.  
    24. echo "<col class='id'><col class='name'><col class='width'><col class='profile'><col class='radius'><col class='price'><col class='prices'><col class='sellers'><col class='season'><col class='status'>";
    25. echo "<thead>";
    26. echo "<tr>";
    27. echo "<th axis='num'>ID&nbsp;</th>";
    28. echo "<th>Улица&nbsp;</th>";
    29. echo "<th axis='num:alt'>Width&nbsp;</th>";
    30. echo "<th axis='num:alt'>Квартира&nbsp;</th>";
    31. echo "<th axis='num:alt'>Radius&nbsp;</th>";
    32. echo "<th axis='num'>Price&nbsp;</th>";
    33. echo "<th>Prices&nbsp;</th>";
    34. echo "<th axis='num'>Sellers&nbsp;</th>";
    35. echo "<th>Season&nbsp;</th>";
    36. echo "<th axis='num:alt'>Status&nbsp;</th>";
    37. echo "</tr>";
    38. echo "</thead>";
    39.  
    40. //Удаляем, если что
    41. if (isset($_GET['del'])) {
    42.     $result = mysql_query('DELETE FROM `user_profiles` WHERE `ID` = "'.$_GET['del'].'"');
    43.     if ($result) {
    44.         echo "<p>Товар удален.</p>";
    45.     } else {
    46.         echo "<p>Произошла ошибка.</p>";
    47.     }
    48. }
    49.  
    50. //Получаем данные
    51. echo '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">';
    52. $result = mysql_query("SELECT * FROM `user_profiles`") or trigger_error(mysql_error());
    53. while($row = mysql_fetch_array($result)){
    54. foreach($row AS $key => $value) { $row[$key] = stripslashes($value); }
    55. echo "<tr>";
    56. echo "<td valign='top'>" .$row['id']. "</td>";
    57. echo "<td axis='num' valign='top'>" .$row['mes']. "</td>";
    58. echo "<td valign='top'>" .$row['dom']. "</td>";
    59. echo "<td valign='top'>" .$row['kvar']. "</td>";
    60. echo "<td valign='top'>" .$row['password']. "</td>";
    61. echo "<td valign='top'>" .$row['phon']. "</td>";
    62. echo "<td valign='top'>" .$row['van1']. "</td>";
    63. echo "<td valign='top'>" .$row['van2']. "</td>";
    64. echo "<td valign='top'><a href=?del={$row['id']}>Delete</a></td> ";
    65. echo '<td><input type="checkbox" name="row[]" value="'.$row['id'].'" /></td>';
    66. echo "</tr>";
    67. }
    68. echo "</table>";
    69. echo '<input type="submit" name="submitForm" value="Удалить отмеченные" />';
    70.  
    71. if ( isset ( $_GET['row'] ) )
    72. {
    73.   $items = array();
    74.   foreach( $_GET['row'] as $value ) {
    75.     if ( ctype_digit($value) ) $items[] = $value;
    76.   }
    77.   if ( count($items) > 0 ) {
    78.     $ids = implode( ',', $items );
    79.     $query = 'DELETE FROM items WHERE id IN ('.$ids.')';
    80.     mysql_query( $query );
    81.   }
    82.   header( 'Location: '.$_SERVER['PHP_SELF'] );
    83. }
    84.  
    85. ?>
     
  21. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    Нужно глянуть что приходит, возможно придется делать перебор
     
  22. Stanislav333

    Stanislav333 Новичок

    С нами с:
    27 апр 2017
    Сообщения:
    5
    Симпатии:
    0
    Прилагаю рисунок как выглядит страница от базы данных, а так же адресную строку от кнопки "Удалить отмеченные"
     

    Вложения:

    • 1111.jpg
      1111.jpg
      Размер файла:
      126,5 КБ
      Просмотров:
      1
  23. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    Что приходит в
    if ( isset ( $_GET['row'] ) )
     
    #23 marsik, 27 апр 2017
    Последнее редактирование: 27 апр 2017
  24. Stanislav333

    Stanislav333 Новичок

    С нами с:
    27 апр 2017
    Сообщения:
    5
    Симпатии:
    0
    Не подскажите, каким образом это можно выяснить, уж слишком слаб я в этом вопросе?.
     
  25. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    print_r должен помочь))