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

Форум MySQL

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

 

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

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

тема: добавление нескольких записей в базу
 
 автор: dimm_kz   (07.12.2008 в 19:20)   письмо автору
 
 

Здрасьти всем. Есть такой вопрос:
у меня есть форма, в ней сами генирируются строки (юзер предварительно сам указывает нужное число строк). Потом эти строки заполняются. Мне надо потом эти строки перенести в базу, строк может быть от одной до сотни и более. Как это реализовать? Знаю что в цикле, а как это реализовать?
Заранее спасибо.

  Ответить  
 
 автор: Valick   (07.12.2008 в 19:25)   письмо автору
 
   для: dimm_kz   (07.12.2008 в 19:20)
 

Дайте хотябы пример формы)) (все полторы тысячи строк указывать ненадо.. достаточно две)
Потому что на "пальцах" можно очень долго и бестолку общаться) (хотя не спорю, иногда это очень весело)

  Ответить  
 
 автор: dimm_kz   (07.12.2008 в 19:28)   письмо автору
 
   для: Valick   (07.12.2008 в 19:25)
 

вот:

<?
for ($i=0$i<$kolvo$i++)
{
echo 
"<tr>
<td><input type=\"text\" name=\"model\" maxlength=\"40\"></td>
<td><input type=\"text\" name=\"imei\" maxlength=\"15\"></td>
<td>"
.$date_prih."</td>
<td>"
.$nakladn."</td>
<td>"
.$date_nakladn."</td>
<td>"
.$post."</td>
<td><input type=\"text\" name=\"postav\" value=\"\"></td>
</tr>"
;
}

?>

  Ответить  
 
 автор: Valick   (07.12.2008 в 19:49)   письмо автору
 
   для: dimm_kz   (07.12.2008 в 19:28)
 

<?php
for ($i=0$i<$kolvo$i++) 
{
?>
<tr>
<td><input type=text name=model[<?php $i;?>] maxlength=40></td>
  <td><input type=text name=imei[<?php $i;?>] maxlength=15></td>
  <td><?php $date_prih;?></td>
  <td><?php $nakladn;?></td>
  <td><?php $date_nakladn;?></td>
  <td><?php $post;?></td>
  <td><input type=text name=postav[<?php $i;?>] value=""></td>
</tr>
<?php

?> 

Отправляете в обработчик три массива (model, imei, postav) которые обходите с помощью foreach
собираете запрос для базы данных.
Вам новые строки надо вставить или заменить ранее существующие?

  Ответить  
 
 автор: dimm_kz   (07.12.2008 в 20:14)   письмо автору
 
   для: Valick   (07.12.2008 в 19:49)
 

это мне приходиться 3 раза отправлять запрос на добавление, а за один обход как это реализовать? поскольку я подазреваю, что он мне будет все раскидывать в базе как попало

  Ответить  
 
 автор: Valick   (07.12.2008 в 20:25)   письмо автору
 
   для: dimm_kz   (07.12.2008 в 20:14)
 

Запросов у вас должно быть три...
хотите знать почему... спросите меня "почему?"
Покажите как вы формируете запрос на добавление из массива model

Бррр... так вы всётаки вставляете в базу данные...
Давайте структуру таблицы.

  Ответить  
 
 автор: AcidTrash   (07.12.2008 в 21:06)   письмо автору
 
   для: Valick   (07.12.2008 в 19:49)
 

><td><input type=text name=model[<?php $i;?>] maxlength=40></td>
И к примеру, такое работает? Даже, если вы уж хотите воспользоваться короткими тегами, то уж точно не так.

  Ответить  
 
 автор: Valick   (07.12.2008 в 21:32)   письмо автору
 
   для: AcidTrash   (07.12.2008 в 21:06)
 

если вы уж хотите воспользоваться короткими тегами
нет не хочу... просто тупо эхо не дописал.

  Ответить  
 
 автор: dimm_kz   (07.12.2008 в 21:46)   письмо автору
 
   для: Valick   (07.12.2008 в 21:32)
 

вот такая у меня таблица:
"id","model","imei","date_prih","nakladn","date_nakladn","postav","other"

  Ответить  
 
 автор: Valick   (07.12.2008 в 22:03)   письмо автору
 
   для: dimm_kz   (07.12.2008 в 21:46)
 

Давайте я вас до конца добью вопросами))
А откуда берутся date_prih nakladn date_nakladn и шо таке other?

  Ответить  
 
 автор: dimm_kz   (07.12.2008 в 22:36)   письмо автору
 
   для: Valick   (07.12.2008 в 22:03)
 

данные беруться из формы. их будет пользователь заполнять, и вот они то и идут в базу. а other - это поле для разного рода пометок... редко используется

  Ответить  
 
 автор: AcidTrash   (07.12.2008 в 22:00)   письмо автору
 
   для: dimm_kz   (07.12.2008 в 19:20)
 

>(юзер предварительно сам указывает нужное число строк). Потом эти строки заполняются
Использовать символ массива [] в html-форме.
А дальше, как вы и писали обрабатывайте в цикле.

  Ответить  
 
 автор: Valick   (07.12.2008 в 22:04)   письмо автору
 
   для: AcidTrash   (07.12.2008 в 22:00)
 

а если юзер пропустит одно из заполняемых полей?

  Ответить  
 
 автор: AcidTrash   (07.12.2008 в 22:07)   письмо автору
 
   для: Valick   (07.12.2008 в 22:04)
 

На обязательные поля делать проверку(например средствами JS или PHP). :)

P.S. От вас это странный вопрос.

  Ответить  
 
 автор: Valick   (07.12.2008 в 22:22)   письмо автору
 
   для: AcidTrash   (07.12.2008 в 22:07)
 

От вас это странный вопрос
Да нет.. нормальный вопрос... просто пытаюсь думать на несколько шагов вперёд)

  Ответить  
 
 автор: dimm_kz   (07.12.2008 в 22:11)   письмо автору
 
   для: Valick   (07.12.2008 в 22:04)
 

да я об этом уже думал над ентим... но сначала все же хотелось бы данные в таблицу занести, а проверкой потом занятся))

  Ответить  
 
 автор: Trianon   (07.12.2008 в 22:24)   письмо автору
 
   для: dimm_kz   (07.12.2008 в 22:11)
 

В чем проблема-то?
<?
$sql 
'INSERT INTO tbl (model, imei) VALUES ';
$sep '';
foreach(
$_POST['model'] as $key => $model)
{
    
$imei $_POST['imei'][$key];
    if(!
get_magic_quotes_gpc())
    {
        
$model mysql_escape_string($model);
        
$imei mysql_escape_string($imei);
    }
    
$sql .= "\r\n$sep('$model', '$imei')";
    
$sep ",";
}
mysql_query($sql);

  Ответить  
 
 автор: dimm_kz   (07.12.2008 в 22:34)   письмо автору
 
   для: Trianon   (07.12.2008 в 22:24)
 

все отлично работает!!! ура! надо было еще поставить у поля imei значение bigint

  Ответить  
 
 автор: Valick   (07.12.2008 в 22:37)   письмо автору
 
   для: Trianon   (07.12.2008 в 22:24)
 

а если одно из полей model не будет заполнено?

  Ответить  
 
 автор: Trianon   (07.12.2008 в 22:41)   письмо автору
 
   для: Valick   (07.12.2008 в 22:37)
 

и что тогда?
Array
(
    [model] => Array
        (
            [1] => 
            [2] => 
            [3] => 
        )

    [imei] => Array
        (
            [1] => 
            [2] => 
            [3] => 
        )
)

  Ответить  
 
 автор: Valick   (07.12.2008 в 23:20)   письмо автору
 
   для: Trianon   (07.12.2008 в 22:41)
 

Верно... я ошибался... тут пустые массивы приходят.

  Ответить  
 
 автор: Valick   (07.12.2008 в 22:24)   письмо автору
 
   для: dimm_kz   (07.12.2008 в 22:11)
 

Ни в коем разе!! От проверки вас никто не освобождал... просто корректные данные надо записывать сразу.

  Ответить  
 
 автор: dimm_kz   (07.12.2008 в 22:38)   письмо автору
 
   для: Valick   (07.12.2008 в 22:24)
 

согласен! просто подобный проект впирвые делаю, да и то чисто на добровольных основах... и всех моментов как-то сразу не учел...

  Ответить  
 
 автор: dimm_kz   (07.12.2008 в 22:10)   письмо автору
 
   для: AcidTrash   (07.12.2008 в 22:00)
 

Всем огромное спасибо за принятия участия!!! очень благадарен! Я уже хотел этот проектик кинуть на верхнюю полку... Но благодаря вам он даже может найдет конечного пользователя)) еще раз пасиба

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

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