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

Форум MySQL

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

 

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

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

тема: Обновление 20 и более записей в обработчике HTML-формы
 
 автор: Panker   (09.12.2006 в 08:50)   письмо автору
 
 

Мне нужно отредактировать допустим 20 полей разом, там полей может быть хоть 1000 хоть одно!

Я делаю так!


<form  method="GET" name="comment" action="?content=Mordi/edit/submit.php">
<table width=100% border=0 cellspacing=0 cellpadding=8><tr><td class=pagebottom>Ссылки<p>
    <input type=text name='content' size=20 value='Mordi/edit/submit.php'><br> //Это поле посылает на обработчик, оно НЕ в цикле
    <?
  $query 
"SELECT * FROM Links"
  
$dmn mysql_query($query); 
  if(!
$dmn) exit(mysql_error()); 
  if(
mysql_num_rows($dmn)) 
  { 
     while(
$links mysql_fetch_array($dmn)) 
     { 
        echo 
"Для домена <b>".$links['d_id']."</b><br>
        
        <input type=text name='id' size=20 value='"
.$links['id']."'><br>
// а вот это уже цикл, показывают все поля что есть а именно все id потом скрою но это не важно
        <textarea name='links' rows=4 cols=61>"
.$links['links']."</textarea><br>  
//тут показываются сами ссылки их то и надо редактировать!
        "
;
     } 
  } 
?>
<input value="ok" name="ok" type="submit"></form>
</form>


Теперь сама проблема!
Я тут утро всё а именно часика 2 муался!
И уже есть прогрес!

Гет запрос такой http://www.multisystema/admin2/index.php?content=Mordi%2Fedit%2Fsubmit.php&id=1&links=2&id=2&links=3&ok=ok

но все поля не редактируются, редактируется только последнее видимо то чт ов гет запросе последнее то и редактируется!


ВОПРОС :) ?!

Как отредактироват ьвсе поля одни обработчиком? что нужно сделат ькакой гет запрос или какой обработчик? :)

В данный момент у меня такой обработчик

<?
Error_Reporting
(E_ALL & ~E_NOTICE);
$d_id=$_GET[d_id];

$id=$_GET['id'];
$d_id=$_GET['d_id'];
$links $_GET['links'];
mysql_query
("UPDATE Links SET `links` = '$links' WHERE `id` = '$id' LIMIT 1 ;")
or die(
"Error:" mysql_error());
?>

config подсоединение к базе в другом файле то чт оего тут нет не значит чт оя ошибся всё ок :)
главный вопрсо как всё отредактирвоать :)

Мне тут подсказали что записывать нужно тоже циклом, но как в обработчик сделать цикл что бы он записывал? ((

   
 
 автор: Panker   (09.12.2006 в 13:40)   письмо автору
 
   для: Panker   (09.12.2006 в 08:50)
 

PS
Вот ещё подругому могу обьяснить


НУЖЕН обработчик который в цикле будет редактировать поля в базе

То есть у меян 20 полей
имя этих полей первичные ключи тех полей что нуна отредактировать вот - <input type=text name='id' size=20 value='".$links['id']."'>

А замеять поля должно на вот - <textarea name='links' rows=4 cols=61>".$links['links']."</textarea>

как такое сделать ?

я тут с 8 утар жду вас ))

Где вы, мой рыцарь ан белом коне :)

   
 
 автор: cheops   (09.12.2006 в 14:06)   письмо автору
 
   для: Panker   (09.12.2006 в 08:50)
 

С такой формой как у вас это не получится... так как все 20 элементов управления имеют одинаковые имена - они должны быть разными, например
 <input type=text name='id[".$links['id_field']."]' size=20 value='".$links['id']."'><br>

Тогда в обработчике можно обойти массив $_GET['id'] на предмет обновления
<?php
  
foreach($_GET['id'] as $key => $value)
  {
     
mysql_query 
    
("UPDATE Links SET `links` = '".$_GET['links'][$key]."' WHERE `id` = '".$_GET['id'][$key]."' LIMIT 1 ;"
     or die(
"Error:" mysql_error());
  }
?>

   
 
 автор: Panker   (09.12.2006 в 14:09)   письмо автору
 
   для: cheops   (09.12.2006 в 14:06)
 

:) хех, иду я счастливый закрывать тему так как в асю очень хороший челвоек постучал и помог и смотрю вы написали
ТОЧНУЮ КОПИЮ ТОГО что мне посоветывал в аси челвоек :)

БОЛЬШОЕ спасибо вам и челвоеку который в асю стукнул :)))

всё оки )


и если не трудно теоретический вопрос!

$_GET может передовать любые данные?

если полей будет 10 000 гет параметр не загнётся передать сможет?
или ест ьограничение ? :)

или POST всё же лучше?

   
 
 автор: dobryy   (09.12.2006 в 14:11)   письмо автору
 
   для: Panker   (09.12.2006 в 14:09)
 

это был самый добрый человек в мире :)))), да и не совсем точную...

   
 
 автор: cheops   (09.12.2006 в 14:23)   письмо автору
 
   для: Panker   (09.12.2006 в 14:09)
 

В принципе можно использовать любой метод, у GET- и POST-методов свои ниши. POST-метод предназначен для передачи большого объёма информации (GET-метод ограничен в объёме), в том числе и файлов. GET-метод нужен в том случае, когда на результат работы формы необходимо ссылаться, например, на результат поиска.

   
 
 автор: Panker   (09.12.2006 в 14:26)   письмо автору
 
   для: cheops   (09.12.2006 в 14:23)
 

спасибо, значит буду постом пользоватся :)

просто Гет удобен тем чт она него посомтреть можно :)

   
 
 автор: cheops   (09.12.2006 в 17:38)   письмо автору
 
   для: Panker   (09.12.2006 в 14:26)
 

Содержимое дампа массива можно достаточно просто получить при помощи следующих строк
<?php
  
echo "<pre>";
  
print_r($_POST);
  echo 
"</pre>";
?>

   
Rambler's Top100
вверх

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