0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 43
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Проверка на существование имени в базе12.10.2012, 22:27. Показов 5419. Ответов 43
Метки нет (Все метки)
Привет всем. Вот мой очередной трабл))) Ссылки у меня вида index.php?cat=health и формируются из базы, если пользователь вместо health вобьет припустим heal тогда браузер выдаст ошибку, поэтому мне нужно сделать проверку, существует ли heal в базе. Если нет, значит отправить на index.
Есть выборка из базы, в ней все $CAT хранятся:
0
|
12.10.2012, 22:27 | |
Ответы с готовыми решениями:
43
Проверка на существование логина в базе Проверка имени файла в базе Ошибка проверки логина на существование в базе данных Проверка на существование БД MySQL |
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|||||||||||
12.10.2012, 22:33 | 3 | ||||||||||
вместо
0
|
Почетный модератор
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
12.10.2012, 22:34 | 4 | |||||
Зачем вам вообще что то извлекать если необходимо просто проверить наличие такой записи?
0
|
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 43
|
|
12.10.2012, 23:03 [ТС] | 5 |
Я укоротил, там есть еще продолжение
Добавлено через 26 минут не это надо проверять
0
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
||||||
12.10.2012, 23:17 | 6 | |||||
ну если у вас есть все категории из базы уже выбранные, то база данных к теме не относится уже
Проверяйте на пхп. Сделайте массив из категорий и проверяйте функцией in_array() или прям перебрав результат проверьте
0
|
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 43
|
||||||
12.10.2012, 23:24 [ТС] | 7 | |||||
Ну можно таким способ, но наверное не совсем подойдет... завтра попробую....
Просто у меня все страницы формируются через GET запросы с помощью $_GET['cat'] и $_GET['subcat'], но для subcat я прописать могу аналогично. А так я могу сделать???
0
|
Почетный модератор
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
12.10.2012, 23:29 | 8 | |||||
нет. или Вы не поняли меня, или я Вас.
0
|
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 43
|
|
12.10.2012, 23:30 [ТС] | 9 |
Завтра буду пробовать... сейчас уже не имею возможности... к стати пока функции мне хорошо не дались((.. завтра отпишусь, надеюсь получится некоторыми предполагаемыми способами
0
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
||||||
12.10.2012, 23:32 | 10 | |||||
0
|
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 43
|
|
13.10.2012, 02:46 [ТС] | 11 |
наверное я)).. завтра попробую
Добавлено через 3 часа 13 минут мне не надо экранировать или я вас не понимаю или вы меня, у меня все страницы, даже навигация формируются из переданной строкой браузера... наверное ответ на мой вопрос очень прост, но я не правильно объясняю
0
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|
13.10.2012, 02:48 | 12 |
Экранировать надо любые данные пришедшие от пользователя которые отправляются в бд запросом
0
|
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 43
|
|
13.10.2012, 03:02 [ТС] | 13 |
DrobyshevAlex,
Из таблицы в базе я достаю все существующие значения index?cat=... и формирую по ним навигацию и ссылки, т.е. рубрики health-index?cat=health..., beauty-index?cat=beauty, cook-index?cat=cook ... если пользователь выбрал рубрику health значит я ему достаю одним запросом все рубрики которые имеют метку health, а если пользователь в строке браузера введет несуществующую ссылку, например index?cat=heal, тогда по $GET['cat'] мне придет несуществующий запрос, который мне надо обработать, но если я переделаю несуществующий запрос в пустоту, тогда сформируется просто индексная страница.
0
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
||||||
13.10.2012, 03:24 | 14 | |||||
Ну так я спрашивал вы все достаёте? если да то ответ в посте 6
Добавлено через 5 минут Вот вам пришел запрос с переменной cat. Она же вам нужна для выбора из базы? Если нет, то зачем вообще передавать эту переменную? А раз нужна, и вы в бд её отправляете, вот там и проверяйте. У вас где то есть запрос
Другое дело, что не обязательно проверять отдельно, подделали ла запрос, если нет такого значения в базе, то просто не чего ен выбирится, и вы узнаете что он подделан, и можно сделать страничку ошибки 404 или редирект на главную. Но с другой стороны, раз у вас всё ранво все категории выбраны, то можно как я написал в посте 6 проверить, есть ли такая категория вообще, прежде чем делать запрос, и опять же либо ошибку 404 либо редирект на главную.
0
|
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 43
|
||||||||||||||||||||||||||
13.10.2012, 13:51 [ТС] | 15 | |||||||||||||||||||||||||
Есть
Вот мой массив, в котором содержатся все возможные значения категорий и соответственно $cat:
0
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|||||||||||
13.10.2012, 14:05 | 16 | ||||||||||
Это вы только одну строку вытащили из базы.
Ну можно как то так сделать
А нет, стоп. Это же будет массив массивов.
0
|
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 43
|
|
13.10.2012, 14:19 [ТС] | 17 |
mysql_fetch_assoc() expects parameter 1 to be resource, null given in
Добавлено через 2 минуты Сорри, я понял здесь $result должен быть Добавлено через 7 минут DrobyshevAlex, Опять не работает что-то... секунду... сейчас скины выложу
0
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
||||||
13.10.2012, 14:29 | 18 | |||||
Ну если вы там ещё будете что то делать с результатом из базы, то есть ещё применять будете mysql_fetch... то вам нужно передвинуть внутренний указатель результата на начало.
как то так Кликните здесь для просмотра всего текста
Но вот я не понимаю, вы первый запрос делаете только для определения есть ли у вас категория в бд? или потом выводите где то ещё результат первого запроса? Добавлено через 1 минуту Просто если вы используете только для определения категории, то вам не нужно выбирать всё содержимое, а нужно просто проверить есть ли такая категория в базе и всё.
0
|
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 43
|
||||||
13.10.2012, 14:34 [ТС] | 19 | |||||
DrobyshevAlex, Вот код:
0
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|||||||||||
13.10.2012, 14:34 | 20 | ||||||||||
хм, не совсем понятна структура вашей таблицы.
У вас категории и подкатегории хранятся в однйо таблице? И получается что если для одной категории есть несколько подкатегорий то у вас что, дубликат строк с именем категории идёт? Нужно тогда как то так сделать
Что бы подкатегорию, указываете ID категории, то есть pid = $cat_id ну или через join по имени
0
|
13.10.2012, 14:34 | |
13.10.2012, 14:34 | |
Помогаю со студенческими работами здесь
20
Проверка на существование логина в БД Проверка на существование логина Проверка на существование страницы! Проверка записи на существование в БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |