Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 813
от 13.11.2007, 19:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 446, Экспертов: 55
В номере:Вопросов: 2, Ответов: 3


Вопрос № 108523: Добрый день, уважаемые эксперты. Имеется несколько несвязанных между собой таблиц следующего вида (В Приложении): В общей постановке задачи такого рода таблиц бужет насчитыватся около 10, но пока решил ограничится этим. Вопрос в следующем: К...
Вопрос № 108584: Я уже задавал вопрос № 108445 вторую часть. Теперь я конректно знабю что нужно)) Нужно именно явно в php задавать типы переменных вначале и каждый раз вручную выделять и очищать память для переменных. Как это сделать? Вроде через кл...

Вопрос № 108.523
Добрый день, уважаемые эксперты. Имеется несколько несвязанных между собой таблиц следующего вида (В Приложении):

В общей постановке задачи такого рода таблиц бужет насчитыватся около 10, но пока решил ограничится этим. Вопрос в следующем: Каким образом можно сделать выборку значений по всем элементам по Таблице1 и Таблице2 одним запросом. Из формы берутся данные по номеру лицевого счета абонента и временной интервал, за который следует выполнить запрос, т.е. дата начала и дата окончания. Обратите внимание, что в Таблице2 есть не все лицевые счета, которые есть в Таблице1. Запрос по одной таблице замечательно работает. Можно конечно же сделать отдельный запрос под каждую таблицу, но будет некрасиво, а в некоторых случаях и долго.
Под одну таблицу запрос выглядит совсем просто:

$str = "nas_ls ='$_POST[ls]' AND nas_data>='$_POST[dA]' AND nas_data<='$_POST[dZ]'";
$query = "SELECT * FROM nas WHERE $str";
$result = mysql_query($query) or die(mysql_error());
for($mas = array(); $row = mysql_fetch_assoc($result); $mas[]=$row);
ну и т.д.

Помогите, пожалуйста, а то после моих проб объеденить все в один запрос получается полный бред. Заранее благодарен.

Приложение:

Отправлен: 08.11.2007, 07:40
Вопрос задал: Савченко И.В. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Мусихин А И
Здравствуйте, Савченко И.В.!
Нва самом деле все достаточно просто. Присваиваете псевдонимы каждой таблице и спользуете их в запросе. Одинаковые для обоих таблиц значения во WHERE Только во избежание повторных результатеов лучше использовать не '*'. а запрос конкретных значений и Distinct. Примерный код в приложении. Дальше, думаю, разберетесь под конкретный пример.

Приложение:

Ответ отправил: Мусихин А И (статус: 1-ый класс)
Ответ отправлен: 08.11.2007, 11:01
Оценка за ответ: 4
Комментарий оценки:
Спасибо за участие конечно. Ваше предложение по использованию псевдонимов интересно, однако запрос не работает в том случае, если значений лицевого счета из Таблицы1 отсутствуют в Таблице2. Результат запроса нулевой, хотя в Таблице1 ЕСТЬ значения по лицевому счету (к примеру 10010010 - есть в Таблице1 и нет в Таблице2)


Вопрос № 108.584
Я уже задавал вопрос № 108445 вторую часть. Теперь я конректно знабю что нужно))

Нужно именно явно в php задавать типы переменных вначале и каждый раз вручную выделять и очищать память для переменных.

Как это сделать? Вроде через классы, но я в ООП плохо разбираюсь. Может уже есть у кого подобная экзотика? Очень надо....
Отправлен: 08.11.2007, 16:42
Вопрос задал: Стас Тельнов/[анти]КИЛЛЕР (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: HookEst
Здравствуйте, Стас Тельнов/[анти]КИЛЛЕР!
Не знаю, что Вам там преподаватель говорил, но сходите на http://www.php.net/docs.php, скачайте там мануал по PHP, есть на русском. Вот например выдержка:

Манипуляции с типами
PHP не требует (и не поддерживает) явного определения типа при объявлении переменной; тип переменной определяется по контексту, в котором она используется. То есть, если вы присвоите строковое значение переменной $var, $var станет строкой. Если вы затем присвоите $var целочисленное значение, она станет целым числом.
...
Если вы хотите, чтобы переменная принудительно вычислялась как определенный тип, смотрите раздел приведение типов. Если вы хотите изменить тип переменной, смотрите settype().
...
Приведение типов
Приведение типов в PHP работает так же, как и в C: имя требуемого типа записывается в круглых скобках перед приводимой переменной.

Допускаются следующие приведения типов:

(int), (integer) - приведение к целому числу
(bool), (boolean) - приведение к булеву типу
(float), (double), (real) - приведение к числу с плавающей точкой (float)
(string) - приведение к строке
(array) - приведение к массиву
(object) - приведение к объекту



И в PHP нет указателей(таких как, например в C), с памятью напрямую Вас в PHP не допустят.
Есть ссылки на переменные, но это не указатели. А если Вы хотите уничтожить переменную, используйте unset(), но это уничтожит только переменную с указаным именем, память же будет очищена автоматически, сборщиком мусора.
Может, еще что уточните?
Успехов.
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 09.11.2007, 05:14
Оценка за ответ: 5
Комментарий оценки:
Ну именно это я знал.... просто думал может вс таки есть какой то способ... Ну чтож. СПасибо))

Отвечает: Зиновьев Дмитрий Владимирович
Здравствуйте, Стас Тельнов/[анти]КИЛЛЕР!
Так как в PHP нет явного определения типа, то можно присваивать переменным "стартовые" значения, тем самым определяя ее тип, например,
$int = 0;
$str = '';
Ответ отправил: Зиновьев Дмитрий Владимирович (статус: 2-ой класс)
Ответ отправлен: 09.11.2007, 10:11
Оценка за ответ: 5
Комментарий оценки:
Ну чтож, спасибо... хотя именно эту информацию я знаю именя больше интересует если хоть какой то способ...


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.0 от 08.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное