Как добавить в базу данных через PHP 10 разных значений? файл add.php PHP: <?php #Считываем шапку $handle = fopen("template/header.htm", "r"); while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose($handle); ?> <?php $sdb_name="localhost"; $user_name="root"; $user_password="root"; $db_name="pages"; $page_name="price" ?> <form method="POST" action="usr_add.php"> <p>Название : <input type="name1" name="name1" size="20" value="<?php echo $_POST["name1"] ?>"> <p><i><font size="2">Пример: Кондиционер </font><span lang="en-us"> <font size="2">LG 09H</font></span></i><p>Описание : <input type="info" name="info" size="20" value="<?php echo $_POST["info"] ?>"> <p><i><font size="2">Пример: Он лёгок в установке. Его характеристики вы можете видеть в следующей таблице...</font></i><p>Мощность охлаждение : <input type="text" name="text" size="20" value="<?php echo $_POST["text"] ?>"><p> <i><font size="2">Пример: 100</font></i><p>Мощность тепло : <input type="text2" name="text2" size="20" value="<?php echo $_POST["text2"] ?>"><p> <i><font size="2">Пример: 3</font></i><p>Фотография : <input type="text4" name="photo"size="20" value="<?php echo $_POST["photo"] ?>"> <i><font size="2"><br><br>Пример: [url=http://localhost/images/im1.jpg]http://localhost/images/im1.jpg[/url]<br><br></font></i><p>Цена : <input type="text3" name="text3" size="20" value="<?php echo $_POST["text3"] ?>"> <i><font size="2"><br><br>Пример: 9032<br><br></font></i><p>Фирма : <input type="text4" name="firma1"size="20" value="<?php echo $_POST["firma1"] ?>"> <i><font size="2"><br><br>Пример: <br><br></font></i><p>Тэги : <input type="text4" name="tegs1"size="20" value="<?php echo $_POST["firma1"] ?>"> </p> <p><i><font size="2">Пример: HITACHI</font></i></p> <p> <input type="submit" value="Отправить" name="add" id="add"></p> </form> <?php $link=mysql_connect($sdb_name,$user_name,$user_password) or die(mysql_error()); mysql_select_db($db_name, $link) or die(mysql_error()); #обращаемся к базе $str_sql_query="SELECT * FROM baza.price"; #создаём запрос $result=mysql_query($str_sql_query,$link) or die(mysql_error()); #создаём запрос while ($mas=mysql_fetch_row($result)) { foreach ($mas as $field) { echo $field . ""; } echo "<br>"; } ?> <?php mysql_close($link); #Считываем низ страницы $handle = fopen("template/footer.htm", "r"); while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose($handle); ?> файл usr_add.php PHP: <?php $sdb_name="localhost"; $user_name="root"; $user_password="root"; $db_name="baza"; $page_name="price" ?> <?php $link=mysql_connect($sdb_name,$user_name,$user_password) or die(mysql_error()); mysql_select_db($db_name, $link) or die(mysql_error()); ?> <?php $query="INSERT INTO price (tegs,nazv,firm,info,par1,par2,photo,price) VALUES ('$tegs1','$name1', '$firma1','$info', '$text', '$text2', '$photo','$text3')"; #создаём запрос $result=mysql_query($query,$link) or die(mysql_error()); echo 'Данные внесены'; mysql_close($link); ?>
Вместо этого можно использовать echo get_file_contents('template/header.htm'); такого типа не существует... используйте например type="text" Рекомендуется не использовать подобные конструкции... Для этих задач существует CSS Этот участок целесообразно вынести в отдельный файл, например db.php и делать require_once этого файла А вот тут не я не понял к сожалению: [sql]INSERT INTO pricae (`tegs`, `nazv`) VALUES ('teg1', 'nazv1'), ('teg2', 'nazv2')[/sql] Или HTML: <input type='text' name='test[]' /> <input type='text' name='test[]' /> PHP: <?php foreach ($_POST['test'] as $test) { echo $test; } ?>
Несколько записей одним запросом можно сделать вот так например [sql]insert into test2 (name) select name from test1[/sql]
да, то что надо, спс. На счёт того чтобы вынести в один файл, это я и так вынес, просто на той стадии написания скрипта ещё не выносил в отдельный файл. Я имел ввиду последний вариант с циклом... не подумал что-то А здесь: <input type='text' name='test[]' /> можно указывать так <input type='text' name='test[$i]' /> либо не обязательно? Я имел ввиду что к примеру есть 10 полей. Надо занести в них значение 10 полей. INSERT INTO pricae (`tegs`, `nazv`) VALUES ('$teg1', '$nazv1') INSERT INTO pricae (`tegs`, `nazv`) VALUES ('$teg2', '$nazv2') ... INSERT INTO pricae (`tegs`, `nazv`) VALUES ('$teg10', '$nazv10') вот что я имел ввиду. А как через цикл осуществить подобное?
ygen for ($i = 0; $i < count ($teg); $i++){ mysql_query("INSERT into `price` (`tegs`, `nazv`) VALUES ('$teg[$i]', $nazv[$i]);"); } $teg и $nazv должны быть массивами.
$i - не обязательно, php сам разберется что это массив... так что name="test[]" Теперь ваша задача сформировать этот запрос. Делать несколько INSERT запросов, или один (который предлагаю) дело Ваше. Суть в том что поля в html должны быть в массиве HTML: <input type="text" name="test[]" /> <input type="text" name="test[]" /> <input type="text" name="test[]" /> <input type="text" name="test[]" /> ... <input type="text" name="test[]" /> Затем обрабатываем форму в PHP: PHP: <?php foreach($_POST['test'] as $test) { mysql_query("INSERT INTO `table1` (`name`) VALUES ('$test')"); } // или $a = array('name1', 'name2', 'name3'); $q = "INSERT INTO `table` (`name`) VALUES ('" . implode("'), ('", $a) . "')"; echo $q;