Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Правильное удаление новости через скрипт php 
:(
    Опции темы
Alexey007
Дата 31.3.2007, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



Вообщем так. У меня на странице есть список новостей и рядом с каждой копка удалить.
мне нужно что бы если я удалю какую-нибудт новость с номером 5. (а у меня есть и 6,7,8,9 и т.д.), то чтобы id  в базе данных правильно переписал пре вышестоящие новости... а то получается: 1,2,3,4,6,7,8.....
и 5 номер пропадает. помогите пожалуйста.
PM MAIL   Вверх
xolod
Дата 31.3.2007, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 24.5.2005
Где: Когда: Что:

Репутация: нет
Всего: 13



Цитата(Alexey007 @  31.3.2007,  22:23 Найти цитируемый пост)
чтобы id  в базе данных правильно переписал

Зачем? А когда будет 100 000 записей и удалится 87675-я, тоже все предыдущие обновлять будете?
Пахнет проблемами проектирования. Или непониманием идеологии субд?
PM MAIL   Вверх
SelenIT
Дата 31.3.2007, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 9
Всего: 401



Alexey007, id - это НЕ номер! PHP FAQ: MySQL. FAQ. ID.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Alexey007
Дата 1.4.2007, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



Спасибо.тогда другой вопрос как подправить код, чтобы "пустот" не было. т.е. если под таким id статьи нет, то не нужно созавать на него ссылку. вот код:
Код

$sql1=mysql_fetch_array(mysql_query( "SELECT id FROM news LIMIT 1" ));
$back = $id-1;
if($id-1 < $sql1[id]){
$back_to = '';
}else{
$back_to = '<a href=index.php?action=news_archiv&id='.$back.'>Предыдущая</a>';
}
echo $back_to;

$sql=mysql_fetch_array(mysql_query( "SELECT id FROM news order by id desc LIMIT 1" ));
$next = $id+1;
if($id+1 > $sql[id]){
$next_to = '';
}else{
$next_to = '<a href=index.php?action=news_archiv&id='.$next.'>Следущая</a>';
}
echo $next_to;

при следущая если будет несуществующий id, ссылку делать по след. СУЩествующий id.
PM MAIL   Вверх
mclight
Дата 4.4.2007, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 6.7.2005
Где: Baku, Azerbaijan

Репутация: нет
Всего: 2



а зачем Вам так путаться.......Вы же из базы берете id, а значит такая запись там есть! 
взяли id? 
потом создайте ссылку......вот и все......скрипт выберет статью где id равен значению переменной в ссылке
--------------------
Как я решал подводные камни Cakephp и не только
PM WWW ICQ MSN   Вверх
Alexey007
Дата 4.4.2007, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



Вы меня не поняли.
У меня при выводе ссылок след. и пред. берется существующий id а потом идет +-1.
Как сделать проверку что при таком id новость существует?
PM MAIL   Вверх
Vaulter
Дата 4.4.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



Alexey007, бери не +-1
а например для 5 новости
Код

SELECT news_id 
FROM `news` WHERE news_id != '5'
ORDER BY ABS(news_id - '5') LIMIT 2

запрос возвратит пред. и след. новость


--------------------
PM MAIL WWW ICQ   Вверх
mclight
Дата 5.4.2007, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 6.7.2005
Где: Baku, Azerbaijan

Репутация: нет
Всего: 2



у вас не правильный подход.......ID это не нумерация......это любое значение по которому можно идентифицировать запись в базе..................
--------------------
Как я решал подводные камни Cakephp и не только
PM WWW ICQ MSN   Вверх
SelenIT
Дата 5.4.2007, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 9
Всего: 401



Vaulter, это далеко не всегда будет давать желаемый результат...

Цитата(Alexey007 @  4.4.2007,  14:25 Найти цитируемый пост)
при выводе ссылок след. и пред. берется существующий id а потом идет +-1.
Как сделать проверку что при таком id новость существует?

Alexey007, правильный ответ - не делать такой глупой проверки, а запросить из самой базы наибольший id меньше текущего и наименьший id больше текущего. Это 2 запроса, с помощью UNION можно насильно объединить их в один:
Код

$q = "SELECT MAX(news_id) FROM `news` WHERE news_id < '".$id."'
UNION
SELECT MIN(news_id) FROM `news` WHERE news_id > '".$id."'";

Можно и не объединять. Если какой-то из запросов вернет NULL, значит, эта новость - соотв-но первая или последняя в ряду.

Это сообщение отредактировал(а) SelenIT - 5.4.2007, 08:33


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Vaulter
Дата 5.4.2007, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



Цитата(SelenIT @ 5.4.2007,  09:32)
Vaulter, это далеко не всегда будет давать желаемый результат...

далеко не всегда это сколько в процентах?

и почему Вы так считаете? хочу пример


--------------------
PM MAIL WWW ICQ   Вверх
Glip
Дата 5.4.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 1
Всего: 18



Vaulter,  к стати да. при news_id  1, 2, 5, 6, 7 например результат - 6, 7
а сначала мне тоже понравилось smile


--------------------
user posted image
PM MAIL   Вверх
Vaulter
Дата 5.4.2007, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



Glip, ага, усек.
да действительно.
тогда действительно оптимален вариант с MAX и MIN (сам тоже его использовал давно давно)


--------------------
PM MAIL WWW ICQ   Вверх
Alexey007
Дата 5.4.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



спасибо люди добрые) ток у меня не пашет smile 

Это сообщение отредактировал(а) Alexey007 - 5.4.2007, 15:58
PM MAIL   Вверх
Alexey007
Дата 5.4.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



Код

$sql_back=mysql_fetch_array(mysql_query( "SELECT MIN(id) FROM `news` WHERE id > '".$id."'" ));

$back_to = '<a href=index.php?action=news_archiv&id='.$id.'>Назад</a>';

echo $back_to;


Это сообщение отредактировал(а) Alexey007 - 5.4.2007, 16:03
PM MAIL   Вверх
Vaulter
Дата 5.4.2007, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



Alexey007, так это как раз вперед
а назад будет MAX(id) WHERE id < 


--------------------
PM MAIL WWW ICQ   Вверх
Alexey007
Дата 5.4.2007, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



но проблема в том что ссылка на ту новость, на которой страница в данный момент находится!

Это сообщение отредактировал(а) Alexey007 - 5.4.2007, 18:15
PM MAIL   Вверх
mishaSL
Дата 5.4.2007, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



Alexey007, в вообще к дате(timestamp) привязываюсь при решении подобных задач(новости и т.д.), либо к другим параметрам.

Если так хочется по Id и он у тебя auto_incriment, то думаю где-то так надо:
Код

<?php
$id = intval($_GET['id']);//или откуда там он у тебя берется:)
$sql = "(
        SELECT 0,`id`
        FROM `news`
        WHERE `id` <".$id."
        ORDER BY `id` DESC
        LIMIT 1
        )
        UNION (
        SELECT 1,`id`
        FROM `news`
        WHERE `id` >".$id."
        ORDER BY `id` ASC
        LIMIT 1
        )";
$query = mysql_query($sql) or die(mysql_error());
while(list($type,$nId) = mysql_fetch_row($query)) {
    if ($type == 0) {
        $back_to = '<a href=index.php?action=news_archiv&id='.$nId.'>Предыдущая</a>';
    } elseif($type == 1) {
        $next_to = '<a href=index.php?action=news_archiv&id='.$nId.'>Следущая</a>';
    }
}
print $back_to.' '.$next_to;
?>



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Alexey007
Дата 5.4.2007, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



ошибка. ваще запрос не выполняет:(
PM MAIL   Вверх
mishaSL
Дата 5.4.2007, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



Цитата(Alexey007 @  5.4.2007,  19:31 Найти цитируемый пост)
ошибка. 

Доступно показал ошибку smile  smile 
Скажи какая версия MySQL, проверь передается ли туда переменная $id. И выведи запрос из скрипта. А также было бы хорошо увидеть структуру таблицы.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Alexey007
Дата 5.4.2007, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



покопавшись понял, что он не понимает UNION и запросы в скобках. сделал без этого, но ВСЕРАВНО выводит id новости на которой щас я нахожусь smile 
PM MAIL   Вверх
SelenIT
Дата 5.4.2007, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 9
Всего: 401



Alexey007, Вы ж сами пихаете в ссылку свой старый id из переменной, а не новый, который только что достали из базы... smile


Это сообщение отредактировал(а) SelenIT - 5.4.2007, 19:41


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Alexey007
Дата 5.4.2007, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



Версия
Цитата

MySQL 3.23.53-max на localhost как root@localhost

Таблица:
Код

CREATE TABLE news (
  id bigint(20) NOT NULL auto_increment,
  name varchar(255) default NULL,
  text text,
  site varchar(50) default NULL,
  date date NOT NULL default '0000-00-00',
  img text NOT NULL,
  PRIMARY KEY  (id)
);


Добавлено через 6 минут и 44 секунды
P.S. качаю новую версиюsmile) может поможет, а может и нет.. на сервере сайта стоит 4 MySQL, но на нем ещё не проверял...
PM MAIL   Вверх
mishaSL
Дата 5.4.2007, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



Цитата(Alexey007 @  5.4.2007,  19:42 Найти цитируемый пост)
MySQL 3.23.53-max

 smile  smile  smile 
Это просто ужас smile  Но не критично smile 
1. Советую Поставить MySQL 4.1.13 и выше

Цитата(Alexey007 @  5.4.2007,  19:42 Найти цитируемый пост)
на сервере сайта стоит 4 MySQL

Должно работать. Оператор UNION был добавлен в MySQL 4.0.0

Если хочешь, то раздели на два запроса и будет на MySQL 3.23 работать smile 



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Alexey007
Дата 5.4.2007, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



ну типа настроил, ток прикол, он выводит кол-во ссылок на 1 меньше чем всех новостей smile 
PM MAIL   Вверх
mishaSL
Дата 5.4.2007, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



Цитата(Alexey007 @  5.4.2007,  20:25 Найти цитируемый пост)
он выводит кол-во ссылок на 1 меньше чем всех новостей

непонял, что он выводит?
покажите весь код пожалуйста smile 


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Alexey007
Дата 5.4.2007, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



код:
Код

$id = intval($_GET['id']);//èëè îòêóäà òàì îí ó òåáÿ áåðåòñÿ:)
$sql = "(
        SELECT 0,`id`
        FROM `news`
        WHERE `id` <".$id."
        ORDER BY `id` DESC
        LIMIT 1
        )
        UNION (
        SELECT 1,`id`
        FROM `news`
        WHERE `id` >".$id."
        ORDER BY `id` ASC
        LIMIT 1
        )";
$query = mysql_query($sql) or die(mysql_error());
while(list($type,$nId) = mysql_fetch_row($query)) {
    if ($type == 0) {
        $back_to = '<a href=index.php?action=news_archiv&id='.$nId.'>Ïðåäûäóùàÿ</a>';
    } elseif($type == 1) {
        $next_to = '<a href=index.php?action=news_archiv&id='.$nId.'>Ñëåäóùàÿ</a>';
    }
}
print $back_to.' '.$next_to;

выводит:
Код

Предыдущая СледущаяПредыдущая Следущая

зато ссылки работаютsmile))))
всего 3 новости в базе

Это сообщение отредактировал(а) Alexey007 - 5.4.2007, 20:33
PM MAIL   Вверх
mishaSL
Дата 5.4.2007, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



Alexey007, Вы что-то путаете. Только что проверил, все работает и выводит один раз. Вы выполняете код 2 раза, посмотрите внимательнее на весь ваш код. Я не зря просил выложить весь кусок кода, который отвечает за это smile 


Это сообщение отредактировал(а) mishaSL - 5.4.2007, 20:50


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Alexey007
Дата 5.4.2007, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



у меня 2 раза принтsmile)

Добавлено @ 21:38
А теперь давайте перейдем непосредсвенно к заглавию темыsmile
удаление новостей из базы вот код:
Код

if(isset($act))
  {
  if('go')
    {
    echo'12';
    if($res=mysql_query("delete from news where id=".$_GET['id']." limit 1") and
        $res=mysql_query("Alter table `news` auto_increment=0"))
{
echo'<b><font color="#FF0000"><center>Удалена!!</b></center></font>';
}

      }
      }

Задача в следущем: сделать потверждение на удаление. вот кнопка непосредственно на удаление:
Код

 echo '<form action="&act=go" method="post">
<input type="Hidden" name="id" value="'.$obj->id.'">
<input type="Submit" value="Удалить">
</form>';


Это сообщение отредактировал(а) Alexey007 - 5.4.2007, 21:39
PM MAIL   Вверх
Glip
Дата 5.4.2007, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 1
Всего: 18



а для чего limit и Alter table ?


--------------------
user posted image
PM MAIL   Вверх
Alexey007
Дата 5.4.2007, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



не знаюsmile
PM MAIL   Вверх
mishaSL
Дата 6.4.2007, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



Alexey007, а ваш код у вас вообще работает?
Передаете методом POST, получаете данные из GET smile 

Вот вам два варианта:
№1
Код

<?php
if(isset($_POST['doDelete'])) {
    if ($_GET['confirm'] == '0') {
        print '<a href="?act=go&confirm=1&id='.$_POST['id'].'">Удалить</a>&nbsp;&nbsp;<a href="javascript:history.back();">Отмена</a>';
    } elseif($_GET['confirm'] == '1') {
     mysql_query("DELETE FROM `news` WHERE `id` = ".intval($_GET['id'])." LIMIT 1") or die(mysql_error());
        print '<b><font color="#FF0000"><center>Удалена!!</b></center></font>';
    }

} else {
    //тут код который достает ID и выводит то что вам нужно
     echo '<form action="?act=go&confirm=0" method="post">
    <input type="Hidden" name="id" value="'.$obj->id.'">
    <input type="Submit" name="doDelete" value="Удалить">
    </form>';
}
?>


№2
Код

<?php
if(isset($_POST['doDelete'])) {
     mysql_query("DELETE FROM `news` WHERE `id` = ".intval($_POST['id'])." LIMIT 1") or die(mysql_error());
        print '<b><font color="#FF0000"><center>Удалена!!</b></center></font>';

} else {
    //тут код который достает ID и выводит то что вам нужно
     echo '<form action="?act=go" method="post">
    <input type="Hidden" name="id" value="'.$obj->id.'">
    <input type="Submit" name="doDelete" value="Удалить" onclick="return (confirm(\'Удалить запись?\') ? true : false);" >
    </form>';
}
?>


Выбирайте как вам удобнее smile 


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Alexey007
Дата 6.4.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



У меня работает мой кодsmile) я его сам писал вот и кривой))
PM MAIL   Вверх
Alexey007
Дата 6.4.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



спасибо. теперь потребность в корзине новостей.
Как правильно послать запрос, чтобы переместить данные из одной в другую?
И в корзине чуть чуть надо этот запрос удаление изменить, сделать чтобы рядом ставить галочки а внизу одну кнопку удалить?

PM MAIL   Вверх
Glip
Дата 6.4.2007, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 1
Всего: 18



Цитата

Как правильно послать запрос, чтобы переместить данные из одной в другую?

из одной в другую чего?

не торопитесь, проверяйте то что написали перед тем как запостить и вас проще будет понять ;)


--------------------
user posted image
PM MAIL   Вверх
Alexey007
Дата 6.4.2007, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



Вообщем так. Есть 2 таблицы news и news_trash.
Нужен запрос, чтобы из одной таблицы переместить(т.е. из одной удалить, в другую таблицу добавить) ВСЕ данные. smile 
PM MAIL   Вверх
mishaSL
Дата 6.4.2007, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



Цитата(Alexey007 @  6.4.2007,  17:55 Найти цитируемый пост)
Нужен запрос, чтобы из одной таблицы переместить(т.е. из одной удалить, в другую таблицу добавить) ВСЕ данные. 

Вы сами ответили на свой вопрос - из одной таблицы удаляете в другую добавляете smile 



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Alexey007
Дата 7.4.2007, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



 smile 
значит теперь когда идет редактирование новости) тож надо поправить, помогите плиз... Можно как-нибудь усовершенствовать код.. или упростить например.
Вот кнопка
Код

<form action="index.php?action=news_edit&act=edit#edit" method="post">
<input type="Hidden" name="id" value="'.$obj->id.'">
<input type="Submit" value="Изменить">

Вот самый edit:
Код

if(isset($act))
  {
  if($act == 'edit')
    {
    $work = $act;
    $res=mysql_query("select * from news where id='".$id."'");
      while($obj = mysql_fetch_array($res))
      while(list($var, $val)=each($obj))
      {$$var=$val;}
 include 'news_edit_form.inc';//форма изменения
    }

Ещё задача: сделать фвозможность делать новость невидимой... Поле в таблице я создам... но вот как быть с добалением данных?
Есть не поле ввода текста, а поле для"Галочки".

Это сообщение отредактировал(а) Alexey007 - 7.4.2007, 19:23
PM MAIL   Вверх
mclight
Дата 9.4.2007, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 6.7.2005
Где: Baku, Azerbaijan

Репутация: нет
Всего: 2



создайье еще один столбик.....назовем его visible, и все.....при чтении проверяйте его состояние, при добавлении пишите ему значение....
--------------------
Как я решал подводные камни Cakephp и не только
PM WWW ICQ MSN   Вверх
Alexey007
Дата 9.4.2007, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



ну это уже дело техники))
а в коду что-нибудь для упрощения поменять надо?)
PM MAIL   Вверх
Glip
Дата 9.4.2007, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 1
Всего: 18



можно посмотреть на http://ru.php.net/manual/en/function.mysql-fetch-assoc.php
мне кажется оно немного уместнее 


--------------------
user posted image
PM MAIL   Вверх
Alexey007
Дата 24.4.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



Что-то я неочень понял...
Что делает эта функция?
mclight, Вы не очень поняли мой вопрос про невидимость новости..
Поле я то создам, но вот как принимать данные от "галочки"? Т.е. как напсать этот код:
есть галочка есть, в поле вносим YES, есть нету - NO.

Это сообщение отредактировал(а) Alexey007 - 24.4.2007, 23:26
PM MAIL   Вверх
mclight
Дата 25.4.2007, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 6.7.2005
Где: Baku, Azerbaijan

Репутация: нет
Всего: 2



применрно так:

Код

while($row=mysql_fetch_assoc($result)){
  if($row['visible']=='Yes'){
     echo $row['id'];
  }
}


а что мешает Вам проверить значение этого поля? если значение "yes", сделать его "no".....и наоборот

Это сообщение отредактировал(а) mclight - 25.4.2007, 07:50
--------------------
Как я решал подводные камни Cakephp и не только
PM WWW ICQ MSN   Вверх
Alexey007
Дата 25.4.2007, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



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

<input name="visible_n" type="checkbox" checked>

Вопрос, как подать запрос на добавления значеня в базу данных?
PM MAIL   Вверх
mclight
Дата 26.4.2007, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 6.7.2005
Где: Baku, Azerbaijan

Репутация: нет
Всего: 2



Цитата(Alexey007 @  25.4.2007,  17:47 Найти цитируемый пост)
Вопрос, как подать запрос на добавления значеня в базу данных? 

Код

<input name="visible_n" type="checkbox" checked="checked"/>

если checkbox выбран, передастся переменная visible_n....
Код

if(isset($visible_n)){

}

--------------------
Как я решал подводные камни Cakephp и не только
PM WWW ICQ MSN   Вверх
Alexey007
Дата 26.4.2007, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: нет
Всего: 1



Ага, спасибо. smile

Добавлено через 1 минуту и 7 секунд
Glip, я что-то не очень понял, что делает эта функция?
PM MAIL   Вверх
mclight
Дата 27.4.2007, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 6.7.2005
Где: Baku, Azerbaijan

Репутация: нет
Всего: 2



Цитата(Alexey007 @  27.4.2007,  01:06 Найти цитируемый пост)
Glip, я что-то не очень понял, что делает эта функция? 

mysql_fetch_num()   - обращаетесь по номеру поля
mysql_fetch_assoc() - обращаетесь по имени поля
mysql_fetch_array()  - обращаетесь как хотите, как по номеру, так и по имени
--------------------
Как я решал подводные камни Cakephp и не только
PM WWW ICQ MSN   Вверх
Glip
Дата 27.4.2007, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 1
Всего: 18



Цитата(Alexey007 @  26.4.2007,  23:06 Найти цитируемый пост)
Glip, я что-то не очень понял, что делает эта функция?

возвращает строку результата в виде ассоциативного массива имя_поля => значение
посмотрите ссылку, там примеры есть


--------------------
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1033 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.