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

Форум MySQL

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

 

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

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

тема: Избирательное обновление БД
 
 автор: coloboc66   (01.02.2005 в 17:40)   письмо автору
 
 

Два раза почему-то записалось... Одно сообщение удаляю.

   
 
 автор: cheops   (01.02.2005 в 22:19)   письмо автору
 
   для: coloboc66   (01.02.2005 в 17:40)
 

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

   
 
 автор: Be4ep   (02.02.2005 в 00:05)   письмо автору
 
   для: cheops   (01.02.2005 в 22:19)
 

наверное вопрос был про то как удалить строку из таблици

   
 
 автор: coloboc66   (02.02.2005 в 09:59)   письмо автору
 
   для: Be4ep   (02.02.2005 в 00:05)
 

Есть файл show_db.php примерно такого вида:

...
<form name="form_show_orders" action="???.php">
<?php
//Делаю запрос к БД
$query="select * from orders";
$result=mysql_query($query);
$num_results=mysql_num_rows($result);
for ($i=0; $i<$num_results; $i++)
{
//Вывожу информацию из таблицы БД
$row= mysql_fetch_array($result);
echo htmlspecialchars(stripslashes($row['orderid']));
echo'</strong><br/>Заказчик: ';
echo htmlspecialchars(stripslashes($row['customerid']));
echo '<br/>Цена: ';
echo htmlspecialchars(stripslashes($row['amount']));
echo '<br/>Состояние: ';
echo htmlspecialchars(stripslashes($row['order_status']));
//К каждой строке таблицы (вернее к каждому массиву, выведенному из каждой строки)?
добавляю поля checkbox
echo '<input type=checkbox name="update" value="Закончить"><p>Закончить</p>
<input type=checkbox name="delete"><p>Удалить</p><br/>';
}
?>
<input type=submit name="submit" value="Сохранить">;
</form>

Мне нужно, чтобы при щелче на кнопке обновилась БД таким образом,
что если я перед этим отметил checkbox name="update", то в поле таблицы order_status
записалось "Закончить", а если был отмечен checkbox name="delete", то
должна быть удалена вся строка из таблицы.
Не могу допереть, как все это сделать.

   
 
 автор: cheops   (03.02.2005 в 00:30)   письмо автору
 
   для: coloboc66   (02.02.2005 в 09:59)
 

Решения обновления и удаления приведены по ссылкам, остаётся только объединить оба решения в один скрипт
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=427
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=483
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=689

   
 
 автор: coloboc66   (08.02.2005 в 17:56)   письмо автору
 
   для: cheops   (03.02.2005 в 00:30)
 

У меня выскакивает вот такая ошибка при следующем запросе:
$query="DELETE FROM books WHERE orderid IN (1)";

Unknown column 'orderid' in 'where clause'
Что такое clause кто знает?

   
 
 автор: cheops   (08.02.2005 в 19:09)   письмо автору
 
   для: coloboc66   (08.02.2005 в 17:56)
 

Это означает, что в таблице books нет поля orderid...

   
 
 автор: coloboc66   (09.02.2005 в 09:44)   письмо автору
 
   для: cheops   (08.02.2005 в 19:09)
 

Да, это я сам лопухнулся- не ту таблицу указал в запросе. А такой запрос допустим?:
$query= "UPDATE orders set order_status = 'Закончено' where orderid IN". $query;

   
 
 автор: cheops   (09.02.2005 в 10:18)   письмо автору
 
   для: coloboc66   (09.02.2005 в 09:44)
 

Допустим, если в качестве $query идёт список.

   
 
 автор: coloboc66   (10.02.2005 в 09:43)   письмо автору
 
   для: cheops   (09.02.2005 в 10:18)
 

Есть файл для просмотра иредактирования таблицы БД примерного вида:
show_db.php
<form name="form1" action="show_db1.php" method=POST>
//далее идут операторы, выводящие инфу из БД и checkbox-ы для каждой строки из таблицы
...
<input type=submit name="submit" value=submit>
</form>

Я отмечаю нужные checkbox-ы, щелкаю на кнопке, происходит переход к файлу
show_db1.php
В этом файле обновляется таблица БД в зависимости от того, какие флажки были отмечены.

А как мне сделать так, чтобы после щелчка на кнопке я не переходил на страницу show_db1.php,
а остался на той же странице show_db.php но уже с выведенной обновленной таблицей БД?

   
 
 автор: cheops   (10.02.2005 в 09:54)   письмо автору
 
   для: coloboc66   (10.02.2005 в 09:43)
 

Хм... вы просто в качестве action поставьте show_db.php, а в форму добавьте скрытое поле
<input type=hidden name=action value=action>

тогда скрипт после нажатия на кнопку будет перезагружать текущую страницу, а в $_POST появится элемент action, по наличию которого можно опредилить, что была нажата кнопка
<?php
  
if(isset($_POST['action']))
  {
     
// Если кнопка нажата - обрабатываем данные
  
}
?>

   
 
 автор: coloboc66   (10.02.2005 в 11:32)   письмо автору
 
   для: cheops   (10.02.2005 в 09:54)
 

А вроде бы есть что-то специально для такого дела предназначенное - с корнем SELF что-ли. Или я ошибаюсь?

   
 
 автор: cheops   (10.02.2005 в 22:19)   письмо автору
 
   для: coloboc66   (10.02.2005 в 11:32)
 

Элемент суперглобального массива $_SERVER['PHP_SELF'] выводит имя текущей страницы... вряд ли его можно приспособить для этих целей. Нет в большинстве случаев, когда форма и обработчик находятся на одной странице прибегают именно к такому приёму.

   
 
 автор: coloboc66   (11.02.2005 в 09:46)   письмо автору
 
   для: cheops   (10.02.2005 в 22:19)
 

Да, кажется, вы правы... Спасибо.

   
Rambler's Top100
вверх

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