Отправка формы и разделение на массив данные из формы?
Добрый день, помогите решить данную задачу.
Есть форма с текстовым полем и кнопкой отправить.
Нужно получая строку строго в таком формате:
Вася - 500; Петя - 450; Олег - 300; Александр - 250; Евгений - 100;
Разделить на массив где одно значение будет Имя (Логин на сайте) а второе кол-во монет.
И массово выдать именно этим Логинам монеты.
$str = 'Вася - 500; Петя - 450; Олег - 300; Александр - 250; Евгений - 100;'; $s = explode(';', $str); foreach ($s as $value) { $value = str_replace(' ', '', $value); $z = explode('-',$value); print_r($z); } |
$str = 'Вася - 500; Петя - 450; Олег - 300; Александр - 250; Евгений - 100;'; $s = explode(';', $str); foreach ($s as $value) { $value = str_replace(' ', '', $value); $z = explode('-',$value); print_r($z); }
Остановился пока не этом((
Как теперь массово выдать монеты этим пользователям через mysqli ?
Буду очень рад вашей помощи.
Дополнительно:
Собственные идеи как это сделать есть?
Отсутствие кода и каких-либо попыток решить задачу самостоятельно - нарушение правил
$str = 'Вася - 500; Петя - 450; Олег - 300; Александр - 250; Евгений - 100;'; $s = explode(';', $str); foreach ($s as $value) { $value = str_replace(' ', '', $value); $z = explode('-',$value); print_r($z); } |
$str = 'Вася - 500; Петя - 450; Олег - 300; Александр - 250; Евгений - 100;'; $s = explode(';', $str); foreach ($s as $value) { $value = str_replace(' ', '', $value); $z = explode('-',$value); print_r($z); }
what?
правила, пункты 3.1, 5.12
str_replace(' ', '', $value); // можно заметить на trim($value) |
str_replace(' ', '', $value); // можно заметить на trim($value)
Как теперь массово выдать монеты этим пользователям через mysqli ?
Теперь создать подключение к базе
сформировать из $z sql запрос на поиск и обновление васи, пети и прочих.
Примерное решение твоей задачи + следующие шаги для самостоятельного решения
1. Нужно указать название таблицы, где хранятся пользователи и их балансы.
2. Нужно заменить название столбца с именем пользователей.
3. Нужно заменить название столбца с балансом пользователей.
4. Желательно, собрать групповой SQL запрос, чтобы разом обновить несколько данных в MySQL.
5. Желательно, использовать PDO (подготовленные SQL запросы)
6. Желательно, делать проверку на существование пользователя. Если его нет, то создавать нового и начислять баланс.
// Получаем строку $str = 'Вася - 500; Петя - 450; Олег - 300; Александр - 250; Евгений - 100;'; // Удаляем все пробелы из строки $str = str_replace(' ', '', $str); // Разделяем пользователей $users = explode(';', $str); // Проходимся по всем пользователям foreach ($users as $userIndex => $user){ // Разделяем данные пользователя $userData = explode('-', $user); $userName = $userData[0]; // имя $userAmount = $userData[1]; // сумма // Собираем одиночный SQL запрос $sql = 'UPDATE users SET balance = balance + ' . $userAmount . ' WHERE user_name = ' . $userName; // Выполняем запрос к базе данных $mysqli->query( $sql ); } |
// Получаем строку $str = 'Вася - 500; Петя - 450; Олег - 300; Александр - 250; Евгений - 100;'; // Удаляем все пробелы из строки $str = str_replace(' ', '', $str); // Разделяем пользователей $users = explode(';', $str); // Проходимся по всем пользователям foreach ($users as $userIndex => $user){ // Разделяем данные пользователя $userData = explode('-', $user); $userName = $userData[0]; // имя $userAmount = $userData[1]; // сумма // Собираем одиночный SQL запрос $sql = 'UPDATE users SET balance = balance + ' . $userAmount . ' WHERE user_name = ' . $userName; // Выполняем запрос к базе данных $mysqli->query( $sql ); }
- Спасибо большое, то что нужно!
- Отметьте решением, если не сложно)
Ответы:
explode(), foreach массива, trim() значений, опять explode(), получаете ваши значения.
UPD:
Как теперь массово выдать монеты этим пользователям через mysqli ?
Ну так откуда нам знать? Что за таблица, что и как там храните? Вообще понятие "массово" вставить разнородные данные может подходить только к инсерту, апдейт в вашем случае делается единично каждой записи по условию совпадения поля. Внутри вашего форича после получения данных и делайте апдейт.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для отправки формы и разделения данных из формы на массив в PHP, необходимо сначала создать HTML форму с соответствующими полями. Например, форма может выглядеть следующим образом:
<button type="submit">Submit</button><button type="submit">Submit</button>
Затем, в файле process_form.php, который будет обрабатывать данные из формы, необходимо получить данные из формы и разделить их на массив. Ниже приведен пример кода для этого:
if($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["password"]; // Создание массива данных из формы $form_data = array( "username" => $username, "email" => $email, "password" => $password ); // Вывод данных массива print_r($form_data); }
Этот код получает данные из формы с помощью массива $_POST, создает новый массив $form_data с этими данными и затем выводит содержимое массива с помощью функции print_r. Таким образом, вы можете отправлять данные из формы на сервер и разделять их на массив для дальнейшей обработки.