Подскажите пожалуйста, есть форма заказа книг в книжном магазине HTML: <html> <form method="post" action="script.php"> Пользователь: <input name="name" type="text"> Сумма: <input name="summa" type="text"> Заявка: <input name="zayavka" type="text"> Книга 1<input name="check1" type="checkbox" value="1"> Книга 2<input name="check2" type="checkbox" value="2"> Книга 3<input name="check3" type="checkbox" value="3"> <input name="submit" type="Submit" value="Заказать"> </form> </html> Пользователь заполняет поля и указывает чекбоксы, какие бы книги он хотел заказать, после нажатия кнопки заказать данные передаются php скрипту, который должен записать в базу данных mysql этот заказ. Но мне нужно выполнить несколько записей в таблицу, в каждой записи будет указана книга, т.е. разбить входящие данные чекбоксы в цикл. Как можно реализовать. Т.е. если пользователь указал чекбоксами 3 книги, запись должна быть подобного вида id | zayavka | kniga | summa | --------------------------------------- 1 | 1 | 1 | 200 | --------------------------------------- 2 | 1 | 2 | 200 | --------------------------------------- 3 | 1 | 3 | 200 | --------------------------------------- У меня же получается так: id | zayavka | kniga | summa | ------------------------------------------ 1 | 1 | 1,2,3 | 600 | ------------------------------------------
замени на HTML: <html> <form method="post" action="script.php"> Пользователь: <input name="name" type="text"> Сумма: <input name="summa" type="text"> Заявка: <input name="zayavka" type="text"> Книга 1<input name="check[]" type="checkbox" value="1"> Книга 2<input name="check[]" type="checkbox" value="2"> Книга 3<input name="check[]" type="checkbox" value="3"> <input name="submit" type="Submit" value="Заказать"> </form> </html> получишь массив по которому можно пройтись
Сделал следующим образом: HTML: <html> <meta http-equiv="content-type" content="text/html; Charset=UTF-8" /> <form method="post" action="script.php"> Пользователь: <input name="name" type="text"> Сумма: <input name="summa" type="text"> Заявка: <input name="zayavka" type="text"> Книга 1<input name="check[]" type="checkbox" value="1"> Книга 2<input name="check[]" type="checkbox" value="2"> Книга 3<input name="check[]" type="checkbox" value="3"> <input name="submit" type="Submit" value="Заказать"> </html> И script.php PHP: <?php include 'config.php'; $_POST['check'] = $check; $_POST['name'] = $name; $_POST['zayavka'] = $zayavka; $_POST['summa'] = $summa; $numcheck = count($check); $onesum = $summa / $numcheck; foreach ( $check as $colvalue=>$checkvalue ) { mysql_query ("INSERT INTO tables (name, zayavka, kniga, summa) VALUES ('".$name."', '".$zayavka."', '".$checkvalue."', '".$onesum."')"); } ?> Корректно ли так?
угу только надо обезопаситься. а то мало ли чего понасовать могут в переменные. а ты их прямо в базу непроверив пихаешь. вот тут по-соседству тема http://www.php.ru/forum/viewtopic.php?t=25857