За последние 24 часа нас посетили 21972 программиста и 1689 роботов. Сейчас ищут 1414 программистов ...

Добавление несколько разных значений сразу

Тема в разделе "PHP и базы данных", создана пользователем ygen, 26 мар 2008.

  1. ygen

    ygen Guest

    Как добавить в базу данных через PHP 10 разных значений?

    файл add.php
    PHP:
    1.  
    2. <?php
    3. #Считываем шапку
    4. $handle = fopen("template/header.htm", "r");
    5. while (!feof($handle)) {
    6.     $buffer = fgets($handle, 4096);
    7.     echo $buffer;
    8. }
    9. fclose($handle);
    10. ?>
    11.  
    12.  
    13. <?php
    14.  
    15. $sdb_name="localhost";
    16. $user_name="root";
    17. $user_password="root";
    18. $db_name="pages";
    19. $page_name="price"
    20. ?>
    21.  
    22. <form method="POST" action="usr_add.php">
    23.         <p>Название : <input type="name1" name="name1" size="20" value="<?php echo $_POST["name1"] ?>">
    24.         <p><i><font size="2">Пример: Кондиционер </font><span lang="en-us">
    25.         <font size="2">LG 09H</font></span></i><p>Описание : <input type="info" name="info" size="20" value="<?php echo $_POST["info"] ?>">
    26.         <p><i><font size="2">Пример: Он лёгок в установке. Его характеристики вы
    27.         можете видеть в следующей таблице...</font></i><p>Мощность охлаждение : <input type="text" name="text" size="20" value="<?php echo $_POST["text"] ?>"><p>
    28.         <i><font size="2">Пример: 100</font></i><p>Мощность тепло : <input type="text2" name="text2" size="20" value="<?php echo $_POST["text2"] ?>"><p>
    29.         <i><font size="2">Пример: 3</font></i><p>Фотография : <input type="text4" name="photo"size="20" value="<?php echo $_POST["photo"] ?>">
    30.         <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"] ?>">
    31.         <i><font size="2"><br><br>Пример: 9032<br><br></font></i><p>Фирма : <input type="text4" name="firma1"size="20" value="<?php echo $_POST["firma1"] ?>">
    32.         <i><font size="2"><br><br>Пример: <br><br></font></i><p>Тэги : <input type="text4" name="tegs1"size="20" value="<?php echo $_POST["firma1"] ?>">
    33.         </p>
    34.         <p><i><font size="2">Пример: HITACHI</font></i></p>
    35.         <p>
    36.         <input type="submit" value="Отправить" name="add" id="add"></p>
    37. </form>
    38.  
    39. <?php
    40. $link=mysql_connect($sdb_name,$user_name,$user_password) or die(mysql_error());
    41.  
    42. mysql_select_db($db_name, $link) or die(mysql_error());
    43.  
    44. #обращаемся к базе
    45. $str_sql_query="SELECT * FROM baza.price";
    46. #создаём запрос
    47. $result=mysql_query($str_sql_query,$link) or die(mysql_error());
    48.  
    49. #создаём запрос
    50. while ($mas=mysql_fetch_row($result))
    51. {
    52. foreach ($mas as $field)
    53. {
    54. echo $field . "";
    55. }
    56. echo "<br>";
    57. }
    58. ?>
    59.  
    60. <?php
    61. mysql_close($link);
    62. #Считываем низ страницы
    63. $handle = fopen("template/footer.htm", "r");
    64. while (!feof($handle)) {
    65.     $buffer = fgets($handle, 4096);
    66.     echo $buffer;
    67. }
    68. fclose($handle);
    69. ?>
    70.  
    файл usr_add.php
    PHP:
    1.  
    2. <?php
    3.  
    4. $sdb_name="localhost";
    5. $user_name="root";
    6. $user_password="root";
    7. $db_name="baza";
    8. $page_name="price"
    9. ?>
    10.  
    11. <?php
    12. $link=mysql_connect($sdb_name,$user_name,$user_password) or die(mysql_error());
    13.  
    14. mysql_select_db($db_name, $link) or die(mysql_error());
    15. ?>
    16.  
    17.  
    18. <?php
    19. $query="INSERT INTO price (tegs,nazv,firm,info,par1,par2,photo,price) VALUES ('$tegs1','$name1', '$firma1','$info', '$text', '$text2', '$photo','$text3')";
    20. #создаём запрос
    21. $result=mysql_query($query,$link) or die(mysql_error());
    22.  
    23. echo 'Данные внесены';
    24.  
    25. mysql_close($link);
    26. ?>
    27.  
     
  2. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Вместо этого можно использовать 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:
    1.  
    2. <input type='text' name='test[]' />
    3. <input type='text' name='test[]' />
    4.  
    PHP:
    1.  
    2. <?php
    3. foreach ($_POST['test'] as $test)
    4. {
    5.     echo $test;
    6. }
    7. ?>
    8.  
     
  3. Goryn

    Goryn Активный пользователь

    С нами с:
    4 апр 2006
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    Ярославль
    Несколько записей одним запросом можно сделать вот так например
    [sql]insert into test2 (name) select name from test1[/sql]
     
  4. ygen

    ygen Guest

    да, то что надо, спс.

    На счёт того чтобы вынести в один файл, это я и так вынес, просто на той стадии написания скрипта ещё не выносил в отдельный файл.

    Я имел ввиду последний вариант с циклом... не подумал что-то :)

    А здесь: <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')

    вот что я имел ввиду. А как через цикл осуществить подобное?
     
  5. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    ygen
    for ($i = 0; $i < count ($teg); $i++){
    mysql_query("INSERT into `price` (`tegs`, `nazv`) VALUES ('$teg[$i]', $nazv[$i]);");
    }

    $teg и $nazv должны быть массивами.
     
  6. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    $i - не обязательно, php сам разберется что это массив... так что name="test[]"

    Теперь ваша задача сформировать этот запрос. Делать несколько INSERT запросов, или один (который предлагаю) дело Ваше.

    Суть в том что поля в html должны быть в массиве
    HTML:
    1.  
    2. <input type="text" name="test[]" />
    3. <input type="text" name="test[]" />
    4. <input type="text" name="test[]" />
    5. <input type="text" name="test[]" />
    6. ...
    7. <input type="text" name="test[]" />
    8.  
    Затем обрабатываем форму в PHP:
    PHP:
    1. <?php
    2. foreach($_POST['test'] as $test)
    3. {
    4.     mysql_query("INSERT INTO `table1` (`name`) VALUES ('$test')");
    5. }
    6.  
    7. // или
    8.  
    9. $a = array('name1', 'name2', 'name3');
    10. $q = "INSERT INTO `table` (`name`) VALUES ('" . implode("'), ('", $a) . "')";
    11. echo $q;
    12.