Как вставить данные в базу данных из списка множественного выбора, используя PHP MySQL - PullRequest
0 голосов
/ 08 января 2019

У меня есть форма со множеством списков выбора. В форме есть несколько списков выбора (блоков). Как я могу отправить данные множественного выбора в базу данных?

Я пытался создать оператор foreach, но проблема в том, что он передает только одну опцию в базу данных.

    <?php 
$db = mysqli_connect('localhost','root','','trial') or die($db);
if (isset($_POST['submit'])) {
$marks = mysqli_real_escape_string($db,$_POST['marks']);
$subjects= $_POST['subject'];
$farming= $_POST['farming'];
foreach ($subjects as $i) {
    $subject = $i;
    $sql = "INSERT INTO `trial_table` (`subjects`, `marks`) VALUES ('".mysqli_real_escape_string($db,$subject)."', '$marks')";
mysqli_query($db,$sql);
}
$sql1 = "INSERT INTO `trial_table` (`marks`) VALUES ('$marks')";
mysqli_query($db,$sql1);
}
 ?>
<body>
    <form method="POST" action="test.php">
    <select id="multiselect" name="farming[]" multiple="multiple" required>
    <option value="Irrigation">Irrigation</option>
    <option value="Fertilizer">Fertilizer</option>
    <option value="Pesticide">Pesticide</option>    
    </select>
    <select id="multiselect" name="subject[]" multiple="multiple" required>
    <option value="Irrigation">Technology</option>
    <option value="Fertilizer">Science</option>   
     </select>
    <div class="input-group">
        <label>Marks</label>
        <input type="number" name="marks">      
    </div>  
    <button type="submit" name="submit" class="btn">SUBMIT</button> 
      </form>
</body>
</html>`enter code here`

Я ожидаю, что Форма отправит выбранные данные, а не только один, в базу данных.

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Я упростил его до этого уровня, но единственная проблема в том, что я не получаю данных в базе данных. В чем скорее всего проблема /

if <?php 
$db = mysqli_connect('localhost','root','','trial') or die($db);
if (isset($_POST['submit'])) {
$marks = mysqli_real_escape_string($db,$_POST['marks']);
$subjects= $_POST['subject'];
$others= $_POST['others'];

foreach ($others as $t){

    $sql1 = "INSERT INTO `trial_table` (`others`) VALUES ('".mysqli_real_escape_string($db,$t)."')";
mysqli_query($db,$sql1);
}

foreach ($subjects as $i){

    $sql = "INSERT INTO `trial_table` (`subjects`, marks) VALUES ('".mysqli_real_escape_string($db,$i)."' , '$marks')";
mysqli_query($db,$sql);
}


}
 ?>
<body>
    <form method="POST" action="test.php">

    <select id="multiselect" name="subject[]" multiple="multiple">
    <option value="Irrigation">Technology</option>
    <option value="Fertilizer">Science</option>   
     </select>
     <select id="multiselect" name="others[]" multiple="multiple">
    <option value="Ball">Sports</option>
    <option value="Netball">Gymics</option>   
     </select>
    <div class="input-group">
        <label>Marks</label>
        <input type="number" name="marks">      
    </div>  
    <button type="submit" name="submit" class="btn">SUBMIT</button> 
      </form>
</body>
</html>
0 голосов
/ 08 января 2019

Если вы хотите вставить данные в одну строку

$subject = implode(',', $subjects);

это вернет вам одну строку с разделителем ',' между каждым предметом. Теперь вы можете вставить это целое в один столбец.

И затем получить его, используя функцию разнесения с ',': он даст вам тот же массив $ subject;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...