The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Установка значения переменной по умолчанию."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Установка значения переменной по умолчанию."
Сообщение от Admin_x emailИскать по авторуВ закладки on 29-Мрт-03, 16:24  (MSK)
Есть в файле test.php такая строчка запроса к таблице:
$query = "SELECT * FROM $worktable WHERE resp_person='$person' ODER BY $sort";
Из этого:
$worktable узазана выше
$person берётся из формы (<INPUT TYPE="text" NAME="person" SIZE="15"> ) Указано в до <?php ... ?>
$sort берётся из формы (<SELECT NAME="sort"> след. строка <OPTION VALUE="name">Name) и т.д. указано до <?php ... ?>
Отсюда вопросы:
1. При запуске страницы sql выдаёт ошибку (You have an error in your SQL syntax near '' at line 1), т.к. изначально у $sort и $person нет значений
(но если запускать страницу test.php?sort=name&person=AAA , то работает.) Я пытался установить в теле, что $person и $sort раны значениям name и AAA соответственно, но потом они уже не меняются. Как сделать так, что бы просто при запуске test.php один раз изначально устанавливались необходимые значения, но потом при подставление из формы значения переменная менялась?
2. Какое значение необходимо подставить в <INPUT TYPE="text" NAME="person" SIZE="15">, что бы выбирались все ячейки, на не только те, которые есть в таблице? (Для конкретизации - в таблице есть, например, Иванов и Петров. Если у форме указать Иванов, то появятся только те row (забыл, как на русском), в которых resp_person равен "Иванов". С этим проблем нет, но если я хочу увидеть всех? Пытался ставить *, но судя по всему sql ищет персону с именем *... Помогите, плиз).

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Установка значения переменной по умолчанию."
Сообщение от andrew emailИскать по авторуВ закладки on 29-Мрт-03, 17:05  (MSK)
>но потом они уже не меняются. Как сделать так, что бы
>просто при запуске test.php один раз изначально устанавливались необходимые значения, но
>потом при подставление из формы значения переменная менялась?

Кхм... Элементарно - в начале скрипта пишешь:

if(!$sort) $sort="name";
if(!$person) $person="AAA";

И делов-то! :)

Насчет пункта 2: попробуй убрать кавычки вокруг $person. Напиши просто:

$query = "SELECT * FROM $worktable WHERE resp_person=$person ODER BY $sort";

Тогда звездочка должна прокатить.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Установка значения переменной по умолчанию."
Сообщение от Admin_x emailИскать по авторуВ закладки on 29-Мрт-03, 19:58  (MSK)
>if(!$sort) $sort="name";
>if(!$person) $person="AAA";
>
>И делов-то! :)

>Насчет пункта 2: попробуй убрать кавычки вокруг $person. Напиши просто:
>
>$query = "SELECT * FROM $worktable WHERE resp_person=$person ODER BY $sort";

>Тогда звездочка должна прокатить.

Друг - ты мой спаситель! Первый вариант проканал на все 100%, но вот второй без кавычек такое выдаёт:
You have an error in your SQL syntax near '* ORDER BY Name' at line 1

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Установка значения переменной по умолчанию."
Сообщение от andrew emailИскать по авторуВ закладки on 29-Мрт-03, 20:22  (MSK)
>>$query = "SELECT * FROM $worktable WHERE resp_person=$person ODER BY $sort";
>вот второй без кавычек такое выдаёт:
>You have an error in your SQL syntax near '* ORDER BY
>Name' at line 1

Хмм... Попробуй тогда так:

$query="SELECT * FROM $worktable HAVING resp_person REGEXP $person ORDER BY $sort";

Сорри, под рукой мускуля нет - проверить не могу :(

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Установка значения переменной по умолчанию."
Сообщение от Admin_x emailИскать по авторуВ закладки on 30-Мрт-03, 09:36  (MSK)
$query = "SELECT * FROM $worktable WHERE resp_person=$person ODER BY $sort";

Друг, спасибо огромное - я немножко модифицировал твой первый совет и всё получилось! Запрос оставил аналогичным, но добавил в скрипт 2 строчки:
if(!$person)$rerson="'*'";
if(!$person=="*")$person="'*'";

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

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Установка значения переменной по умолчанию."
Сообщение от Admin_x emailИскать по авторуВ закладки on 30-Мрт-03, 16:30  (MSK)
if(!$person)$rerson="'*'";
if(!$person=="*")$person="'*'";

$query = "SELECT * FROM $worktable WHERE rperson='$person' && project='$projectn' ODER BY $sort";

А вот поспешил я немного... Заметил прикол - когда в запросе указано resp_person='$person', то почему-то сортировка именно по этому параметру не работает. У меня в таблице ( http://wgint.pwt.ru/ctr/ct.php ) достаточно большое количество столбцов, но при этом сортировка работает на каждый, кроме того, который в запросе используется. Т.к. у меня в запросе используются 2 параметра ($rperson и $projectn), то, к сожалению, сортировка по этим параметрам не работает. Друг, если есть идеи, подскажи, плиз. Вот эти 2 столбца мне больше всего сортировать-то и надо...

Спасибо!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Установка значения переменной по умолчанию."
Сообщение от MayVortex emailИскать по авторуВ закладки on 17-Апр-03, 08:27  (MSK)
>if(!$person)$rerson="'*'";
>if(!$person=="*")$person="'*'";
>
>$query = "SELECT * FROM $worktable WHERE rperson='$person' && project='$projectn' ODER BY
>$sort";
>
>А вот поспешил я немного... Заметил прикол - когда в запросе указано
>resp_person='$person', то почему-то сортировка именно по этому параметру не работает. У
>меня в таблице ( http://wgint.pwt.ru/ctr/ct.php ) достаточно большое количество столбцов, но
>при этом сортировка работает на каждый, кроме того, который в запросе
>используется. Т.к. у меня в запросе используются 2 параметра ($rperson и
>$projectn), то, к сожалению, сортировка по этим параметрам не работает. Друг,
>если есть идеи, подскажи, плиз. Вот эти 2 столбца мне больше
>всего сортировать-то и надо...
>
>Спасибо!


1) Ты с написанием слова ORDER не ошибся? У тебя написано ODER...
2) Со звёздочками можешь не парится, просто не пиши в запросе WHERE и всё:
===
if ((!$person) or ($person eq "*")) {
$query = "SELECT * FROM $worktable ORDER BY $sort";
} else {
$query = "SELECT * FROM $worktable WHERE rperson='$person' && project='$projectn' ORDER BY $sort";
}
===

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Установка значения переменной по умолчанию."
Сообщение от MayVortex emailИскать по авторуВ закладки on 17-Апр-03, 08:32  (MSK)
И ещё, после того места, где выполняется $query вставь строчку:
echo mysql_error();
посмотри чего покажет, может там имена не совпадают или ещё что-нить...
  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Установка значения переменной по умолчанию."
Сообщение от MayVortex emailИскать по авторуВ закладки on 17-Апр-03, 08:42  (MSK)
и offtopic:
1) когда выводишь таблицу, проверяй на наличие значений в переменных (во всех) и если их нет, заменяй на & bsp; (без пробела после &)- таблица станет намного читабельней :) (если не стала, заменяй на "<font color=background_fon>.</font>" - короче, выводишь в ячейку что-нить закрашенное цветом фона):
if (!$date) $date="& bsp;";
2) <table cellspacing=1> - тоненькие границы между ячейками
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру