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

    @sorokinfil
    Попробуйте заменить
    `reg_date`=CURRENT_TIMESTAMP
    на
    `reg_date`=NOW()
    Ответ написан
  • Правильно ли хранить длинные строки(>250сим) и массивы в константах?

    @sorokinfil
    Сделайте подключаемым php-файлом, в котором будут только такие константы. Дурным тоном не считается, но если таких строк много, лучше не засорять ими имена констант и объявить общий массив со всеми строками и с другими массивами, а константы оставить для каких-то чисел.
    Ответ написан
    Комментировать
  • Как реализовать это на PHP?

    @sorokinfil
    Напишу по-старинке, не помню, что как в prepare'ах. tbl_1 и tbl_2 соответствуют порядку, в котором выводятся картинки, нужно заменить на имена своих таблиц.
    // Создаём переменную, в которую будем заносить инфу из БД
    $your_list = [];
    // Получаем id и username всех пользователей из tbl_1, id которых встречаются в tbl_2
    $query = $dbpdo->query
    ("
    	SELECT tbl_1.user_id, tbl_1.username
    	FROM tbl_1
    	INNER JOIN tbl_2 ON tbl_2.id = tbl_1.user_id
    ");
    // Извлекаем, формируем двумерный массив
    while ($user = mysqli_fetch_assoc ($query))
    	$your_list[] = $user;
    // Выводим через echo
    foreach ($your_list as $user)
    	echo $user['user_id'] . ': ' . $user['username'] . '<br />';
    Ответ написан
    1 комментарий
  • Как реализовать подгрузку данных при вводе текста в input?

    @sorokinfil
    Ajax по событию onchange на js. И обязательно проконтролировать частоту возможных вызовов запроса, чтобы не чаще пары раз в секунду, можно сделать через таймеры на js. Одним php не ограничиться.
    Ответ написан
    Комментировать
  • Что нужно включить в серверную часть PHP для формы обратной связи (JS, Ajax)?

    @sorokinfil
    На стороне клиента данные преобразуются в Json-объект и отправляются по адресу что_за_домен/app/c.
    Значит, на стороне сервера должен находиться обработчик, который вызывается при обращении к этому адресу. Если слишком сложно, то просто создаём ajax.php и кидаем в корень сайта. Обращаемся из js так:
    $.ajax("/ajax.php", { //...

    А вот примерный код в ajax.php
    <?
    	// Email владельца лендинга, на который придёт форма
    	$admin_email = 'admin@example.ru';
    	
    	// Сразу объявляем массив ответа клиенту
    	$response = [];
    	$response['status'] = 'during';
    	
    	// Если передан необходимый Json-объект
    	if (isset ($_POST['data']))
    	{
    		// Преобразуем Json-объект в привычный массив
    		$data = json_decode ($_POST['data']);
    		
    		// Проверяем, есть ли в массиве нужные нам значения
    		if
    		(
    			(isset ($data['name'])) && ($data['name']) &&
    			(isset ($data['email'])) && ($data['email']) &&
    			(isset ($data['phone'])) && ($data['phone'])
    		)
    		{
    			// Сбор и отправка письма владельцу лендинга (переменная с email'ом задана в начале листинга)
    			// Рекомендую установить и использовать PHPMailer вместо стандартной функции mail
    			$mail_subject = "Форма обратной связи";
    			$mail_message = "Имя: " . $data['name'] . "\r\n";
    			$mail_message .= "Email: " . $data['email'] . "\r\n";
    			$mail_message .= "Телефон: " . $data['phone'];
    			mail ($admin_email, $mail_subject, $mail_message);
    			
    			// Установка статуса ответа ок и текста для того, чтобы вывести сообщение
    			$response['status'] = 'ok';
    			$response['message'] = 'Спасибо! Ваша заявка принята.';
    		}
    		// Если не все поля формы были заполнены или не все дошли до сервера
    		else
    		{
    			$response['status'] = 'error_data_is_not_complete';
    		}
    	}
    	// Если ничего не пришло в переменной $_POST['data']
    	else
    	{
    		$response['status'] = 'error_no_data';
    	}
    	
    	// Вывод (отправка обратно) Json-представления ответа, который легко можно распарсить на стороне клиента
    	// Если что-то пошло не так, то в объекте ответа будет status с ошибкой, иначе будет status: ok.
    	echo (json_encode ($response));
    	exit;
    ?>


    На клиенте строчку с
    success: y,
    замените на
    success: function (data)
    {
    	try
    	{
    		// Пробуем распарсить Json-ответ от сервера
    		data = $.parseJSON (data);
    		if (data['status'] == 'ok')
    			alert (data['message']);
    		else
    			alert (data['status']);
    	}
    	catch (e)
    	{
    		// Если ответ не Json, то через alert должна вывестись ошибка, которую вернул php
    		alert (data);
    	}
    },


    Как только убедитесь, что ответ приходит и всё ок, возвращайте обратно на клиентской части
    success: y,
    Чувствую, что y - это какая-то шаблонная функция.

    Я код накидал, но не тестировал. Могут встречаться опечатки.
    Ответ написан
  • Как сгруппировать ключи в массиве и перебрать их?

    @sorokinfil
    Судя по всему, Вам нужен DOM-парсер на php, который разобьёт html-код на массивы, как это делает JQuery.
    Вот что нашёл по первой ссылке из яндекса: https://habr.com/ru/post/176635/
    Ответ написан
    Комментировать
  • По какой причине может тормозить перед выполнением запроса MySQL через браузер?

    @sorokinfil Автор вопроса
    У меня антивируса нету. Проблема оказалась в подключении к localhost, вместо "localhost" в подключении нужно было указать ip "127.0.0.1", что и решило проблему.
    Ответ написан
    Комментировать