Что в данном случае лучше - лишний запрос/два или GET?

Asar

Новичок
Что в данном случае лучше - лишний запрос/два или GET?

Изначально имеется скрипт, который делает пару запросов к базе и выводит нужные мне значения. Со странице, на которой находится этот скипт имеется ссылка на другую страницу, где понадобятся те же самые значения.
Для того, чтобы их узнать, можно сделать еще пару запросов к БД (аналогичных первому скрипту), можно передать их через ссылку GET'om (типа ?key1=value1&key2=value2), можно извратиться через POST и скрытое поле формы...
Какой вариант по-вашему наиболее благозвучен?

ЗЫ. В ближайшее время мод_рирайтить не буду, соответственно, без GET'a адресочки будут поприятней смотреться... Кроме того, если пользователь пропишет вместо value1 нечто другое, получится бессмыслица, потому что эти данные напрямую выводятся на странице. Т. е. вместо нужного "автомобиль БМВ" может получиться "сковорода БМВ"...
Тяжесть запросов - пара селектов 5 столбцов из таблицы ~5000 записей.
 

Кром

Новичок
Если ты сделаешь несколько запросов к базе, база не развалиться.
В крайнем случае можешь записывать значения во временную таблицу.

>соответственно, без GET'a адресочки будут поприятней смотреться...

Смысл фразы очень сомнителен.
 

Asar

Новичок
Хм... Почему сомнителен, если в одном случае у меня будет прописано www.site.ru/computers/, а во втором www.site.ru/computers/?src=13&pc=32 ? Первый вариант вроде как поприятнее глазу, да и запомнить его (если, вдруг, приспичит) попроще... Повторюсь еще раз - мод_рирайтить я пока не буду, а как еще можно упросить адресок - знать не знаю...
 

Кром

Новичок
Asar, ты превратно понимаешь предназначение mod_rewrite.

>прописано www.site.ru/computers/, а во втором www.site.ru/computers/?src=13&pc=32 ?

Эти ссылки никак нельзя назвать равнозначными. И никакой mod_rewrite не сделает из первой ссылки перенаправление на вторую.
 

Фанат

oncle terrible
Команда форума
Какой вариант по-вашему наиболее благозвучен?
запрос к бд.
В ближайшее время мод_рирайтить не буду, соответственно, без GET'a адресочки будут поприятней смотреться...
это ты серьёзно?
ты считаешь, что мод-реврайт придуман для того, чтобы тягать вагон переменных от скрипта к скрипту?
ты считаешь, что море НЕ ИМЕЮЩИХ НИ МАЛЕЙШЕГО ОТНОЕШИНЯ К НАВИГАЦИИ "КАТАЛОГОВ" - это "поприятней"?
 

Asar

Новичок
Вполне возможно, я с рирайтом пока не дружу, потому и... Но смысл остается главный - в таком случае тем более будут адресочки для пользователей красивее при использовании запросов лишних в противовес GET'y...
 

Фанат

oncle terrible
Команда форума
блин и задолбали уже разделами ошибаться.
какого хрена это лежит в форуме PHP & Mysql?
 

Asar

Новичок
А где этому еще лежать, если просьба сравнить метод с Mysql зпросами и без них?

-~{}~ 23.03.05 16:58:

Пока печатал посты, не увидел первого ответа Фаната.
Я серьезно считаю, что, зная рирайт, я может и смог бы красивости адресочкам придать, где кучи знаков вопросов и прочего. Если не смогу - значит, не смогу. Сейчас это значения не имеет, потому что сейчас я рирайтить не буду (не умею) - потому и пишу, что для меня имеет значение, будет ли куча знаков вопросов или нет.
 

Фанат

oncle terrible
Команда форума
ну вот что с таким делать?
Asar, ну если ты считаешь себя умнее, чем мы с Кромом - зачем ты сюда пришёл? Сам с собой советуйся.
 

Asar

Новичок
Да почему я себя считаю умнее? Я, собственно, и задал вопрос - стоит эти самые переменные тягать через GET (про рирайт я прикрутил весьма опосредованно к этому посту - без него смысл остается тем же) или не стоит тягать, а лучше лишний раз запросить. Мне ответили, что лучше запросить, а рирайт тут не при чем. Не при чем, так не при чем - вам с Кромом виднее, если вы в нем разбираетесь. Буду делать запросом...
 

yugene

Отошел от дел
Автор оригинала: Asar
если пользователь пропишет вместо value1 нечто другое, получится бессмыслица, потому что эти данные напрямую выводятся на странице.
Сделай с этим что-нибудь!

Сессии как третью альтернативу не рассматривал?
 

Рафаэль

Guest
а передать эти самые переменные методом POST никто не догадался?

в первом скрипте после твоих двух запросов к БД пиши:
<form action="второй скрипт" method="post">
<?php
echo "<input type=\"hidden\" name=\"key1\" value=\"$key1\">";
echo "<input type=\"hidden\" name=\"key2\" value=\"$key2\">";
...
echo "<input type=\"hidden\" name=\"keyN\" value=\"$keyN\">";
?>
<input type="submit" value="Передать значения другому скрипту">
</form>

НУ вот и всё.... при нажатии на кнопку тебя перекинет на второй скрипт вместе со всеми твоими полученными данными из первого скрипта, причём адресная строка засоряться ничем "дурным" не будет...

P.S.
и ещё.. если передавать методом GET переменную в которой значение "Автомобиль BMW" то значение переменной после передачи никак не исказится... единственный "баг" это наличие ASCII кодов в адресной строки типа "%5B%6FBMW". Ну это так. на заметку :)
 

Asar

Новичок
Автор оригинала: yugene
Сессии как третью альтернативу не рассматривал?
Рассматривал.
а передать эти самые переменные методом POST никто не догадался?
Эта мысль озвучена в моем первом сообщении.
если передавать методом GET переменную в которой значение "Автомобиль BMW" то значение переменной после передачи никак не исказится
Возможно, я недостаточно ясно выразился... Там не будет никакие символов кириллицы. А боялся я следующего:
Будет прописано в адресной строке: ?a=1&b=2, тогда скрипт выведет на странице: Автомобиль БМВ. Потом какой-нить пользователь заменяет а - получается ?a=2&b=2 - скрипт выводит: Сковорода БМВ. Это, конечно, не сильно вероятно, но все же. Можно проверять, конечно, но тогда все равно будет лишний запрос...
В общем и целом, как я понял, здесь самое оптимальное просто лишний раз-два запросить. А остальные варианты если не бредовые, то иррациональные.
 

crocodile2u

http://vbolshov.org.ru
При нормальной организации БД достаточно передать 1 ID, чтобы получить всю интересующую информацию о товаре.
 

Рафаэль

Guest
ну так я не понял чем тебе POST не угодил?
 

Кром

Новичок
>Ну не делают навигацию с помощью POST.
>Это неудобно.

crocodile2u
Это не просто неудобно, это неправильно.
 

crocodile2u

http://vbolshov.org.ru
Принимается. Ошибся. Сам думал поправить, да решил, что не стоит возвращаться. А надо было - кое-кто может и вправду подумать, что всего лишь неудобно.
 
Сверху