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
Форумы портала PHP.SU :: Версия для печати :: не удаляется таблица в базе данных
Форумы портала PHP.SU » » Работа с СУБД » не удаляется таблица в базе данных

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

1. foozzi - 29 Июня, 2011 - 09:42:08 - перейти к сообщению
вот сам код с помощью которого происходит удаление категории на сайте (и полей в базе данных)

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

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

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

подскажите что делать?
2. White - 29 Июня, 2011 - 09:53:54 - перейти к сообщению
3. foozzi - 29 Июня, 2011 - 10:14:56 - перейти к сообщению
ошибок нет, пишет что удалило и все

могло ли вызвать такое из-за того что я при импорте таблиц убрал 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( что делать подскажите, выходит лажа с удалением категорий
4. DeepVarvar - 29 Июня, 2011 - 11:21:42 - перейти к сообщению
foozzi пишет:
int(255) DEFAULT '0'

эээ, 255 разрядов целого числа и "0" как строка в поле типа int?
5. foozzi - 29 Июня, 2011 - 11:33:42 - перейти к сообщению
DeepVarvar пишет:
foozzi пишет:
int(255) DEFAULT '0'

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


подскажи плиз, я начинающий кодер) все еще не успел освоить)
6. DeepVarvar - 29 Июня, 2011 - 12:16:20 - перейти к сообщению
foozzi пишет:
Откуда: /usr/local/foozzi

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

так правильнее будет (где int, максимум 11 знаков и дефолт как число без кавычек, в MySQL в кавычках только строки):
catid int(11) DEFAULT 0,
7. foozzi - 29 Июня, 2011 - 14:19:19 - перейти к сообщению
DeepVarvar пишет:
foozzi пишет:
Откуда: /usr/local/foozzi

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

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


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

за подсказку спс, щас попробую
(Добавление)
ура! спасибо помогло)
8. White - 29 Июня, 2011 - 14:38:22 - перейти к сообщению
или DEFAULT "0", одинарная кавычка только для данных типа string(допускается двойная), для численных только двойная, либо вообще без нее, для имен лучше всего - (`имя`).
9. foozzi - 29 Июня, 2011 - 15:08:25 - перейти к сообщению
да и еще подскажите, как понять это setcookie("password",$password,time()+94555556);
time() это дата и время, тут как я понимаю время хранения кукисов?
10. White - 29 Июня, 2011 - 15:17:36 - перейти к сообщению
time() - текущее unix время вашего сервера (сколько секунд прошло с 01-01-1970)
11. foozzi - 29 Июня, 2011 - 15:18:47 - перейти к сообщению
White пишет:
time() - текущее unix время вашего сервера (сколько секунд прошло с 01-01-1970)


я в курсе, а что означает эта строка что я привел, в заблуждение кидает...
12. White - 29 Июня, 2011 - 15:21:14 - перейти к сообщению
foozzi пишет:
setcookie("password",$password,time()+94555556)
устанавливает время жизни cookie на 3 года вперед
13. foozzi - 29 Июня, 2011 - 15:23:18 - перейти к сообщению
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


почему?
14. Мелкий - 29 Июня, 2011 - 15:26:13 - перейти к сообщению
foozzi пишет:
тут как я понимаю время хранения кукисов?

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

http://forum.php.su/topic.php?fo...1&topic=3026
15. White - 29 Июня, 2011 - 15:27:14 - перейти к сообщению
заголовки всегда отправляются перед выводом каких либо данных (например посредством echo), вставляйте в самом начале вашего кода (перед строкой 9, вашего index.php)

 

Powered by ExBB FM 1.0 RC1