Ответы пользователя по тегу PHP
  • Как правильно написать регулярку?

    @ikfah012
    Не самый умный парень в этом чате
    /\/test\/.+\//gm
    Оно?
    Ответ написан
  • Как написать регулярное выражение?

    @ikfah012 Автор вопроса
    Не самый умный парень в этом чате
    ~<li>Артикул: <span>([^\>]*)<\/span></li>~
    Получилось так - все символы, кроме >.
    Ответ написан
  • Как удалять элементы, подгруженные динамически?

    @ikfah012 Автор вопроса
    Не самый умный парень в этом чате
    Правильный вариант был этот, я просто при выводе допустил ошибку - в table.php выводил скрытый инпут за пределами tr, потому и не работало.
    тык
    $(document).on('click', 'button[name="delete_item"]', function() {
      event.preventDefault();
        let $row = $(this).closest('tr');
        let data = $row.find('input').serialize();
        $.ajax({
                type: "POST",
                url: "delete_item.php",
                data: data,
                success: function(html){
                  $("#table_ajax").load('table.php');
                  $('#order')[0].reset();
              }
            });
            return false;
        });
    Ответ написан
    Комментировать
  • Как правильно выполнить запрос к API?

    @ikfah012 Автор вопроса
    Не самый умный парень в этом чате
    Как подсказал товарищ pinhvin нужно использовать cURL. В гугле полно примеров запросов curl.
    Вот таким способом я смог получить авторизационный токен.
    $ch = curl_init('https://api.yandex.mightycall.ru/api/v3/auth/token');
    $body = 'grant_type=client_credentials&
    client_id=***&
    client_secret=***';
    curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type: application/x-www-form-urlencoded',
      'x-api-key: ***',
        ));
    curl_setopt( $ch, CURLOPT_POSTFIELDS, $body );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
    $result = curl_exec($ch);
    curl_close($ch);
    echo $result;
    Ответ написан
    Комментировать
  • Как копировать строку в MySQL?

    @ikfah012 Автор вопроса
    Не самый умный парень в этом чате
    Нужно было использовать не mysqli_query, а mysqli_multi_query.
    mysqli_query делает один запрос, mysqli_multi_query - 1 и более.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы в теге select отображалась информация из БД?

    @ikfah012
    Не самый умный парень в этом чате
    Нужно данные передать в виде массива и выводить их через foreach как option. Приведу пример как я делал выбор станций метро из бд, может поможет. Метод, конечно, не самый элегантный, но на скорую руку помогло.
    <select name="delivery_adress">
    <? foreach(get_delivery_addresses() as $delivery_address): ?>
    <option <?if ($delivery_address == $delivery_adresses['delivery_adress']) echo ' selected'?>>
    <=htmlspecialchars($delivery_address, ENT_QUOTES)?>
    </option>
    <? endforeach;?>
    </select>

    function get_delivery_addresses() {
    $sql = "SELECT delivery_adress FROM Subway ORDER BY id DESC";
        $result = mysqli_query($link, $sql);
        $delivery_adresses = mysqli_fetch_all($result, MYSQLI_ASSOC);
    retur $delivery_adresses;
    }
    Ответ написан
  • Как догрузить данные в модальное окно?

    @ikfah012
    Не самый умный парень в этом чате
    Как уже писали ранее, вам понадобится js(а если конкретнее, то jquery - ajax).
    Делаем для каждого элемента уникальный id, затем с помощью метода onclick обращаемся к серверной части.
    $(function () {
        $('#вашid').on('click', function (e) { ... }
    Ответ написан
    Комментировать
  • Как можно вывести данные на страницу?

    @ikfah012 Автор вопроса
    Не самый умный парень в этом чате
    Вариант Immortal_pony помог ограничить записи, но моя проблема была в том, что я указал название таблицы с маленькой буквы, а не с большой. MySQL чувствителен к регистру.
    Ответ написан
    Комментировать
  • Как правильно вывести html в php-коде?

    @ikfah012 Автор вопроса
    Не самый умный парень в этом чате
    Решение радикальное, но лучше я не смог придумать.
    Делаем отдельный файл и в нём функцию.
    function get_printed_users()
    {
    
        global $link;
        if (isset($_POST['delivery_date'])) {
            $form_date = $_POST['delivery_date'];
            $SQL = "SELECT * FROM Users WHERE delivery_date='$form_date' AND delivery=1";
            $result = mysqli_query($link, $SQL);
            $users = mysqli_fetch_all($result, MYSQLI_ASSOC);
            return $users;
        } else {
    
            $sql = "SELECT * FROM Users WHERE delivery = '1' ORDER BY id DESC LIMIT 25";
            $result = mysqli_query($link, $sql);
            $users = mysqli_fetch_all($result, MYSQLI_ASSOC);
            return $users;
        }
    }


    Затем в изначальном файле, где выбор даты:
    <form method="post" name="delivery_date" action="">
    <input class="form-control" type="date" name="delivery_date" value="" id="example-date-input"> 
    <button type="submit" class="btn btn-primary btn-xs mb-3">Найти</button>
    </form>
    <?php
    $post = get_printed_users();
     ?>
    <?php foreach ($post as $users): ?>
    <li class="list-group-item">Имя: <?=htmlspecialchars($users['name'], ENT_QUOTES)?></li>
    <li class="list-group-item">Фамилия: <?=htmlspecialchars($users['surname'], ENT_QUOTES)?></li>
    <li class="list-group-item">Отчество: <?=htmlspecialchars($users['second_name'], ENT_QUOTES)?></li>
    <li class="list-group-item">Телефон: <?=htmlspecialchars($users['phone'], ENT_QUOTES)?></li>
    <?php endforeach; ?>
    Ответ написан
    Комментировать
  • Подключение БД.......?

    @ikfah012
    Не самый умный парень в этом чате
    Вы вообще понимаете, что значит ваш код?
    Не стоит заниматься копипастой, если не знаете основ.
    Во-первых, нормальная практика - выносить параметры подключения в отдельный файл.
    Создаёте файл db.php, в него код:
    <?php
    
    //Параметры подключения в БД
    $host = "localhost"; //имя хоста
    $database = "base"; //имя базы
    $user = "root"; //пользователь
    $password = "pass"; //пароль
    $dbtable = "table"; //таблица
    
    $link = mysqli_connect($host, $user, $password, $database)
    or die("Ошибка " . mysqli_error($link));
    
    ?>


    Затем в вашем основном файле вы подключаете его с помощью:
    require_once('db.php');
    Как обращаться к базе и главное - зачем вы должны понять сами.
    Приведу пример.
    Я делаю поиск клиентов в базе по фамилии или номеру телефона, мой код выглядит следующим образом:
    function search_users() {  //объявляем функцию
    	$query = strip_tags(trim($_POST['query']));  //принимаем данные из формы поиска
    	if (preg_match('/[0-9]/', $query)) { //задаём условия для поиска (в данном случае совпадения номера или строки
    		$sql = "SELECT * FROM Users WHERE phone LIKE '%$query%' ORDER BY id DESC"; //делаем выборку в базе по телефону
    	}
    	else {
    		$sql = "SELECT * FROM Users WHERE surname LIKE '%$query%' ORDER BY id DESC"; //делаем выборку в базе по фамилии
    	}
        global $link;
        $result = mysqli_query($link, $sql);
        $users = mysqli_fetch_all($result, MYSQLI_ASSOC);
        return $users;  //выводим результат
    }


    Начните с самых основ. Если не умеете составлять запросы в бд и не знаете синтаксиса php, то не стоит просто копировать куски кода из интернетов. Лучше разбирайтесь самостоятельно и задавайте вопросы тут :) удачи
    Ответ написан