Вопрос № 66214: Добрый день.
На сайте установил скрипты по продаже мобильного контента. Проблема в том, что не отображаются картинки-превьюшки. Вместо них кресты. Сами картинки на сайт загружаются. Посмотреть можно по адресу kupec.biz/kup/play/...Вопрос № 66217: Здравствуйте!
Сделал небольшой скрипт, который использует переменные окружения.
Но на сервере моего сайта он неработает(на денвере все в порядке). Я так понимаю, что это из-за
register_globals = Off.
Что нужно добавить в скрипт или ...Вопрос № 66240: Здравствуйте!
Пожалуйста подскажите как правильно удалять строку из таблицы mysql. Я похоже делаю, что-то не так. Сам запрос вродебы верен, но вот после, обработка ошибок, я не понимаю вообще структуры команд с "or".
...Вопрос № 66320: Здравствуйте!
не могу найти функций, чтобы узнать первый не занятый id записи в бд (т.е. тот номер под которым будет сохранена следующая строчка).
А ещё нужно как-то легко узнать id только что сделаной записи.
Pls подскажите!...
Вопрос № 66.214
Добрый день.
На сайте установил скрипты по продаже мобильного контента. Проблема в том, что не отображаются картинки-превьюшки. Вместо них кресты. Сами картинки на сайт загружаются. Посмотреть можно по адресу kupec.biz/kup/play/
Отправлен: 09.12.2006, 12:26
Вопрос задал: Mish2001 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Райкин Сергей Александрович
Здравствуйте, Mish2001!
Возможно у вас картинки находятся не в папке kup/play/tmp/название.картинки
или буквы в файле большые, напр. Название.КАРТИНКИ, некоторые серверы чувствительны к регистру...
--------- программист должен работать в свое удовольствие
Здравствуйте!
Сделал небольшой скрипт, который использует переменные окружения.
Но на сервере моего сайта он неработает(на денвере все в порядке). Я так понимаю, что это из-за
register_globals = Off.
Что нужно добавить в скрипт или директорию сайта, чтобы включить эту опцию?
Спасибо!
Отправлен: 09.12.2006, 12:45
Вопрос задал: Valeraorg (статус: 4-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Олег Владимирович
Здравствуйте, Valeraorg!
Можно в ту директорию, где скрипт, добавить файл .htaccess , где прописать php_flag register_globals on
Но по-моему, лучше использовать глобальные массивы $_POST['переменная'], $_GET['-//-']
Удачи!
--------- Факультет ПМ-ПУ - лучший в СПбГУ!
Ответ отправил: Олег Владимирович (статус: 8-ой класс)
Ответ отправлен: 09.12.2006, 13:52 Оценка за ответ: 5
Еще можно добавить в начале скрипта:
ini_set('register_globals','1');
или
ini_set('register_globals','on');
Но лучше, наверное, последовать совету Олега Владимировича и использовать глобальные массивы, поскольку при включенном register_globals сильно страдает безопасность Вашего скрипта. Кроме того, с другой проблемой Вы уже столкнулись. Код, написанный для включенного register_globals, не будет работать там, где этот режим выключен. А при использовании массивов $_POST и $_GET Ваш код сохранит работоспособность в обоих случаях...
Ответ отправил: Денис Сергеевич (статус: 1-ый класс)
Ответ отправлен: 10.12.2006, 20:32
Вопрос № 66.240
Здравствуйте!
Пожалуйста подскажите как правильно удалять строку из таблицы mysql. Я похоже делаю, что-то не так. Сам запрос вродебы верен, но вот после, обработка ошибок, я не понимаю вообще структуры команд с "or".
Отвечает: Алексей Смуриков
Здравствуйте, Талипов А Н!
Попробуйте запрос вот в такой форме:
mysql_query("DELETE FROM cat1 WHERE id=".$p_id, $conn)
or die ("
неудаётся удалить описание объекта.
");
p.s. Возможно также придётся заключить условие в кавычки (id='Vasa') если id строковое значение!
--------- Speccy Rulezz!!!
Ответ отправил: Алексей Смуриков (статус: Практикант)
Ответ отправлен: 09.12.2006, 17:30 Оценка за ответ: 5 Комментарий оценки: Спасибо! Работает! Опять моя не внимательность.Обидно, глупая ошибка.
Отвечает: Цепковский Антон Сергеевич
Здравствуйте, Талипов А Н!
Вроде Вы всё делаете правильно.
Вы выполняете запрос посредством функции mysql_query; если функция возвратит FALSE, тогда выполнится комманда die("...") т.е. скрипт прекратит работу и выдаст ошибку. Если функция возвратит TRUE, то die не выполнится и скрипт продолжить работу со следующей строки.
В данном случае mysql_query и должна возвращать TRUE или FALSE.
Только для запросов SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() возвращает указатель на результат запроса, или FALSE если запрос не был выполнен. В остальных случаях, mysql_query() возвращает TRUE в случае успешного запроса и FALSE в случае ошибки. Значение не равное FALSE говорит о том, что запрос был выполнен успешно. Он не говорит о количестве затронутых или возвращённых рядов. Вполне возможна ситуация, когда успешный запрос не затронет ни одного ряда.
Если возникает ошибка в базе данных или в запросе - попробуйте её узнать изменив скрипт так:
// удаление описания объекта
mysql_query("delete * FROM `cat1` where id=".$p_id, $conn)
or die ("<p>неудаётся удалить описание объекта: ".mysql_error()."</p>
");
// удаляем связи
mysql_query("delete * from `cat_l` where `obj`=".$p_id, $conn)
or die ("<p>не могу удалить связи: ".mysql_error()."</p>
");
функция mysql_error() выведет Вам ошибку возникшую с последним запросом.
Отвечает: Игорь Елизаров
Здравствуйте, Талипов А Н!
после удаления строк индексы не освобождаются.
индексы присваиваются последовательно при создании строки, но при удалении строк не освобождаются. Да, конечнов базе остаются Дыры в индексах, но зато это препятсятвует появлению ошибок, связанных с повторным использованием освободившихся индексов, что особенно актуально для связанных таблиц.
то есть в одной таблице записис удалили, а в подчиненной- забыли.
эти записи нельзя будет использовать, даже если Вы введете новую запись в главную таблицу, ведь у новой записи будет новый ID.
Ответ отправил: Игорь Елизаров (статус: 8-ой класс)
Ответ отправлен: 09.12.2006, 20:59 Оценка за ответ: 5
Вопрос № 66.320
Здравствуйте!
не могу найти функций, чтобы узнать первый не занятый id записи в бд (т.е. тот номер под которым будет сохранена следующая строчка).
А ещё нужно как-то легко узнать id только что сделаной записи.
Pls подскажите!
Отвечает: Алексей Смуриков
Здравствуйте, Талипов А Н!
Можно конечно каждый раз подсчитывать этот id самостоятельно:
SELECT MAX(id) FROM f_posts;
И потом просто прибавить единицу!
Но целесообразнее будет использовать автоматический счётчик! Для этого надо будет добавить к типу id слово auto_increment или auto_i, и при добавлении записи просто не указывать данное поле:
INSERT INTO `f_posts` (post) VALUES ('test message!');
--------- Speccy Rulezz!!!
Ответ отправил: Алексей Смуриков (статус: Практикант)
Ответ отправлен: 10.12.2006, 09:58