Как мне из окна множественного выбора (listbox) вставить данные в базу данных
У меня есть форма, где я получаю данные из таблицы в список. Я могу вставлять данные, но не из списка. Он говорит массив для одного варианта, а для другого я получаю ошибку преобразования массива в строку.
<form action="dodajstudenta.php" method="POST"> <div class="modal-body"> <div class="form-group"> <label> Ime i Prezime </label> <input type="text" name="ime" class="form-control" placeholder="Upišite Ime i Prezime"> </div> <div class="form-group"> <label> Upišite Spol </label> <input type="text" name="spol" class="form-control" placeholder="Upišite Spol (M/Ž)"> </div> <div class="form-group"> <label>Grad</label> <input style="font-style: #f89900" type="text" name="grad" class="form-control" placeholder="Upišite Grad iz kojeg dolazi Student"> </div> <div class="form-group"> <label>Telefon</label> <input style="font-style: #f89900" type="text" name="tel" class="form-control" placeholder="Upišite Telefon"> </div> <div class="form-group"> <label>Email</label> <input style="font-style: #f89900" type="email" name="email" class="form-control" placeholder="Upišite Email"> </div> <div class="form-group"> <label>Uzrast</label> <input style="font-style: #f89900" type="text" name="uzrast" class="form-control" placeholder="Upišite Uzrast"> </div> <div class="form-group"> <label>Škola</label> <input style="font-style: #f89900" type="text" name="skola" class="form-control" placeholder="Upišite Obrazovnu Ustanovu"> </div> <div class="form-group"> <label>Izaberite Programe sa liste</label> <select name="naziv[]" id="naziv" class="form-control action" id="naziv" multiple=""> <option disabled selected>-- Izaberi Program --</option> <?php include "config/database.php"; // Using database connection file here $records = mysqli_query($conn, "SELECT naziv FROM program"); // Use select query here while($data = mysqli_fetch_array($records)) { echo "<option value='". $data['naziv'] ."'>" .$data['naziv'] ."</option>"; // displaying data in option menu } ?> </select> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Zatvori</button> <button type="submit" value="Add Student" name="addstudent" class="btn btn-primary">Pošalji</button> </div> </form>
Вариант первый PHP: вызывается действие dodajstudenta.php -> это работает нормально, но я вставляю в массив таблицы базы данных не, параметры формы listbox.
<?php require('config/database.php'); // When form submitted, insert values into the database. if (isset($_REQUEST['ime'])) { $ime = stripslashes($_REQUEST['ime']); //escapes special characters in a string $ime = mysqli_real_escape_string($conn, $ime); if (isset($_REQUEST['spol'])) { $spol = stripslashes($_REQUEST['spol']); //escapes special characters in a string $spol = mysqli_real_escape_string($conn, $spol); if (isset($_REQUEST['grad'])) { $grad = stripslashes($_REQUEST['grad']); //escapes special characters in a string $grad = mysqli_real_escape_string($conn, $grad); if (isset($_REQUEST['telefon'])) { $telefon = stripslashes($_REQUEST['telefon']); //escapes special characters in a string $telefon = mysqli_real_escape_string($conn, $telefon); if (isset($_REQUEST['email'])) { // removes backslashes $email = stripslashes($_REQUEST['email']); //escapes special characters in a string $email = mysqli_real_escape_string($conn, $email); if (isset($_REQUEST['uzrast'])) { // removes backslashes $uzrast = stripslashes($_REQUEST['uzrast']); //escapes special characters in a string $uzrast = mysqli_real_escape_string($conn, $uzrast); if (isset($_REQUEST['skola'])) { // removes backslashes $skola = stripslashes($_REQUEST['skola']); //escapes special characters in a string $skola = mysqli_real_escape_string($conn, $skola); if (isset($_REQUEST['naziv'])) { // removes backslashes $naziv = stripslashes($_REQUEST['naziv']); //escapes special characters in a string $naziv = mysqli_real_escape_string($conn, $naziv); $naziv=$_POST["naziv"]; $query = "INSERT into `students` (ime, spol, grad, tel, email, uzrast, skola, naziv) VALUES ('$ime', '$spol', '$grad', '$tel', '$email', '$uzrast', '$skola', '$naziv')"; $result = mysqli_query($conn, $query); if ($result) { header('Location: studenti.php'); echo "<div class='form'> <h3>Uspješno ste dodali program.</h3><br/> </div>"; } else { echo "<div class='form'> <h3>Niste sva polja popunili.</h3><br/> </div>"; } } } } } } } } } else { } ?>
Вариант второй PHP: здесь я получаю проблему с покрытием строки массива
<?php include("config/database.php"); if (isset($_POST['addstudent'])) { $ime = $_POST['ime']; $spol = $_POST['spol']; $grad = $_POST['grad']; $tel = $_POST['tel']; $email = $_POST['email']; $uzrast = $_POST['uzrast']; $skola = $_POST['skola']; $naziv = $_POST['naziv']; $query = "INSERT INTO multiple `students`(`ime`, `spol`, `grad`, `tel`, `email`, `uzrast`, `skola`, `naziv`) VALUES ('$ime', '$spol', '$grad', '$tel', '$email','$uzrast','$skola','$naziv');"; if (mysqli_query($conn,$query)) { $datainsert['insertsucess'] = '<p style="color: green;">Student Inserted!</p>'; }else{ $datainsert['inserterror']= '<p style="color: red;">Student Not Inserted, please input right informations!</p>'; } } ?>
Насколько точно я могу вставлять данные, я не очень хорошо разбираюсь в javascript. Могу ли я сделать это только с php?
Что я уже пробовал:
Я пробовал разные варианты, я хотел бы сделать, чтобы вставить его автоматически из списка, или поместить данные в текстовое поле, а затем вставить в datatable.
Richard MacCutchan
Неясно, в чем заключаются реальные проблемы. Например, что вы подразумеваете под "здесь я получаю проблему с покрытием строки массива" Пожалуйста, постарайтесь четко представлять себе, что именно происходит при запуске кода .
Member 14834980
Я сделал два кода для вставки данных в таблицу, и я не могу вставить несколько данных поля выбора в таблицу базы данных. В коде я получил вот это ""Обратите внимание: преобразование массива в строку в C:\xampp\htdocs\civitas\studenti.php на линии 24""
строка 24: $запрос = "вставить в несколько `студенты`(`Имэ`, `спол`, `град`, `тел`, `письмо`, `uzrast`, `школа`, `naziv`) значения ('$име', '$спол', '$град', '$тел', '$email'мы,'$uzrast','$скола','$naziv');";
Никакие данные не вставляются в базу данных. Я хочу просто вставить из своей формы все данные в datatable.
Richard MacCutchan
Переменная "naziv" является массивом, и вы не можете передать массив в виде строки.