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

  • Автор темы Автор темы proto
  • Дата начала Дата начала

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!!!
 
proto

http://ru3.php.net/mysql_error

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

Не забываем что,
The CREATE VIEW statement was added in MySQL 5.0.1.
 
в таком случае подробнее опишу по-моему мнению надобность этого!!!

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

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

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

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

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

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

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

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

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

если я что то не догоняю....разъясните..не гоните меня! )))
 
почему не будет "...тех данных кот запросил пользователь"?
в первый раз ты же как-то определил, ЧТО возвратить пользователю. снова вызови эту страничку с добавленным параметром order_by=field_name.
 
просто включив сортировку и пустив запрос заново...тех данных кот запросил пользователь не будет...
это как это? а кудаж они денутся?
мне нужно работать именно с УЖЕ выбранными....
ВЫБЕРИ ИХ ЕЩЁ РАЗ. ТЕМ ЖЕ ЗАПРОСОМ
просто добавив в него сортировку.
что тут непонятного?
 
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
соответственно сразу не возможно отсортировать по друнгим критериям!
как лучше передовать данные формы чтобы они не терялись при повторных
запросах-сортировках!

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

Если не знаешь, что придет - GET или POST - используй $_REQUEST
 
proto
форму надо отправлять гетом.
соответственно и все данные получать из гета
 
я решил проблемму но насколько верное решение с точки зрения безопасности и производительности не знаю я НОВИЧЕК!

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

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

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

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

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

я надеюсь, ты умеешь читать по-русски и понял всё вышесказанное.
 
ну ладно...я понимаю что нелепо задаю вопросы....но такое мое восприятие.....тогда почему без обозначения переменной
$_GET[ form_var] тоже все работает?! если есть дока - дайте ссылку спасибо и сорри за назойливость!!!
 
работает потому, что register_globals - On
если что-то работает - это не значит, что это должно использоваться.
ели чужая вещь лежит без присмотра, и ты МОЖЕШЬ её взять - это не значит, что ты ДОЛЖЕН её непременно хватать и бежать.
я доступно объясняю?
 
да! то есть так положено! а про методы я как раз имел ввиду обозначение переменных $_GET и $_POST
спасибо за помощь!!!
 
Сверху