Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: не удаляется таблица в базе данных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): [1] 2 3 »   

> Без описания
foozzi
Отправлено: 29 Июня, 2011 - 09:42:08
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




вот сам код с помощью которого происходит удаление категории на сайте (и полей в базе данных)

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.                 }
  3.         }
  4. /* ================================================================================
  5.    Удаляем категории
  6.    ================================================================================ */
  7.  
  8.         if ($func == "deletecat")
  9.         {
  10.                 if ($_POST['submit'])
  11.                 {
  12.                         if ($_POST['password'] == $adminpass AND $_POST['submit']){
  13.                                 $id = $_POST['id'];
  14.                                 mysql_connect($db_host, $db_user, $db_pass)
  15.                                         or die ("Не удается подключится к базе данных.");
  16.                                 mysql_select_db($db_database)
  17.                                         or die ("Невозможно выбрать базу данных.");
  18.                                 $sql = "DELETE FROM files_catagory WHERE id = '$id'";
  19.                                 mysql_query($sql)
  20.                                         or die ("Невозможно обновить.");
  21.                                 $sql = "DELETE FROM files WHERE catid = '$id'";
  22.                                 mysql_query($sql)
  23.                                         or die ("Невозможно удалить файлы");
  24.                                 echo "Выполнено! <a href=files.php>Вернуться на главную страницу</a>";
  25.                         } else {
  26.                                 echo "Неверный пароль.";
  27.                         }
  28.                 } else {
  29.                 ?>
  30.                                 <FORM METHOD=POST ACTION="files.php?func=deletecat&id=<?PHP echo $id; ?>">
  31.                                 <B>Пароль Администратора: </B><INPUT TYPE="text" NAME="password" VALUE="<?PHP echo $password;?>"><BR>
  32.                                 <INPUT TYPE="submit" NAME="submit" VALUE="Удалить категорию">
  33.                                 </FORM>



У меня 3 таблицы:
files
files_catagory
files_folders


категории хранятся в files_catagory там есть поля:
id
name
description
files
upload

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

Но дело в том о когда я удаляю категорию на сайте,то она остается и на сайте и в базе данных, то есть удаление не происходит

подскажите что делать?


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
White
Отправлено: 29 Июня, 2011 - 09:53:54
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)






-----
if(time()>1356048000) die();
 
 Top
foozzi
Отправлено: 29 Июня, 2011 - 10:14:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




ошибок нет, пишет что удалило и все

могло ли вызвать такое из-за того что я при импорте таблиц убрал DEFAULT '0'
ну вот было так

CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE files (
  2.    id int(255) DEFAULT '0' NOT NULL AUTO_INCREMENT,
  3.    catid int(255) DEFAULT '0' NOT NULL,
  4.    folderid int(255) DEFAULT '0' NOT NULL,
  5.    filesize varchar(255) NOT NULL,
  6.    filename varchar(255) NOT NULL,
  7.    filetype varchar(255) NOT NULL,
  8.    description text NOT NULL,
  9.    votes int(255) DEFAULT '0' NOT NULL,
  10.    allvotes int(255) DEFAULT '0' NOT NULL,
  11.    downloads int(255) DEFAULT '0' NOT NULL,
  12.    url text NOT NULL,
  13.    UNIQUE id (id)
  14. );


а я зделал так:
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE files (
  2.    id int(255) NOT NULL AUTO_INCREMENT,
  3.    catid int(255) DEFAULT '0' NOT NULL,
  4.    folderid int(255) DEFAULT '0' NOT NULL,
  5.    filesize varchar(255) NOT NULL,
  6.    filename varchar(255) NOT NULL,
  7.    filetype varchar(255) NOT NULL,
  8.    description text NOT NULL,
  9.    votes int(255) DEFAULT '0' NOT NULL,
  10.    allvotes int(255) DEFAULT '0' NOT NULL,
  11.    downloads int(255) DEFAULT '0' NOT NULL,
  12.    url text NOT NULL,
  13.    UNIQUE id (id)


потому что выбивало ошибку из-за DEFAULT '0' просветите почему

разузнал почему DEFAULT '0' в id выдвал ошибку, потому что этот скрипт работал под 4х скуль а у меня 5( что делать подскажите, выходит лажа с удалением категорий

(Отредактировано автором: 29 Июня, 2011 - 11:09:54)



-----
90% ошибок находятся в полуметре от монитора...
 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Июня, 2011 - 11:21:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




foozzi пишет:
int(255) DEFAULT '0'

эээ, 255 разрядов целого числа и "0" как строка в поле типа int?
 
 Top
foozzi
Отправлено: 29 Июня, 2011 - 11:33:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




DeepVarvar пишет:
foozzi пишет:
int(255) DEFAULT '0'

эээ, 255 разрядов целого числа и "0" как строка в поле типа int?


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


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Июня, 2011 - 12:16:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




foozzi пишет:
Откуда: /usr/local/foozzi

Вернее будет: /home/foozzi Закатив глазки

так правильнее будет (где int, максимум 11 знаков и дефолт как число без кавычек, в MySQL в кавычках только строки):
catid int(11) DEFAULT 0,
 
 Top
foozzi
Отправлено: 29 Июня, 2011 - 14:19:19
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




DeepVarvar пишет:
foozzi пишет:
Откуда: /usr/local/foozzi

Вернее будет: /home/foozzi Закатив глазки

так правильнее будет (где int, максимум 11 знаков и дефолт как число без кавычек, в MySQL в кавычках только строки):
catid int(11) DEFAULT 0,


/usr/local/foozzi - домашняя директория BSD/Unix систем а /home/foozzi - Linux 2 разные вещи

за подсказку спс, щас попробую
(Добавление)
ура! спасибо помогло)


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
White
Отправлено: 29 Июня, 2011 - 14:38:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




или DEFAULT "0", одинарная кавычка только для данных типа string(допускается двойная), для численных только двойная, либо вообще без нее, для имен лучше всего - (`имя`).


-----
if(time()>1356048000) die();
 
 Top
foozzi
Отправлено: 29 Июня, 2011 - 15:08:25
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




да и еще подскажите, как понять это setcookie("password",$password,time()+94555556);
time() это дата и время, тут как я понимаю время хранения кукисов?


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
White
Отправлено: 29 Июня, 2011 - 15:17:36
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




time() - текущее unix время вашего сервера (сколько секунд прошло с 01-01-1970)


-----
if(time()>1356048000) die();
 
 Top
foozzi
Отправлено: 29 Июня, 2011 - 15:18:47
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




White пишет:
time() - текущее unix время вашего сервера (сколько секунд прошло с 01-01-1970)


я в курсе, а что означает эта строка что я привел, в заблуждение кидает...


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
White
Отправлено: 29 Июня, 2011 - 15:21:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




foozzi пишет:
setcookie("password",$password,time()+94555556)
устанавливает время жизни cookie на 3 года вперед


-----
if(time()>1356048000) die();
 
 Top
foozzi
Отправлено: 29 Июня, 2011 - 15:23:18
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




White пишет:
foozzi пишет:
setcookie("password",$password,time()+94555556)
устанавливает время жизни cookie на 3 года вперед


при вставке php кода в html из-за этой строки выходит ошибка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: Cannot modify header information - headers already sent by (output started at Z:\denwer\www\denwer\download\index.php:9) in Z:\denwer\www\denwer\download\index.php on line 10


почему?


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
Мелкий Супермодератор
Отправлено: 29 Июня, 2011 - 15:26:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




foozzi пишет:
тут как я понимаю время хранения кукисов?

Аха, указание, что куку надо хранить 94555556 секунд, начиная с текущего времени на сервере.
(Добавление)
foozzi пишет:
почему?

http://forum.php.su/topic.php?fo...1&topic=3026


-----
PostgreSQL DBA
 
 Top
White
Отправлено: 29 Июня, 2011 - 15:27:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




заголовки всегда отправляются перед выводом каких либо данных (например посредством echo), вставляйте в самом начале вашего кода (перед строкой 9, вашего index.php)


-----
if(time()>1356048000) die();
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB