PHP Как я могу использовать мой выбор, чтобы изменить значение? - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть эта проблема, мне нужен тип my select, чтобы определить, какой допуск использовать.

Допустим, у меня есть 2 (или более) варианта в моем select, один называется test1, а другой называется test2, каждый имеет type_id и type_name.и их таблица называется type_tb

И у меня есть 2 (или более) допусков, которые я хочу изменить через select, они находятся в таблице с именем tol_tb.

поэтому, когда я выбираю test1, тогда используется строка в tol_tb, где tol_id равен 1, а если я выбираю test2, то используется строка в tol_tb, где tol_id равен 2

Как я могу сделать так, чтобы когда я select test1, то значения, которые я использую внутри tol_tb, менялись на значения, связанные с test1?

, чтобы лучше объяснить это, я покажу вам некоторыефрагменты кода, но перед тем, как я это сделаю, я думаю, вам может понадобиться посмотреть, как настроена моя база данных.

я уже говорил, как type_tb настроен с type_id и type_name,

Таблица допусков tol_tb немного больше.Выглядит это так, у него есть tol_id, tol_p_A_maal и tol_m_A_maal.он длиннее этого, но в целом он одинаков, tol_p_A_maal и tol_m_A_maal.это значения допуска, где p обозначает плюс, а m обозначает минус. Я думаю, что имеет больше смысла, когда вы углубляетесь в код.

Это мой select

 <select class="form-control" name="type" id="exampleFormControlSelect4">
        <?php foreach ($products->getAllType() as $type) { ?>
        <option value="<?= @$type->type_id ?>" selected><?= @$type->type_name ?></option>

        <?php } ?>
 </select>

И это мое поле ввода, когда я пишу меру

<div class="form-group col-2">
    <label for="A_maal">A: Mål</label>
    <?=@$error['A_maal']?>
    <input type="text" name="A_maal" id="A_maal" class="form-control" value="<?= @$_POST['A_maal'] ?>">
</div>

, а затем у меня есть этот фрагмент кода, который делает так, что я не получаю неопределенную ошибку индекса, если поле ввода пусто,

$A_maal = isset($_POST['A_maal']) ? $_POST['A_maal'] :$tol->tol_m_A_maal + $tol->tol_p_A_maal * 0.5;

все пока здесь работает как надо.Это та часть, которую мне не удалось заставить работать.

, поэтому идея в том, что я хочу, чтобы она использовала выбранный тип.чтобы решить, какой допуск используется.Я перепробовал много вещей без какого-либо успеха.вот моя последняя попытка,

foreach ($products->getAllTol() as $tol) {
if ($tol->tol_m_A_maal > ($A_maal) || $tol->tol_p_A_maal < ($A_maal)){

    include './includes/modal.php';
    $notification->setTolaranceErrorNotification();
    }
}

Короче говоря.Мне нужно, чтобы тип был селектором допуска.

Надеюсь, что это редактирование лучше объяснит мою проблему.

Лучше объяснил настройку базы данных

У меня есть2 таблицы.

Одна называется type_tb

, а другая tol_tb

type_tb имеет столбцы: type_id, type_name, есть 2 строкив этой таблице атм.

id:1, name:test1

id:2, name:test2

и tol_tb имеет столбцы: tol_id, tol_m_A_maal, tol_p_A_maal.

здесь также есть 2 строки.

игнорируйте странные имена, просто помните, что m и p являются важной частью здесь.

m обозначает минус - разрешено наименьшее число

p обозначает плюс - разрешено наибольшее число

, что, я думаю, может сработать, это сделать внешний ключ иличто-то похожеено я не знаю, как я должен подключить его в моем коде.и снова любая помощь действительно ценится

1 Ответ

0 голосов
/ 14 ноября 2018

Хорошо, так что прежде всего вам нужно настроить таблицы в вашей базе данных:

type_tb:

  • type_id
  • Элемент списка

type_name

tol_tb:

  • tol_id
  • tol_m_A_maal
  • tol_p_A_maal
  • type_id

    столбец type_id будет содержать идентификатор типа, с которым связан роль.

Тогда, когда вы публикуете форму, у вас есть 2 значения: - тип (идентификатор типа) - A_maaal (допуск, который пользователь вводит при вводе)

используйте значение "type" (type_id), чтобы выбрать все допуски, связанные с ним:

SELECT * 
FROM `tol_tb` 
WHERE type_id = :type_id

, где вы заменяете :type_id значением, полученным из вашей формы (выбранный тип).

Этот запрос MySQL должен быть в новом методе: getAllTolByTypeId ($ type_id) (например) с правильным извлечением (объект, соответствующий исходной кодировке).

и выполните тест, как вы уже сделали:

foreach ($products->getAllTolByTypeId($type_id) as $tol) {
        if ($tol->tol_m_A_maal > ($A_maal) || $tol->tol_p_A_maal < ($A_maal)){

            include './includes/modal.php';
            $notification->setTolaranceErrorNotification();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...