За последние 24 часа нас посетили 21747 программистов и 1662 робота. Сейчас ищут 853 программиста ...

Ошибка в коде

Тема в разделе "PHP и базы данных", создана пользователем Алексей87К, 1 фев 2017.

Метки:
  1. Алексей87К

    Алексей87К Новичок

    С нами с:
    5 янв 2017
    Сообщения:
    157
    Симпатии:
    4
    Здравствуйте! Хочу вывести и удалить с таблицы пользователей через ссылку (есть колонка - Удаления)
    PHP:
    1. <html>
    2. <head>
    3. <meta http-equiv="content-type" content="text/html" charset="utf-8">
    4. </head>
    5. <body>
    6. <!-- 24. Выведите на экран таблицу всех работников (см. задачу №4, только без колонки 'удаление'). -->
    7.  
    8. <?php
    9.   require_once('connect.php');
    10.     mysqli_query($conn, "SET NAMES 'utf8'");
    11.       $query = "SELECT * FROM users ";
    12.       $result = mysqli_query($conn, $query);
    13.     if(isset($_REQUEST['del_id'])){
    14.       $query2 = "DELETE FROM users WHERE id=".$_REQUEST['del_id']."";
    15.       $result2 = mysqli_query($conn, $query2);
    16.     }
    17.  
    18.    
    19.       for($data = array(); $row = mysqli_fetch_assoc($result); $data[] = $row);
    20.   ?>
    21.     <table width = "100px" border = 1px>
    22.       <tr>
    23.         <th>id</th>
    24.         <th>name</th>
    25.         <th>age</th>
    26.         <th>salary</th>
    27.         <th>delete</th>
    28.       </tr>
    29.        <?php foreach ($data as $item) { ?>
    30.       <tr>
    31.         <td><?php echo $item['id'] ?></td>
    32.         <td><?php echo $item['name'] ?></td>
    33.         <td><?php echo $item['age'] ?></td>
    34.         <td><?php echo $item['salary'] ?></td>
    35.         <td><a href="index24.php?del_id = "<?php $item['id']?>"">Удалить</a></td>
    36.       </tr>
    37. <br/>
    38. <?php } ?>
    39.     </table>
    Всё выводиться верно(я про таблицу) а удалять, не удаляется(при нажатии на ссылку) Помогите пожалуйста!
    P.S. Я не знаю как экспортировать sql данные из OpenServer поэтому не могу представить вам таблицу users, извините! Надеюсь, что по коду будет ясно, в чём проблема...
     
    #1 Алексей87К, 1 фев 2017
    Последнее редактирование: 1 фев 2017
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    На будущее, есть PHPmyAdmin или через консоль с mysql. Всё это есть в сборке OpenServer

    В этот блок заходит при нажатии удалить?

    Если с выяснением нужна помощь:
    отладка/debug
    http://phpfaq.ru/debug
    https://netbeans.org/kb/docs/php/debugging_ru.html
    https://php.ru/forum/threads/howto-...i-po-shagam-i-s-kartinkami.58974/#post-474550
     
  3. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Если ошибка, то текст ошибки надо прикладывать.
    Вот тут какая-то вакханалия происходит.

    Сделай вот так:
    PHP:
    1. <a href="index24.php?del_id=<?php echo $item['id']; ?>">
    Никаких пробелов в ссылке быть не должно.

    А тут так:

    PHP:
    1. [LIST=1]
    2. [*]if(isset($_GET['del_id'])){ // изменил тут
    3. [*]     $query2 = "DELETE FROM users WHERE id=".$_REQUEST['del_id']; //исправил тут
    4. [*]     $result2 = mysqli_query($conn, $query2);
    5. [*]   }
    6. [/LIST]
    И я бы DELETE поставил перед SELECT чтобы сразу видеть результат удаления. Ты же сначала выбираешь, потом удаляешь, а потом выводишь выбранное до удаления и удаленная строка отображается на странице, а её в базе уже нет.
    --- Добавлено ---
    "[ LIST=1 ]" - я этоого не писал)) это форумная магия какая то)) 4 строки по отдельности забери.

    И да, я мог чего то не заметить...
     
    Алексей87К нравится это.
  4. Алексей87К

    Алексей87К Новичок

    С нами с:
    5 янв 2017
    Сообщения:
    157
    Симпатии:
    4
    Заработало)) Спасибо большое за помощь! Я новичок и синтаксис меня пока убивает) . И что касается ошибки... Вы правильно заметили! Просто ошибки вообще никакой не было. Все выводилось в таблицу, но ничего не работало! В любом случае, на будущем, возьму на заметку и буду предупреждать! И спасибо, что подсказали с DELETE в начале! Это действительно большая разница) Удаляется сразу!
     
  5. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Нужно понимать, как машина читает твой код, и тогда не будет проблем с синтаксисом.
     
  6. Алексей87К

    Алексей87К Новичок

    С нами с:
    5 янв 2017
    Сообщения:
    157
    Симпатии:
    4
    А где с этим пониманием встретиться)? Не всегда в учебниках всё рассказывают! Например, о том, как работают вложенные в друг друга for , я сам понял! А в учебниках(и вебинарах) об этом не слова! Наверное всё с опытом приходит... Или есть нормальные ресурсы по php и sql? Меня лично интересует знание по построению таблиц(нормализация) и связи между ними. вывод данных с нескольких таблиц и принцип работы команд данных выводов.
     
  7. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Моё знакомство с программированием было в 9 классе, а это было лет 15 назад. Поэтому подробностей не помню.
    Да.