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

Форум PHP

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

 

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

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

тема: добавление данных из формы. notice:Undefined index
 
 автор: Medulla   (27.08.2007 в 15:12)   письмо автору
 
 


$query=mysql_query("select * from admin"); 

$num_rows = mysql_num_rows($query);
for ($i=1; $i<=$num_rows; $i++) 



if(isset($_POST[‘flag’.$i])) 

$flag="1"; 

else {

$flag="0"; 


if ($_POST['reason'.$i]) 

$reason=$_POST['reason'.$i]; 

else

$reason="0"; 


if ($_POST['cost'.$i])

$cost=$_POST['cost'.$i]; 

else

$cost="0"; 




echo "$flag";
echo "$reason";
echo "$cost";

}

notice:Undefined index cost3,reason3 и.т.д
i>150
пробовала упростить задачу с помощью forech
$form_data = array($_POST['reason'], $_POST['cost']; и.т.д
как быть в таком случае с checkboxaми(напрмер, flag)?
как будет выглядеть примерный запрос на добавление в бД?

   
 
 автор: bronenos   (27.08.2007 в 16:07)   письмо автору
 
   для: Medulla   (27.08.2007 в 15:12)
 

if(isset($_POST[‘flag’.$i]))

вот здесь - почему flag взят в странные такие кывачки? кажется, содержимое таких кавычек носит системный характер, запускается какая-то программа

проверять на существование переменной надо isset(), как и в 1 у вас случае с флагом

   
 
 автор: Medulla   (28.08.2007 в 08:27)   письмо автору
 
   для: bronenos   (27.08.2007 в 16:07)
 

да, спасибо. проблема была в isset.
допустим,$num_rows=3(=макс. id).
существует форма:
id___flag(checbox)___reason(текст. поле)___cost(текст. поле)
1
2
3

если заполняю только id=2(например), то получаю рез-т:0 , 1(checbox вкл.), значение поля reason, значение поля cost, 0 (очевидно, 0 - это checbox выкл). почему в этом случае не передаются 0-ые значения текст. полей(т.е, если не заполню cost)?

как построить запрос на добавление в базу данных? запустить еще один цикл? я совсем запуталась(

for ($i=1; $i<=$num_rows; $i++) 

    { 

    if(isset($_POST['flag'.$i])) //столбец 1
      { 
      $flag="1"; 
      } 
      else 
      {
      $flag="0"; 
      } 

   if (isset($_POST['reason'.$i])) //столбец2 
      { 
      $reason=$_POST['reason'.$i]; 
      } 
      else
      { 
      $reason="0"; 
      } 

   if (isset($_POST['cost'.$i])) //столбец3
      { 
      $cost=$_POST['cost'.$i]; 
      } 
      else
     { 
     $cost="0"; 
     } 

echo "$flag";
echo "</p>";
echo "$reason";
echo "</p>";
echo "$cost";
echo "</p>";
}

   
 
 автор: Medulla   (28.08.2007 в 10:53)   письмо автору
 
   для: Medulla   (28.08.2007 в 08:27)
 

дезинформация.
>>почему в этом случае не передаются 0-ые значения текст. полей(т.е, если не заполню cost)?
для передачи значений текст. поля isset не нужен.
[code]

   
 
 автор: Medulla   (28.08.2007 в 12:53)   письмо автору
 
   для: Medulla   (28.08.2007 в 10:53)
 


$sql= "update admin  set flag =".$flag." where id=$i";
$resitog= mysql_query($sql, $con);

$sql3="update admin  set cost ="'.$cost.'" where id=$i";//знач. из текстового поля
$resitog3= mysql_query($sql3, $con);


unexpected T_CONSTANT_ENCAPSED_STRING
как исправить?

   
 
 автор: Thrasher   (28.08.2007 в 13:05)   письмо автору
 
   для: Medulla   (28.08.2007 в 12:53)
 

Возможно, так:

$sql= "update admin  set flag = '".$flag."' where id=$i"; 
$resitog= mysql_query($sql, $con); 

$sql3="update admin  set cost = '".$cost."' where id=$i";//знач. из текстового поля 
$resitog3= mysql_query($sql3, $con);

   
 
 автор: Trianon   (28.08.2007 в 13:47)   письмо автору
 
   для: Medulla   (28.08.2007 в 12:53)
 


$sql= "update admin  set flag = $flag where id=$i"; 
$resitog= mysql_query($sql, $con); 

$sql3="update admin  set cost = $cost where id=$i";//знач. из текстового поля 
$resitog3= mysql_query($sql3, $con); 


Предварительно $flag и $cost должны быть очищены от нечислового мусора.
$flag = intval($flag);
$cost = floatval($cost);

$i - в принципе, тоже, но он у Вас явно задается параметром цикла, и уже целый.

   
 
 автор: Medulla   (28.08.2007 в 14:44)   письмо автору
 
   для: Trianon   (28.08.2007 в 13:47)
 

спасибо всем большое)

   
Rambler's Top100
вверх

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