Создание представления

proto

Новичок
Создание представления

не могу понять что не так!!
нужно создать представление для работы с выбранными по нескольким параметрам данными

но даже такой простой код с целью проверки не дает результата - ПРЕДСТАВЛЕНИЕ НЕ СОЗДАЕТСЯ!!

в чем проблемма?!
PHP:
<?
mysql_connect("localhost", "login", "pass") or die("нет! с");
mysql_select_db("shini") or die("нет б!");
mysql_query("CREATE TABLE t (qty INT, price INT)") or die("error create");
mysql_query("INSERT INTO t VALUES(3, 50)") or die("error insert");
mysql_query("CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t") or die("error view");
$q = mysql_query("SELECT * FROM v") or die("select");
while($r = mysql_fetch_array($q)){
echo $r[0]."-".$r[1];
}
?>
выдается error view!!!
 

alexhemp

Новичок
proto

http://ru3.php.net/mysql_error

А так-же следует уточнить версию mysql, вообще для DDL лучше использовать phpMyAdmin или другую административную утилиту, потому как необходимость создания данных объектов БД при каждом запуске скрипта вызывает сомнение.

Не забываем что,
The CREATE VIEW statement was added in MySQL 5.0.1.
 

proto

Новичок
в таком случае подробнее опишу по-моему мнению надобность этого!!!

хотя точнее наверное спрошу совета как поступить.

Итак, есть форма с несколькими полями ввода!
При отправки данных - должен возвращаться результат в виде таблицы с данными удовлетворяющими запросу. Это я сделал - все работает!

Далее требуется упорядочивать уже выбранные данные нажатием на соответствующую ссылку.

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

Далее при осуществляется переход по ссылкам которые также генерятся из запроса и представление убивается!

И при повторном одборе все происходит заново!!

Так как сделать с минимальными проблеммами такую вещь для упорядочения отобранных данных?!

Спасибо всем кто поможет!!! Я в тупике...
 

Фанат

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

proto

Новичок
ну я изначально также рассуждал....

просто включив сортировку и пустив запрос заново...тех данных кот запросил пользователь не будет....а будут которые стоят по умолчанию после или до отработки скрипта....а мне нужно работать именно с УЖЕ выбранными....

если я что то не догоняю....разъясните..не гоните меня! )))
 

Grumbold

Новичок
почему не будет "...тех данных кот запросил пользователь"?
в первый раз ты же как-то определил, ЧТО возвратить пользователю. снова вызови эту страничку с добавленным параметром order_by=field_name.
 

Фанат

oncle terrible
Команда форума
просто включив сортировку и пустив запрос заново...тех данных кот запросил пользователь не будет...
это как это? а кудаж они денутся?
мне нужно работать именно с УЖЕ выбранными....
ВЫБЕРИ ИХ ЕЩЁ РАЗ. ТЕМ ЖЕ ЗАПРОСОМ
просто добавив в него сортировку.
что тут непонятного?
 

alexhemp

Новичок
proto

Если ты данные не удаляешь, то они из таблицы никуда не денуться. Выбери их еще раз в другом порядке - чего тут не понятного.
 

proto

Новичок
спасибо! я разобрался.....только еще один вопрос
данные формы:
PHP:
$s = $_POST['season'];
$w = $_POST['width'];
$h = $_POST['height'];
$d = $_POST['diam'];
вот такой запрос:
PHP:
$query_w = mysql_query("SELECT * FROM rubber ORDER BY ".$order."")
ссылки на упорядочение:
PHP:
<td><a href=\"?season=".$s."&width=".$w."&height=".$h."&diam=".$d."&order=name\">название</a></td>
...
После упорядочения ссылки теряют все данные так как уже нет переменных
PHP:
$s $w $h $d
соответственно сразу не возможно отсортировать по друнгим критериям!
как лучше передовать данные формы чтобы они не терялись при повторных
запросах-сортировках!

Заранее спасибо!
 

alexhemp

Новичок
Это называется - сохранять контекст. Если ты делашь запрос GET - то зачем достаешь значения из POST ?

Если не знаешь, что придет - GET или POST - используй $_REQUEST
 

Фанат

oncle terrible
Команда форума
proto
форму надо отправлять гетом.
соответственно и все данные получать из гета
 

proto

Новичок
я решил проблемму но насколько верное решение с точки зрения безопасности и производительности не знаю я НОВИЧЕК!

Я прочитал в доке что при register_globals - On можно вообще не пользоваться для таких целей как у меня методами GET и POST

a достаточно присвоить переменной внутри кода значение переменной поля

то есть типа $internal_var = $form_var и все!
 

Фанат

oncle terrible
Команда форума
Я прочитал в доке что при register_globals - On можно вообще не пользоваться для таких целей как у меня методами GET и POST
это чудовищно.
объясняю по буквам.
методы НИКАКОГО отношения ни к регистер глобалс, ни вообще к ПХП НЕ И МЕ ЮТ.
методом у тебя посылает браузер. причём на сервере вообще не может быть пхп, а вот метод должен быть указан браузером обязательно.
я понятно объясняю?
ты уже догнал, что метод ты будешь писпользовать в любом случае?

дальше. ты НЕПРАВИЛЬНО понял, что при register_globals - On можно вообще не пользоваться. НЕТ, НЕЛЬЗЯ.
надо пользоваться массивом $_GET.

далее.
вне зависимости, что ты понял, и что не понял, форму надо отправлять методом ГЕТ.

я надеюсь, ты умеешь читать по-русски и понял всё вышесказанное.
 

proto

Новичок
ну ладно...я понимаю что нелепо задаю вопросы....но такое мое восприятие.....тогда почему без обозначения переменной
$_GET[ form_var] тоже все работает?! если есть дока - дайте ссылку спасибо и сорри за назойливость!!!
 

Фанат

oncle terrible
Команда форума
работает потому, что register_globals - On
если что-то работает - это не значит, что это должно использоваться.
ели чужая вещь лежит без присмотра, и ты МОЖЕШЬ её взять - это не значит, что ты ДОЛЖЕН её непременно хватать и бежать.
я доступно объясняю?
 

proto

Новичок
да! то есть так положено! а про методы я как раз имел ввиду обозначение переменных $_GET и $_POST
спасибо за помощь!!!
 
Сверху