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

  Все выпуски  

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


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

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

Выпуск № 281
от 13.03.2006, 01:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 232, Экспертов: 32
В номере:Вопросов: 5, Ответов: 13


Вопрос № 36927: Опять я со своими тупыми вопросами))))) Как узнать кол-во запросов к MySQL?...
Вопрос № 36935: Здраствуйте! Я хочу сделать на сайте скрипт, который бы скачивал нужный файл и отсылал бы его на нужный емайл. Как скачать я знаю, а вот правильно отослать письмо с аттачем не получается. Подскажите код плиз....
Вопрос № 36955: Zdravstvuyte uvagaemie eksperti. u mnya takoy kod: $sql="SELECT * FROM users where age>18 LIMIT 0 , 30"; $result=mysql_query($sql); limit 0,30 govorit mysql vernutь php pervie 30 strok rezultata. funkci...
Вопрос № 36970: Подскажите plz!! У меня на странице несколько фреймов. Как сделать чтобы прокручивались не фреймы, а вся страница...
Вопрос № 36972: Уважаемые эксперты! Подскажите пожалуйста eregi выражение проверяющее URL на првильность => http://www.sоmehost2.somehost.ru (com ua и др) Заранее благодарен!...

Вопрос № 36.927
Опять я со своими тупыми вопросами)))))
Как узнать кол-во запросов к MySQL?
Отправлен: 07.03.2006, 01:16
Вопрос задал: Stamm (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Stamm!
Не совсем понятен вопрос. Если вы хотите узнать, сколько делается запросов, то в своих же скриптах поставьте счётчик на их количество. По другому никак. Если же имелось ввиду количество строк после выборки из таблицы, то это функция mysql_num_rows(). Вот пример:
$result = mysql_query("SELECT * FROM tbl WHERE id > 5");
$count = mysql_num_rows($result);
print $count;

---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Отправлен: 07.03.2006, 07:18

Отвечает: Doctor013
Здравствуйте, Stamm!
Все запросы к базе сохраняются в логах.
Можно прописать в файл настроек
log= адрес файла. В этом файле будут сохранятся все запросы к базе, останется только правильно разобрать этот файл. Пример такого файла в приложении.

Приложение:

---------
Большинство ответов на вопросы в рассылках находиться через Яндекс за 1 мин.

Ответ отправил: Doctor013 (статус: 10-ый класс)
Отправлен: 07.03.2006, 15:06


Вопрос № 36.935
Здраствуйте!
Я хочу сделать на сайте скрипт, который бы скачивал нужный файл и отсылал бы его на нужный емайл. Как скачать я знаю, а вот правильно отослать письмо с аттачем не получается. Подскажите код плиз.
Отправлен: 07.03.2006, 06:18
Вопрос задал: SKC (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Ерёмин Андрей
Здравствуйте, SKC!
Для начала попробуйте создать письмо с прикреплённым файлом и посмотреть его заголовки. Всё не так сложно, как кажется. Нужно определить разделитель частей письма - MIME_BOUNDARY и его использовать везде. В приложении выдержка из одного скрипта. Определяется этот разделитель в главных заголовках письма:
Content-Type: multipart/mixed;
boundary="----------E813FA12D36FE91"
(для примера, в коде используется просто "--MIME_BOUNDARY").
Таким образом, общий алгоритм действий такой:
1) В переменную $headers прописываем все основные заголовки письма и обязательно указываем разделитель, а также то, что письмо состоит из нескольких частей.
2) В переменную $message помещаем текст самого письма, затем пустую строку, далее - строку-разделитель (этот самый BOUNDARY), далее - служебные заголовки для нижеследующей части (Content-disposition, Content-transfer-encoding и content-id), и затем содержимое самого файла в перекодированном виде (base64 например). И так для каждой части. Т.е. дополнительные заголовки для каждой части мы вставляем просто в текст письма, т.к. с помощью $headers не имеем возможности поместить часть заголовков в середину письма.
Повторюсь: откройте полное содержание простенького письма с небольшим прикреплённым файлом, и всё станет намного яснее. Ну и ещё на php.net есть статья по этой теме, но я постарался самостоятельно всё объяснить.

Приложение:

---------
Нет правила без исключений. Правило без исключений - исключение из правил.

Ответ отправил: Ерёмин Андрей (статус: Профессор)
Отправлен: 07.03.2006, 07:37
Оценка за ответ: 5


Вопрос № 36.955
Zdravstvuyte uvagaemie eksperti.

u mnya takoy kod:

$sql="SELECT * FROM users where age>18 LIMIT 0 , 30";
$result=mysql_query($sql);

limit 0,30 govorit mysql vernutь php pervie 30 strok rezultata.
funkciya mysql_num_rows($result) vernet 30;

a kak poluchit kollichestvo vsex strok? (to est ne pervie 30 , avoobshe vsex udovletvoryayushie usloviyu age>18)(s odnim zaprosom)

Отправлен: 07.03.2006, 14:16
Вопрос задал: Emilas (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Straight
Здравствуйте, Emilas!

SELECT COUNT(*) FROM users where age>18
Ответ отправил: Straight (статус: 9-ый класс)
Отправлен: 07.03.2006, 14:25
Оценка за ответ: 4
Комментарий оценки:
Zdravstvuyte Straight.
Ya xotel s pomoshyu etogo zaprosa uznat kollichestvo vsex strok: "SELECT * FROM users where age>18 LIMIT 0 , 30". A vi mne predlogaete zdelat esho odin zapros.

Отвечает: Doctor013
Здравствуйте, Emilas!
Используй функцию COUNT
SELECT COUNT(*) from users where age>18; Кстати, я не рекомендую использовать звездочку, ведь в этом случае будет запрос ко всей таблице, что при больших объемах данных отрицательно скажется на производительности сервера. Лучше всего считать по первичному ключу или другому проиндексированному полю. Например так,
SELECT count(user_id) from users where age>18,
где user_id - первичный ключ

---------
Большинство ответов на вопросы в рассылках находиться через Яндекс за 1 мин.
Ответ отправил: Doctor013 (статус: 10-ый класс)
Отправлен: 07.03.2006, 14:37
Оценка за ответ: 4
Комментарий оценки:
Zdravstvuyte Doctor013.
Ya xotel s pomoshyu etogo zaprosa uznat kollichestvo vsex strok: "SELECT * FROM users where age>18 LIMIT 0 , 30". A vi mne predlogaete zdelat esho odin zapros.

Отвечает: Stamm
Здравствуйте, Emilas!
Просто надо убрать лимит и всё!
$sql="SELECT * FROM users where age>18";
$result=mysql_query($sql);
print (mysql_num_rows($result));
---------
В день - один, ну два подвига, не больше...
Ответ отправил: Stamm (статус: Студент)
Отправлен: 07.03.2006, 22:23

Отвечает: КиберТварь
Здравствуйте, Emilas!
$sql="SELECT * FROM users where age>18";
$result=mysql_query($sql." LIMIT 0 , 30");
$resultall=mysql_query($sql);

$allrows = mysql_num_rows($resultall);
$currrows = mysql_num_rows($result);
Ответ отправил: КиберТварь (статус: Практикант)
Отправлен: 07.03.2006, 22:58
Оценка за ответ: 5
Комментарий оценки:
Da vi pravi, menya ввело в заблуждение phpMyAdmin

Отвечает: SKC
Здравствуйте, Emilas!
Просто уберите " LIMIT 0 , 30"
---------
go go go
Ответ отправил: SKC (статус: 2-ой класс)
Отправлен: 08.03.2006, 00:32

Отвечает: Lector
Здравствуйте, Emilas!
$q = "select count(*) cnt from users";
$r = mysql_query($q);
$row = mysql_fetch_aray($r);
echo "count = ".$row['cnt']."
";
mysql_clear_result($r);
---------
Хочешь помочь старику - сделай вместо него.
Хочешь помочь новичку - сделай вместе с ним.
Хочешь помочь мастеру - отойди и не мешай,
а хочешь помочь дураку - сам дурак.
Ответ отправил: Lector (статус: Студент)
Отправлен: 08.03.2006, 05:44


Вопрос № 36.970
Подскажите plz!! У меня на странице несколько фреймов. Как сделать чтобы прокручивались не фреймы, а вся страница
Отправлен: 07.03.2006, 19:05
Вопрос задал: Lexx_2k6 (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Ерёмин Андрей
Здравствуйте, Lexx_2k6!
Средствами html - никак. А самое оптимальное:
<?php
include("content.html");
?>

Т.е. вставлять нужный файл с помощью php. Страницу лучше при этом поместить в таблицу - тогда общее выравнивание будет сохраняться.
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Отправлен: 07.03.2006, 20:16
Оценка за ответ: 5

Отвечает: wils0n
Здравствуйте, Lexx_2k6!
Такого нельзя сделать. Весь прикол фреймов состоит в том, что окно браузера поделёно на несколько частей и в каждой части загружается отдельлная страница. То есть в итоге у вас не страница, а набор страниц.
Теоретически Вы можете отслеживать событие прокрутки каждого из фреймов и в обработчике прокручивать остальные, но это ИМХО геморрой. К тому же может случиться, что один фрейм требует прокрутки, а другой нет.
Мой совет - не используйте фреймы. В 99% случаев можно обойтись без них.


---------
Life is like a box with chocolate. You never know what you're gonna get. (c) Forrest Gump's mom
Ответ отправил: wils0n (статус: 3-ий класс)
Отправлен: 07.03.2006, 20:24
Оценка за ответ: 4

Отвечает: Straight
Здравствуйте, Lexx_2k6!

Вообще-то фреймы для того и сделаны, чтобы прокручивать их содержимое отдельно. Если Вам это не нужно - зачем использовать фреймы?
Попробуйте задействовать IFRAME.
Ответ отправил: Straight (статус: 9-ый класс)
Отправлен: 09.03.2006, 09:37
Оценка за ответ: 5
Комментарий оценки:
Идея интересная, но не помогло


Вопрос № 36.972
Уважаемые эксперты!
Подскажите пожалуйста eregi выражение проверяющее URL на првильность => http://www.sоmehost2.somehost.ru (com ua и др)
Заранее благодарен!
Отправлен: 07.03.2006, 19:39
Вопрос задал: Golden Spider (статус: 4-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: wils0n
Здравствуйте, Golden Spider!
я не профи в регулярных выражениях, но вроде для Вашего примера работает:
"^http://([_a-z0-9-]+(.[_a-z0-9]+)*)(.)(com|net|org|ru|de|ch|br|co.uk|ua|by|info)$"
если надо, чтоб обязательно впереди стояло www, тогда
"^http://www.([_a-z0-9-]+(.[_a-z0-9]+)*)(.)(com|net|org|ru|de|ch|br|co.uk|ua|by|info)$
"
Заметьте, что во втором случае адрес http://www.ru будет неправильным (а в первом правильным). Что в принципе и следует ожидать.
Список доменов первого уровня можно дополнить.
---------
Life is like a box with chocolate. You never know what you're gonna get. (c) Forrest Gump's mom
Ответ отправил: wils0n (статус: 3-ий класс)
Отправлен: 08.03.2006, 12:35
Оценка за ответ: 5
Комментарий оценки:
Спасибо


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.18 от 09.03.2006
Яндекс Rambler's Top100

В избранное