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

Форум MySQL

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

 

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

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

тема: Добавление n-строк в таблицу
 
 автор: napTu3aH   (08.09.2005 в 11:26)   письмо автору
2 Кб
 
 

С темой, как то не очень получилось...
Есть БД, в которой 3 таблицы, дамп прилагаеться.
Задача: при помощи PHP сформулировать правильный занос цен в БД на изделия, в определенном хлебозаводе, если цена не указана, то заносить это хлеб изделие не нужно.
Вот что у меня получаеться

<?
include "../config.php";

if(!empty(
$Add))
{
echo 
"Добавляем в БД";
#Вот тут и вся загвоздка!!!!
die;
}

echo 
"<FORM action=\"$PHP_SELF\"  method=\"POST\">";

$query="SELECT id, name FROM magazins ORDER BY 'name' ASC";
$r=mysql_query($query);
if(!
$r)
{
echo 
"Ошибка!";
die;
}
echo 
"<TABLE><TBODY><tr><td valign=top>";
echo 
"Выберите магазин<br>";

for(
$i=0$i<mysql_num_rows($r); $i++)
$f=mysql_fetch_array($r);
echo 
"<INPUT type=\"radio\" name=\"zavod_id\" value=\"$f[id]\">$f[name]<br>\n";
}

echo 
"</td><td>";

$query="SELECT id, name FROM hleb_char ORDER BY 'name' ASС";
$r=mysql_query($query);
if(!
$r)
{
echo 
"Ошибка!";
die;
}
echo 
"<TABLE><TBODY>";
for(
$i=0$i<mysql_num_rows($r); $i++)
$f=mysql_fetch_array($r);
echo 
"<TR><TD>$f[name]</TD><TD><INPUT size=\"7\" type=\"text\" name=\"id$f[id]\"></TD></TR>";
}
echo 
"</TABLE></TBODY>";
echo 
"</TABLE></TBODY></tr></td>";
echo 
"<input type=submit value=\"Добавить\" name=\"Add\">";
die;

?>

После заполнения формы передаютсья переменные

$zavod_id=""
#идентификатор завода в таблице заводов
$id1...$id200
#переменные, в которых содержаться цены на хлеб изделия, где цифра - это идентификатор хлеб изделия в табл. изделий


Заранее спасибо

   
 
 автор: cheops   (08.09.2005 в 13:30)   письмо автору
 
   для: napTu3aH   (08.09.2005 в 11:26)
 

Хм... а у меня чего-то ошибку выдаёт скрипт

   
 
 автор: napTu3aH   (08.09.2005 в 13:40)   письмо автору
 
   для: cheops   (08.09.2005 в 13:30)
 

извините это я дамп корявый дал попробуйте этот, да и скрипт с ошибками


SELECT id, name
FROM 'hleb_char' 
ORDER BY name ASC

   
 
 автор: cheops   (08.09.2005 в 18:23)   письмо автору
 
   для: napTu3aH   (08.09.2005 в 13:40)
 

Дамп я поправил, а скрипт где исправить, что-то не соображу где - не могли бы вы его тоже прикрепить к сообщению?

   
 
 автор: napTu3aH   (08.09.2005 в 18:43)   письмо автору
1 Кб
 
   для: cheops   (08.09.2005 в 18:23)
 

Прикрепляю, там в запросе ошибка была.
Честно говоря незнаю даже как подступиться. Думал в массив загнать все цены и их ид, а потом вывести циклом при заносе в БД.
Но на работе нет возможности попробовать...

   
 
 автор: cheops   (09.09.2005 в 01:23)   письмо автору
1.3 Кб
 
   для: napTu3aH   (08.09.2005 в 18:43)
 

Следует исправить вывод текстовых полей и преобразовать их имена в массив - так будет проще
<?php
  
echo "<TR><TD>$f[name]</TD><TD><INPUT size=\"7\" type=\"text\" name=\"id[".$f[id]."]\"></TD></TR>"
?>

Тогда SQL-запрос можно сформировать следующим образом
<?php
if(!empty($Add)) 

  echo 
"Добавляем в БД"
  
// Формируем запрос
  
foreach($_POST[id] as $id => $price)
  {
    if(!empty(
$price)) $temp[] = "(NULL, $_POST[zavod_id]$id$price)";
  }
  
$query "INSERT INTO hleb_comutator VALUES".implode(",",$temp);
  echo 
$query;
  die; 

?>

   
 
 автор: napTu3aH   (09.09.2005 в 09:26)   письмо автору
 
   для: cheops   (09.09.2005 в 01:23)
 

Спасибо, вроде все должно работать.

Я вчера пол ночи просидел, так и ничего не получилось. Знал, что именно через масивы можно сделать, но загвоздка была в том, что цены поступали уже после того, как я из базы вытягивал ИД хлеб изделий. Я и не догадывался использовать 2 массива.

З.Ы. Как все-таки ВЕЛИК и МОГУЧ язык PHP. Даже для решения такой, думаю что простой, задачи.

   
Rambler's Top100
вверх

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