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

Форум MySQL

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

 

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

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

тема: Редактирование нескольких записей
 
 автор: aexb   (21.04.2006 в 14:50)   письмо автору
 
 

В MySQL есть таблица:

CREATE TABLE 'name' (
  'id_name' int(11) NOT NULL auto_increment,
  'name' tinytext NOT NULL,
  'description' text NOT NULL,
  PRIMARY KEY  ('id_name')
) TYPE=MyISAM;

INSERT INTO 'name' VALUES (1, 'Иванов', 'Описание для фамили Иванов');
INSERT INTO 'name' VALUES (2, 'Петров', 'Описание для фамили Петров');
INSERT INTO 'name' VALUES (3, 'Сидоров', 'Описание для фамили Сидоров');
INSERT INTO 'name' VALUES (4, 'Выбегайло', 'Описание для фамили Выбегайло');
INSERT INTO 'name' VALUES (5, 'Олейник', 'Описание для фамили Олейник');


Нужно написать скрипт, который сначала выводит все записи таблицы с checkbox'ом рядом с каждой из них. Затем выбранные записи скрипт выводит в отдельную форму, состоящую из <input type="text">. В этой форме записи можно отредактировать и сохранить.

Мучаюсь уже несколько дней, никак не могу придумать :(

   
 
 автор: ЯR   (21.04.2006 в 15:28)   письмо автору
 
   для: aexb   (21.04.2006 в 14:50)
 


<?php 
// file1.php
if(isset($_POST['names'])){
?>
<form action='file2.php' method='POST'>
<?php
   $strtmp 
'';
   foreach(
$_POST['names'] as $id){
      
$strtmp .= " OR id_name={$id} ";
   }
   
$query mysql_query('SELECT * FROM name WHERE 0'.$strtmp) or die('Ошибка');
   while(
$row mysql_fetch_array($query)){
      print 
"<input type='text' name={$row['id_name']} value={$row['name']}><br>\n";
   }
?>
<input type='submit' value='Редактировать'>
</form>
<?php
}else{
 
?>
<form action='<? $_SERVER['PHP_SELF'?>' method='POST'>
<?php
$query 
mysql_query('SELECT * FROM name') or die('Ошибка');
while(
$row mysql_fetch_array($query)){
   print 
"<input type='checkbox' name=names[] value={$row['id_name']}{$row['name']}<br>\n";
}
?>
<input type='submit' value='Редактировать'>
</form>
<?php ?>

<?php
// file2.php
foreach($_POST as $id => $name){
   
// обработка
   
$query "UPDATE name SET name='{$name}' WHERE id_name=$id";
   
// и т.д.
}
?>

Этого хватит?

   
 
 автор: aexb   (21.04.2006 в 16:57)   письмо автору
 
   для: ЯR   (21.04.2006 в 15:28)
 

Да, работает. А каким образом можно редактировать ВСЕ поля таблицы?

   
 
 автор: ЯR   (21.04.2006 в 17:18)   письмо автору
 
   для: aexb   (21.04.2006 в 16:57)
 


<?php 
// file1.php 
if(isset($_POST['names'])){ 
?> 
<form action='file2.php' method='POST'> 
<?php 
   $strtmp 
''
   foreach(
$_POST['names'] as $id){ 
      
$strtmp .= " OR id_name={$id} "
   } 
   
$query mysql_query('SELECT * FROM name WHERE 0'.$strtmp) or die('Ошибка'); 
   while(
$row mysql_fetch_array($query)){ 
      print 
"<input type='text' name={$row['id_name']}[name] value={$row['name']}><br>\n"
      print 
"<input type='text' name={$row['id_name']}[description] value={$row['description']}><br>\n"
   } 
?> 
<input type='submit' value='Редактировать'> 
</form> 
<?php 
}else{ 
?> 
<form action='<? $_SERVER['PHP_SELF'?>' method='POST'> 
<?php 
$query 
mysql_query('SELECT * FROM name') or die('Ошибка'); 
while(
$row mysql_fetch_array($query)){ 
   print 
"<input type='checkbox' name=names[] value={$row['id_name']}{$row['name']}<br>\n"

?> 
<input type='submit' value='Редактировать'> 
</form> 
<?php ?> 

<?php 
// file2.php
$query ''
foreach(
$_POST as $id => $name){ 
   
// обработка 
   
$query  .= "UPDATE name SET name='{$name['name']}', description='{$name['description']}' WHERE id_name=$id;\n"

if(
mysql_query($query)){
   
// ...
} else die('Ошибка');
?> 

примерно так

   
 
 автор: aexb   (21.04.2006 в 17:48)   письмо автору
 
   для: ЯR   (21.04.2006 в 17:18)
 

О! Вот это действительно то, что нужно. Сейчас переделаю так чтоб под любой таблицей работало и вообще скрипту цены не будет :)

Спасибо!

   
 
 автор: Радосвет   (22.04.2006 в 01:38)   письмо автору
 
   для: aexb   (21.04.2006 в 17:48)
 

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

   
 
 автор: ЯR   (22.04.2006 в 06:42)   письмо автору
 
   для: aexb   (21.04.2006 в 17:48)
 

Покажешь, что получилось?

   
Rambler's Top100
вверх

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