Отправка формы и разделение на массив данные из формы?

Ссылка скопирована
16 марта 2026 1 ответ

Добрый день, помогите решить данную задачу.

Есть форма с текстовым полем и кнопкой отправить.

Нужно получая строку строго в таком формате:

Вася - 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 ?

Буду очень рад вашей помощи.

Дополнительно:

Собственные идеи как это сделать есть?

  • Лишние теги - нарушение правил
    Отсутствие кода и каких-либо попыток решить задачу самостоятельно - нарушение правил
  • iljaGolubev,
    $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); }

  • ThunderCat, Добрый вечер, what?
  • SARCASM74,

    what?

    правила, пункты 3.1, 5.12

  • SARCASM74, ну допустим.
    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 ?

    Ну так откуда нам знать? Что за таблица, что и как там храните? Вообще понятие "массово" вставить разнородные данные может подходить только к инсерту, апдейт в вашем случае делается единично каждой записи по условию совпадения поля. Внутри вашего форича после получения данных и делайте апдейт.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Мария Код Ответ

    Для отправки формы и разделения данных из формы на массив в 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" =&gt; $username,
            "email" =&gt; $email,
            "password" =&gt; $password
        );
     
        // Вывод данных массива
        print_r($form_data);
    }

    if($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["password"]; // Создание массива данных из формы $form_data = array( "username" =&gt; $username, "email" =&gt; $email, "password" =&gt; $password ); // Вывод данных массива print_r($form_data); }

    Этот код получает данные из формы с помощью массива $_POST, создает новый массив $form_data с этими данными и затем выводит содержимое массива с помощью функции print_r. Таким образом, вы можете отправлять данные из формы на сервер и разделять их на массив для дальнейшей обработки.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно