Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запись нескольких строк в БД
 
 автор: frisst   (29.12.2010 в 01:54)   письмо автору
 
 

Доброй Ночи... Не ругайте, тема заезженная, но не смог найти подходящих фраз для поиска на форуме... Задача проста, но я всё же подзабыл как её осуществить...
Есть форма... в ней 4 поля. мне нужно записать данные из этих форм отдельно в 4 строки таблички БД. Спасибо Заранее...

  Ответить  
 
 автор: frisst   (29.12.2010 в 01:59)   письмо автору
 
   для: frisst   (29.12.2010 в 01:54)
 

Прошу прощения...
1) Не туда выложил.
2) Есть такая тема, причём сам же и задавал вопрос...
=)

  Ответить  
 
 автор: neadekvat   (29.12.2010 в 02:00)   письмо автору
 
   для: frisst   (29.12.2010 в 01:59)
 

И то ли плакать, то ли смеяться.

  Ответить  
 
 автор: frisst   (29.12.2010 в 02:03)   письмо автору
 
   для: neadekvat   (29.12.2010 в 02:00)
 

Хм... ) Дело в том, что в той теме мне до конца не ответили на вопрос... Поэтому не брал во внимание)))

  Ответить  
 
 автор: chepikmas   (29.12.2010 в 02:23)   письмо автору
 
   для: frisst   (29.12.2010 в 02:03)
 

Да вроде бы все просто, делаешь так:

Insert into table (Поле1,Поле2) VALUES ('field1','$_post[field1]')

и так для каждой строчки... если как то надо по-другому, напиши свой пример сюда

  Ответить  
 
 автор: Trianon   (29.12.2010 в 02:45)   письмо автору
 
   для: chepikmas   (29.12.2010 в 02:23)
 

и получаешь замечательный такой эксплойт.

  Ответить  
 
 автор: frisst   (29.12.2010 в 03:16)   письмо автору
 
   для: chepikmas   (29.12.2010 в 02:23)
 

Вот как делаю сейчас я... всё работает...


<?php
if($_POST["add"]) {
$namereply $_POST["namereply"];
$true $_POST["true"];
$idreply $_POST["idreply"];
$idtheme $_POST["idtheme"];
$idquestion $_POST["idquestion"];
$add "INSERT INTO `tegen_reply` (`idtheme`, `idquestion`, `idreply`, `namereply`, `true`) VALUES 
('
$idtheme', '$idquestion', '$idreply[0]', '$namereply[0]', '$true[0]'),
('
$idtheme', '$idquestion', '$idreply[1]', '$namereply[1]', '$true[1]'),
('
$idtheme', '$idquestion', '$idreply[2]', '$namereply[2]', '$true[2]'),
('
$idtheme', '$idquestion', '$idreply[3]', '$namereply[3]', '$true[3]')";
if(
mysql_query($add) > 0) {echo "OK";}

?>
<form action="reply.php?act=add&id=theme_1&idd=question_31" method="post">
<input type="text" name="namereply[]" /><input type="radio" name="true[]" value="1" /><input type="hidden" name="idreply[]" value="reply_1" /><br />
<input type="text" name="namereply[]" /><input type="radio" name="true[]" value="1" /><input type="hidden" name="idreply[]" value="reply_1" /><br />
<input type="text" name="namereply[]" /><input type="radio" name="true[]" value="1" /><input type="hidden" name="idreply[]" value="reply_1" /><br />
<input type="text" name="namereply[]" /><input type="radio" name="true[]" value="1" /><input type="hidden" name="idreply[]" value="reply_1" /><br />
<input type="hidden" name="idtheme" value="theme_1" />
<input type="hidden" name="idquestion" value="question_31" />
<input name="add" type="submit" value="<?php echo ADD?>" />
</form>


Но один вопрос интересует... можно ли, и если можно, то как заменить эти 4 строки на одну?

('$idtheme', '$idquestion', '$idreply[0]', '$namereply[0]', '$true[0]'),
('$idtheme', '$idquestion', '$idreply[1]', '$namereply[1]', '$true[1]'),
('$idtheme', '$idquestion', '$idreply[2]', '$namereply[2]', '$true[2]'),
('$idtheme', '$idquestion', '$idreply[3]', '$namereply[3]', '$true[3]')

  Ответить  
 
 автор: sim5   (29.12.2010 в 09:46)   письмо автору
 
   для: frisst   (29.12.2010 в 03:16)
 

А безопасность (о которой выше сказано) вам побоку? Прежде чем записывать эту кучу строк, вы уж сперва разберитесь, будете ли вы их вообще получать от формы?

  Ответить  
 
 автор: mihdan   (29.12.2010 в 11:40)   письмо автору
 
   для: frisst   (29.12.2010 в 03:16)
 

Скиньте ссылочку на сайт ;)

  Ответить  
 
 автор: Лена   (29.12.2010 в 12:09)   письмо автору
 
   для: frisst   (29.12.2010 в 03:16)
 


<?php
$count 
count($_POST["idreply"]);
    for(
$i=0;$i<$count;$i++)
     
$implVal implode(",","('" mysql_real_escape_string($idtheme) . "', 
     '" 
mysql_real_escape_string($idquestion) . "', 
     '" 
mysql_real_escape_string($idreply[$i]) . "', 
     '" 
mysql_real_escape_string($namereply[$i]) . "', 
     '" 
mysql_real_escape_string($true[$i]) . "')");
?>

  Ответить  
 
 автор: sim5   (29.12.2010 в 12:36)   письмо автору
 
   для: Лена   (29.12.2010 в 12:09)
 

Даже так?

  Ответить  
 
 автор: Лена   (29.12.2010 в 12:41)   письмо автору
 
   для: sim5   (29.12.2010 в 12:36)
 

А как?

  Ответить  
 
 автор: sim5   (29.12.2010 в 12:43)   письмо автору
 
   для: Лена   (29.12.2010 в 12:41)
 

Вы сперва на элементы его формы посмотрите внимательно, а уж потом...

  Ответить  
 
 автор: Лена   (29.12.2010 в 12:54)   письмо автору
 
   для: sim5   (29.12.2010 в 12:43)
 

Я в его форму вообще не смотрела), там ее вообще надо с нуля переписать, в каждой строке ошибки. Странно, что у него что-то еще в базу складывается...
Забыла у себя поставить.
$implVal .=

  Ответить  
 
 автор: sim5   (29.12.2010 в 12:57)   письмо автору
 
   для: Лена   (29.12.2010 в 12:54)
 

А зря, не смотря что-то советовать. Его форма не имеет ошибок, ошиба в логике - не известно чего нужно от этой формы. Так как она прописана, просто все, чего он хочет, и то что вы советуете полная чушь.

  Ответить  
 
 автор: Лена   (29.12.2010 в 13:23)   письмо автору
 
   для: sim5   (29.12.2010 в 12:57)
 

>А зря, не смотря что-то советовать. Его форма не имеет ошибок, ошиба в логике - не известно чего нужно от этой формы. Так как она прописана, просто все, чего он хочет, и то что вы советуете полная чушь.

Как это форма ошибок не имеет, если он в action передает то же самое, что и в скрытых полях формы? Зачем тогда скрытые поля там нужны?
Почему у всех idreply одинаковое value?
Как мы будем знать, какая радиокнопка выбрана?

  Ответить  
 
 автор: sim5   (29.12.2010 в 13:36)   письмо автору
 
   для: Лена   (29.12.2010 в 13:23)
 

То что передача там и там, это не ошибка, это просто лишнее. Зачем нужны скрытые поля и еще передача методом GET, а так же одинаковые значения полей, это к автору вопрос, но, это не ошибка.
Ошибка заключается в его ожидании получения множества строк, число которых он предполагает будет равно числу чекбоксов, коли он их прописывает для запроса. А так ли это?
Вы тоже советуете не подумав, а ведь радиокнопки служат для выбора одного из множества, для чего им даются одинаковые имена (кнопки с зависимой фиксацией, при которой будет отсылатся только одно значение - значение выбранной кнопки), при чем именовать их как массив в данном случае тоже излишне. Но, предоставляя пользователю такой выбор, всегда предполагается значение по умолчанию, чего как раз и нет в данной форме. Вопрос, если пользователь ничего не выберет, что получит автор в своих ожиданиях, и чего у вас проверяется в цикле?

  Ответить  
 
 автор: Лена   (29.12.2010 в 13:52)   письмо автору
 
   для: sim5   (29.12.2010 в 13:36)
 

Согласна, каюсь :)
То, что он никак не отмечает выбор определенной радиокнопки заметила, а вот что у него checked по умолчанию нет, упустила. Спасибо.

  Ответить  
 
 автор: frisst   (29.12.2010 в 14:25)   письмо автору
 
   для: Лена   (29.12.2010 в 13:52)
 

Сейчас Вам Всем всё разъястню...
Форма нужна для добавления ответов к вопросу (4 ответа).
Решил добавлять сразу 4 ответа.

GET-запрос необходим.
reply.php?act=add&id=theme_1&idd=question_31

Страница динамическая... На ней возможно добавлять, редактировать, удалять, просматривать ответы... (с темами и вопросами всё работает... не с пустого места пишу). id - индификатор темы, а idd - индификатор вопроса сообветственно...
Всю форму я вам предоставил в статическом варианте...
А так, данные там подставляются динамически, исходя из данных get-запроса. Ну и при добавлении записей, исходя из данных get-запроса, я обращаюсь к таблице с темами и вопросами, чтобы проверить их наличие...
Радио-кнопки указывают - верный ли ответ или нет. тоесть отмечаем только у одного ответа... по умолчанию решил не ставить....
защиты пока никакой тут нет - верно. я решил не выкладывать большой код и привёл его к статическому варианту и без защиты, чтобы получить ответ на нужный мне вопрос...

Форма полностью вся работает.... записывает данные без ошибок - проверял)))
Не ругайте, не пинайте - направьте на путь истинный))) меня очень сильно интересует !!!правильное!!! добавление одновременно нескольких записей в БД... Спасибо за понимание...

  Ответить  
 
 автор: sim5   (29.12.2010 в 14:37)   письмо автору
 
   для: frisst   (29.12.2010 в 14:25)
 

Полнейшая чушь.

  Ответить  
 
 автор: frisst   (29.12.2010 в 14:42)   письмо автору
 
   для: sim5   (29.12.2010 в 14:37)
 

Пусть будет по вашему... Буду бораздить просторы интернета тогда... Спасибо )

  Ответить  
 
 автор: sim5   (29.12.2010 в 14:46)   письмо автору
 
   для: frisst   (29.12.2010 в 14:42)
 

Бороздите лучше книги, и изучайте, не порите отсебятины, а тем более не утверждайте, что абракодбра ваша работает. Вывод ошибок включите на своем отладочном сервере.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования