Intereting Posts
Борьба за установку названий страниц для динамических страниц PHP на сайте WordPress Ошибка FPDF: некоторые данные уже выведены, невозможно отправить PDF Получение всех элементов списка неупорядоченного списка в PHP $ moduleManager-> getEventManager () -> getSharedManager () -> attach не работает в стабильном zf2 Эхо определенные строки из базы данных mysql json_encode () ожидает, что параметр 2 длинный, строка задана создать новый объект в php Как получить массив значений из ассоциативных массивов? Ошибка анализа: синтаксическая ошибка, неожиданная '' (T_ENCAPSED_AND_WHITESPACE) Переименование файлов после перемещения Emoji не вставляются в узел базы данных js mysql PDO bindParam () с подготовленным оператором не работает Symfony security возвращает 401 ответ вместо перенаправления Постоянное соединение или объединение пулов в PHP54 + Nginx + PHPFPM + MongoDB Loop, отдельный процесс для последней записи (простейшее решение)

Вставка нескольких строк из php-формы в базу данных

моя форма как следующая таблица (textfeild). Я питаю значения в этих текстовых файлах. Как я могу ввести эти значения в мою базу данных? PLZ помощь. введите описание изображения здесь

код формы: –

$rows=$_POST["rows"]; echo " <table align=\"center\" border=\"1\" width=\"70%\"> <tr> <td><b>Roll No.</b></td> <td><b>Full Name</b></td> <td><b>Unit_test</b> </td><td><b>Prelims</b></td> <td><b>Attendance</b></td> <td><b>File</b></td> </tr>"; for($n=0;$n<$rows;$n++) { echo "<tr> <td><input type=\"text\" name=\"roll\" /></td><td><input type=\"text\" name=\"name\" /></td><td><input type=\"text\" name=\"unit_test\" /></td> <td><input type=\"text\" name=\"prelims\" /></td><td><input type=\"text\" name=\"attendance\" /></td><td><input type=\"text\" name=\"file\" /></td> </tr>"; } echo "</table>"; echo "<form action=\"feed2.php\" method=\"post\"> <br> <input type=\"submit\" name=\"\" value=\"Submit\" /> </form>"; 

код, используемый для вставки в db: –

 for($n=0;$n<3;$n++) { if(isset($_POST['roll'])) { echo "<br>Updating"; $roll=$_POST['roll']; $name=$_POST['name']; $unit_test=$_POST['unit_test']; $prelims=$_POST['prelims']; $attendance=$_POST['attendance']; $file=$_POST['file']; $sql="Insert into students (roll,name,unit_test,prelims,average,attendance,file,interm) VALUES ('$roll','$name','$unit_test','$prelims','$average'=(('$unit_test' + '$prelims')/125) *10,'$attendance','$file','$average'+'$attendance'+'$file')"; $res=mysql_query($sql); header("Location:./view.php"); } как for($n=0;$n<3;$n++) { if(isset($_POST['roll'])) { echo "<br>Updating"; $roll=$_POST['roll']; $name=$_POST['name']; $unit_test=$_POST['unit_test']; $prelims=$_POST['prelims']; $attendance=$_POST['attendance']; $file=$_POST['file']; $sql="Insert into students (roll,name,unit_test,prelims,average,attendance,file,interm) VALUES ('$roll','$name','$unit_test','$prelims','$average'=(('$unit_test' + '$prelims')/125) *10,'$attendance','$file','$average'+'$attendance'+'$file')"; $res=mysql_query($sql); header("Location:./view.php"); } , как for($n=0;$n<3;$n++) { if(isset($_POST['roll'])) { echo "<br>Updating"; $roll=$_POST['roll']; $name=$_POST['name']; $unit_test=$_POST['unit_test']; $prelims=$_POST['prelims']; $attendance=$_POST['attendance']; $file=$_POST['file']; $sql="Insert into students (roll,name,unit_test,prelims,average,attendance,file,interm) VALUES ('$roll','$name','$unit_test','$prelims','$average'=(('$unit_test' + '$prelims')/125) *10,'$attendance','$file','$average'+'$attendance'+'$file')"; $res=mysql_query($sql); header("Location:./view.php"); } 

Самый простой способ – это, вероятно, сделать значения $ _POST для рулона и т. Д. Массивом (поэтому $ _POST становится многомерным массивом).

См. Предыдущий вопрос для примера того, как это можно сделать:

Передача многомерного массива через POST с php

Затем вы можете перебирать значения массива в коде вставки базы данных.

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

Решение:

Замените код, который генерирует поля:

  for($n=0;$n<$rows;$n++) { echo "<tr> <td><input type=\"text\" name=\"roll_$n\" /></td><td><input type=\"text\" name=\"name_$n\" /></td><td><input type=\"text\" name=\"unit_test_$n\" /></td> <td><input type=\"text\" name=\"prelims_$n\" /></td><td><input type=\"text\" name=\"attendance_$n\" /></td><td><input type=\"text\" name=\"file_$n\" /></td> </tr>"; } 

В приведенном выше коде мы добавили каждое поле с _ $ n

Во-вторых, измените код вставки на следующее:

 $roll=$_POST['roll_'.$n]; $name=$_POST['name_'.$n]; $unit_test=$_POST['unit_test_'.$n]; $prelims=$_POST['prelims_'.$n]; $attendance=$_POST['attendance_'.$n]; $file=$_POST['file_'.$n]; как $roll=$_POST['roll_'.$n]; $name=$_POST['name_'.$n]; $unit_test=$_POST['unit_test_'.$n]; $prelims=$_POST['prelims_'.$n]; $attendance=$_POST['attendance_'.$n]; $file=$_POST['file_'.$n]; как $roll=$_POST['roll_'.$n]; $name=$_POST['name_'.$n]; $unit_test=$_POST['unit_test_'.$n]; $prelims=$_POST['prelims_'.$n]; $attendance=$_POST['attendance_'.$n]; $file=$_POST['file_'.$n]; 

В-третьих, я думаю, что запрос sql необходимо изменить. Вычислите среднее значение перед запросом и сохраните его значения в переменной. Затем ссылайтесь на эту переменную в запросе так же, как и на другие переменные, такие как $ roll и $ name.

 $average=(($unit_test + $prelims)/125) *10; 

Теперь с этим кодом все три строки будут сохранены в базе данных.

Надеюсь это поможет.

Множественные вставки строк в SQL – это просто краткие скобки с запятыми, (), (), ();

Вы также НЕ избегаете своих данных! Вы должны избегать ВСЕХ ваших данных независимо от текста или двоичного кода. Это просто, и вы никогда не должны избегать данных. Я избегаю данных, даже если это происходит непосредственно из моей базы данных, хакер может опубликовать код в комментарии блога, он закомментирован, но по какой-то причине, если я обработаю этот комментарий, он может впоследствии выполнить.

 $roll = mysql_real_escape_string($_POST['roll'); 

Так просто сделайте это …

 INSERT INTO table (roll, name, unit_test, prelims, average, attendance, file, interm) VALUES ('$roll','$name','$unit_test','$prelims','$average'=(('$unit_test' + '$prelims')/125) *10,'$attendance','$file','$average'+'$attendance'+'$file'), ('$roll','$name','$unit_test','$prelims','$average'=(('$unit_test' + '$prelims')/125) *10,'$attendance','$file','$average'+'$attendance'+'$file'), ('$roll','$name','$unit_test','$prelims','$average'=(('$unit_test' + '$prelims')/125) *10,'$attendance','$file','$average'+'$attendance'+'$file'), ('$roll','$name','$unit_test','$prelims','$average'=(('$unit_test' + '$prelims')/125) *10,'$attendance','$file','$average'+'$attendance'+'$file');