За последние 24 часа нас посетили 23307 программистов и 1510 роботов. Сейчас ищут 813 программистов ...

как добавить несколько строк в MySQL за 1 раз

Тема в разделе "PHP для новичков", создана пользователем gkhelloworld, 29 май 2008.

  1. gkhelloworld

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

    С нами с:
    18 ноя 2007
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    PHP.ru
    как добавить несколько строк в MySQL за 1 раз

    пример

    создаём поле
    <textarea name="textarea"></textarea>
    в нем через ENTER я добавляю любой текст

    [​IMG]

    и после нажатия на кнопку эти 5 строк добавляются в MySQL как 5 разные строки со своим id и т.д.....
    я просто не могу понять как разделить post на цикл... в общем запутался. помогите

    результат

    [​IMG]
     
  2. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    PHP:
    1. <?php
    2.  
    3. $a = explode("\n", $_POST['textarea']);
    4. foreach($a as $k=>$v) {
    5.     $sql = "INSERT INTO table(text) VALUES('" . $v . "')";
    6.     // выполнение самого запроса
    7. }
    8.  
    9. ?>
     
  3. gkhelloworld

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

    С нами с:
    18 ноя 2007
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    PHP.ru
    а как добавить ограничение ... например если кто-то добавит 1000 и сервер будет сильно грузить..как мне поставить норму.. не менее 1 и не более 100 ?
     
  4. dAllonE

    dAllonE Guest

    Ну как нибудь так:
    PHP:
    1.  
    2. <?php
    3.  
    4.   $a = explode("\n", mysql_escape_string($_POST['textarea']));
    5.  
    6. // Проверка что бы не меньше одного и не больше 100
    7. if(!empty($a) && count($a) < 100){
    8.  
    9.    $sql  =  null;
    10.  
    11.   foreach($a as $value) {
    12.  
    13. // Не фиг 100 раз вызывать инсерт, если можно его вызвать один раз.
    14.       $sql .= "('" .$value. "'), ";
    15.  
    16.   }
    17.      $sql  =  "INSERT INTO table(text) VALUES ".rtrim($sql, ', ');
    18.     // выполняем запрос.
    19. }
    20.  
    21. ?>
    22.  
     
  5. gkhelloworld

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

    С нами с:
    18 ноя 2007
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    PHP.ru
    нечего не выходит =(
     
  6. gkhelloworld

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

    С нами с:
    18 ноя 2007
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    PHP.ru
    получаю
    [sql]INSERT INTO table(text) VALUES ('AddText 1\r\nAddText 2\r\nAddText 3\r\nAddText 4\r\nAddText 5')[/sql]
    что при добавлении выдает ошибку
     
  7. dAllonE

    dAllonE Guest

    Попробуй

    $a = explode("\n", mysql_escape_string($_POST['textarea']));

    заменить на

    $a = explode("\r\n", mysql_escape_string($_POST['textarea']));
     
  8. gkhelloworld

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

    С нами с:
    18 ноя 2007
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    PHP.ru
    всё..ок пример бесценный.. это я оплошал при тестировании
     
  9. dAllonE

    dAllonE Guest

    Хотя стоп ошибся падонаг :(

    Короче ставим:

    $a = explode("\n", $_POST['textarea']);

    А проверку на кавычки тогда при добавлении сделаешь.
     
  10. gkhelloworld

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

    С нами с:
    18 ноя 2007
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    PHP.ru
  11. joost

    joost Guest

    что вместо
    получилось?
    после