моя форма как следующая таблица (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');