капитал
<#"787041.files/image001.gif">
Рисунок 1.1. Изокванты, представляющие разные уровни выпуска
Необходимо дать определение таким понятиям как изокванта и
изокоста.
Изокванта - кривая, представляющая собой всевозможные
сочетания двух издержек, обеспечивающих заданный постоянный объем производства
(на рисунке 1.1. представлена сплошной линией).
Изокоста - линия, образованная множеством точек, показывающих
какое количество сочетающихся факторов производства или ресурсов можно
приобрести при имеющихся денежных средствах (на рисунке 1.1. представлена
пунктирной линией - касательная к изокванте в точке сочетания ресурсов).
Точка касания изокванты и изокосты - это оптимальное
сочетание факторов для конкретного предприятия. Точка касания находится путём
решения системы двух уравнений, выражающих изокванту и изокосту.
Основными свойствами производственной функции являются:
1. Непрерывность функции, то есть, её график представляет
сплошную, непрерывную линию;
2. Производство не возможно при отсутствии хотя бы
одного из факторов;
. Увеличение затрат любого из факторов при неизменных
количествах другого приводит к увеличению выпуска продукции;
. Можно сохранить выпуск продукции на постоянном
уровне, замещая некоторое количество одного фактора дополнительным
использованием другого. То есть, уменьшение использования труда можно
компенсировать дополнительным использованием капитала (например, приобретая
новое производственное оборудование, которое обслуживается меньшим числом
работников).
.3
Эластичность замещения факторов
На основании вышеизложенного можно сделать вывод о том, что
основным вопросом производственной функции является вопрос правильной
комбинации факторов производства, при которой уровень выпуска продукции будет
оптимальный, то есть, приносящий наибольшую прибыль. В целях поиска оптимальной
комбинации, необходимо ответить на вопрос: На какую величину надо увеличить
затраты одного фактора при снижении затрат другого на единицу. Вопрос
соотношения затрат замещающих друг друга факторов производства решается при
помощи введения такого понятия, как эластичность замещения факторов
производства.
Эластичность замещения - это соотношение затрат замещающих друг
друга факторов производства при неизменном объёме выпуска продукции. Это своего
рода коэффициент, который показывает степень эффективности замещения одного
фактора производства другим.
Мерой взаимозаменяемости факторов производства служит
предельная норма технического замещения MRTS (marginal rate of technical
substitution), которая показывает, на сколько единиц можно уменьшить один из
факторов при увеличении другого фактора на единицу, сохраняя выпуск неизменным.
Предельную норму технического замещения характеризует наклон
изоквант. Более крутой наклон изокванты показывает что, при увеличении
количества труда на единицу, нужно будет отказаться от нескольких единиц
капитала для сохранения данного уровня производства. MRTS выражается формулой:
MRTSL,K=-DK/DL
Величина
|
Значение
|
MRTSL,K
|
Предельная
норма технического замещения факторов
|
DK
|
Изменение
фактора K (Капитал)
|
DL
|
Изменение
фактора L (труд)
|
Изокванты могут иметь различную конфигурацию.
Линейная изокванты на рисунке 1.2(а) предполагает совершенную
замещаемость производственных ресурсов, то есть, данный выпуск может быть
получен с помощью либо только труда, либо только капитала, либо с помощью
комбинации этих ресурсов.
Рисунок 1.2. Возможные конфигурации изоквант
Изокванта, представленная на рисунке 1.2(б) характерна для
случая жесткой дополняемости ресурсов. В этом случае известен лишь один
технически эффективный способ производства. Такую изокванту иногда называют
изоквантой леонтьевского типа (см. далее), по имени экономиста В.В. Леонтьева,
предложившего такой тип изокванты. На рисунке 1.2(в) показана ломаная
изокванта, предполагающая наличие нескольких методов производства (P). При этом
предельная норма технического замещения при движении вдоль изокванты сверху
вниз убывает. Изокванта подобной конфигурации используется в линейном
программировании - методе экономического анализа. Ломаная изокванта реалистично
представляет производственные возможности современных производств. Наконец, на
рисунке 1.2(г) представлена изокванта, предполагающая возможность непрерывной,
но не совершенной замещаемости ресурсов.
1.4
Эластичность производственной функции и отдача от масштаба
Предельный продукт некоторого ресурса характеризует абсолютное
изменение выпуска продукта, приходящегося на единицу изменения расхода данного
ресурса, причем изменения предполагаются малыми. Для производственной функции предельный продукт i- того ресурса равен частной производной:
Влияние относительного изменения расхода i-того фактора на выпуск продукта, представленное также в
относительной форме, характеризуется частной эластичностью выпуска по затратам
этого продукта:
Для простоты будем обозначать . Частная эластичность производственной функции равна отношению
предельного продукта данного ресурса к его среднему продукту.
Рассмотрим частный случай, когда эластичность производственной
функции по некоторому аргументу - постоянная величина.
Если по отношению к исходным значениям аргументов x1, x2,…,xn один из аргументов (i- тый) изменится в один раз, а остальные станутся на
прежних уровнях, то изменение выпуска продукта описывается степенной функцией: . Полагая I=1, найдем, что A=f(x1,…,xn), и поэтому
В общем случае, когда эластичность - переменная величина,
равенство (1) является приближенным при значениях I, близких к единице, т.е. при I=1+e, и тем более точным, чем ближе e/к нулю.
Пусть теперь затраты всех ресурсов изменились в I раз. Последовательно применяя только что описанный прием к
x1, x2,…,xn, можно убедиться в том, что теперь или
Сумма частных эластичностей некоторой функции по всем ее
аргументам получила название полной эластичности функции. Вводя обозначение для полной эластичности производственной
функции, мы можем представить полученный результат в виде
Равенство (2) показывает, что полная эластичность производственной
функции позволяет дать отдаче от масштаба числовое выражение. Пусть расход всех
ресурсов немного увеличился с сохранением всех пропорций (I>1). Если E>1, то
выпуск продукции увеличился больше, чем в I раз (возрастающая отдача от масштаба), а если E<1, то меньше, чем в I раз. При E=1 выпуск
продукции изменится в той же самой пропорции, что и затраты всех ресурсов
(постоянная отдача).
Выделение короткого и длительного периодов при описании
характеристик производства - грубая схематизация. Изменение объемов потребления
различных ресурсов - энергии, материалов, рабочей силы, станков, зданий и т. д.
- требует различного времени. Допустим, что ресурсы перенумерованы в порядке
убывания подвижности: быстрее всего можно изменить x1, а затем x2 и т. д., а
изменение xn требует наибольшего времени. Можно
выделить сверхкороткий, или нулевой период, когда не может измениться ни один фактор;
1-й период, когда изменяется только x1; 2-й
период, допускающий изменение x1 и x2 и т.д.; наконец, длительный, или n-й период, в течении которого могут измениться объемы всех
ресурсов. Различных периодов, таким образом, оказывается n+1.
Рассматривая некоторый промежуточный по величине, k-й период, мы можем говорить о соответствующей этому
периоду отдачи от масштаба, имея в виду пропорциональное изменение объемов тех
ресурсов, которые в этом периоде могут изменяться, т.е. x1, x2,…, xk. Объемы xk+1, xn, при этом сохраняют фиксированные
значения. Соответствующий этому показатель отдачи от масштаба равен e1+e2+…+ek.
Удлиняя период, мы добавляем к этой сумме следующие слагаемые,
пока не получится значение E для
длительного периода.
Поскольку производственная функция возрастает по каждому
аргументу, все частные эластичности e1
положительны. Отсюда следует, что чем продолжительнее период, тем больше отдача
от масштаба.
1.5
Свойства производственной функции
Для каждого вида производства может быть построена своя
производственная функция, тем не менее каждая из них будет обладать следующими
фундаментальными свойствами:
1. Существует предел роста объема производства, который
достигается посредством увеличения использования одного ресурса при прочих
равных параметрах. Примером может служить невозможность увеличения объема
производства (при достижении конкретного его значения) на определенном
предприятии за счет привлечения новых работников при заданных основных фондах.
Можно достичь такой точки, когда каждый отдельный работник не будет обеспечен
средствами труда для работы, рабочим местом, его присутствие явится помехой
другим занятым, и прирост производства от найма этого предельного работника
будет приближаться к нулю или даже станет отрицательным.
Есть определенная взаимная дополняемость (комплементарность)
факторов производства, но без сокращения объема производства возможна и
определенная взаимная их заменяемость. Например, для получения данного урожая
определенный размер посевной площади может быть обработан большим числом
рабочих вручную, без применения удобрений и современных средств производства.
На этом же участке для производства необходимого количества урожая может
трудиться несколько работников, использующих сложные машины и разнообразные
удобрения. Следует отметить, что при условии взаимодополнения ни один из
традиционных ресурсов (земля, труд, капитал) не может быть полностью вытеснен
другими (не будет взаимодополнения). Механизм же взаимозамещения действует на
противоположной посылке: некоторый вид ресурса может быть замещен другим.
Взаимодополнение и взаимозамещение имеют противоположную направленность. Если
взаимодополнение требует обязательного наличия всех ресурсов, то взаимозамещение
в своей крайней форме может привести к полному исключению некоторого из них.
Анализ производственной функции предполагает необходимость
разграничения краткосрочного и долгосрочного периодов времени. В первом случае
имеется в виду такой временной интервал, в течение которого объем производства
может регулироваться только при помощи изменения количества используемых
переменных факторов, в то время как постоянные затраты остаются неизменными.
Факторы производства, затраты которых неизменны в краткосрочном периоде
времени, называются постоянными.
Соответственно факторы производства, размер которых
изменяется в краткосрочном периоде - переменные. Долгосрочный период времени
рассматривается как интервал, который достаточен для того, чтобы предприятие
могло изменить затраты всех факторов производства. Это означает, что в данном
случае не существует пределов для роста объема производства и все факторы
становятся переменными. В наиболее общем виде различия краткосрочного и
долгосрочного интервалов могут быть сведены к следующему.
Во-первых, это касается условий хозяйствования. В
краткосрочном периоде значительное расширение объема производства невозможно,
ограничивается имеющимися производственными мощностями фирмы. В длительном
периоде фирма имеет больше свободы в отношении увеличения объемов выпуска,
поскольку все факторы производства становятся переменными.
Во-вторых, необходимо учитывать специфику издержек
производства. Краткосрочный период характеризуется наличием как постоянных, так
и переменных издержек производства, в долгосрочном периоде все издержки
становятся постоянными.
В-третьих, краткосрочный период предполагает постоянство
фирм, работающих в данной отрасли. В долгосрочном периоде имеется реальная
возможность выхода или вступления в отрасль новых конкурентов.
В-четвертых, следует определить возможности извлечения
экономической прибыли в рассматриваемые периоды. В условиях долгосрочного
периода экономическая прибыль равна нулю. В краткосрочном периоде экономическая
прибыль может быть как положительной, так и отрицательной.
ПФ удовлетворяет следующему ряду свойств:
1) без ресурсов нет выпуска, т.е. f(0,0,a)=0;
2) при отсутствии хотя бы одного из ресурсов нет выпуска,
т.е. ;
) с ростом затрат хотя бы одного ресурса объем выпуска
растет;
) с ростом затрат одного ресурса при неизменном количестве
другого ресурса объем выпуска растет, т.е. если x>0, то ;
) с ростом затрат одного ресурса при неизменном количестве другого
ресурса величина прироста выпуска на каждую дополнительную единицу i-го ресурса не растет (закон убывающей эффективности), т.е.
если то ;
) при росте одного ресурса предельная эффективность другого
ресурса возрастает, т.е. если x>0, то ;
) ПФ является однородной функцией, т.е. ; при р>1 имеем рост эффективности
производства от роста масштаба производства; при р<1 имеем падение
эффективности производства от роста масштаба производства; при р=1 имеем
постоянную эффективность производства при росте его масштаба.
Определение линейно - однородных производственных функций
Производственная функция может быть записана в самых
различных алгебраических формах. Как правило, экономисты работают с линейно
однородными производственными функциями.
Производственная функция называется однородной степени n,
если при умножении ресурсов на некоторое число k полученный объем производства
будет в kn раз отличаться от первоначального. Условия однородности
производственной функции записывается следующим образом:
Q = f (kL, kK) = kn Q
ВеличинаЗначение
|
|
Q
|
Объём
производства продукции
|
k
|
Некоторое
произвольное число
|
n
|
Степень
однородности функции
|
при
n=1
|
функция линейно
однородна
|
при n>1
|
возрастающая
отдача
|
при n<1
|
убывающая отдача
|
Например, в день затрачивается 9 часов труда (L) и 9 часов работы машин
(К). Пусть при данном сочетании факторов L и K фирма может производить
в день продукции на сумму 200 тыс. рублей. В этом случае производственная
функция Q
= F(L,K) будет представлена
следующим равенством:
Q = F(9; 9) = 200 000, где F - определённого вида алгебраическая формула, в которую
подставляются значения L и T.
Допустим, фирма принимает решение увеличить работу капитала и
применение труда в два раза, что приводит к росту объёма выпускаемой продукции
до 600 тыс. рублей. Получаем, что умножение факторов производства на 2 приводит
к увеличению объёма производства в 3 раза, то есть, используя условия
однородности производственной функции:
Q = f (kL, kK) = kn Q, получаем:
Q = f (2L, 2K) = 2×1,5×Q, то есть, в данном
случае мы имеем дело с однородной производственной функцией степени 1,5.
Показатель степени n называется степенью однородности.
Если n = 1, то говорят, что функция однородна первой степени
или линейно однородна. Линейно однородная производственная функция представляет
интерес тем, что для нее характерна постоянная отдача, то есть, при увеличении
факторов производства объём выпускаемой продукции постоянно увеличивается в
одинаковой мере.
Если n>1, то производственная функция демонстрирует
возрастающую отдачу, то есть, рост факторов производства ведёт к ещё большему
росту объёма производства (например: увеличение факторов в два раза ведёт к
увеличению объёма в 2 раза; в 3 раза - к увеличению в 6 раз; в 4 раза - к
увеличению в 12 раз и т.д.) Если n<1, то производственная функция
демонстрирует убывающую отдачу, то есть, рост факторов производства ведёт к
уменьшению отдачи по росту объёмов производства (например: увеличение факторов
в 2 раза - ведёт к увеличению объемов в 2 раза; увеличение факторов в 3 раза -
к увеличению объёмов в 1,5 раз; увеличение факторов в 4 раза - к увеличению
объёмов в 1,2 раза и т.д.).
1.7
Виды линейно-однородных производственных функций
Примерами линейно однородных производственных функций являются производственная
функция Кобба-Дугласа <#"787041.files/image025.gif">
Âåëè÷èíà
|
Çíà÷åíèå
|
Q
|
Îáú¸ì
ïðîèçâîäñòâà
ïðîäóêöèè
|
a,b
|
Òåõíîëîãè÷åñêè
íåîáõîäèìûé
ðàñõîä ôàêòîðîâ
ïðîèçâîäñòâà
íà åäèíèöó ïðîäóêöèè
|
min{x;y}
|
Ìèíèìàëüíîå
çíà÷åíèå ìåæäó
ïåðåìåííûìè
x è y
|
Åñëè, íàïðèìåð,
íà êàæäîì àâòîáóñå
äàëüíåãî ñëåäîâàíèÿ
äîëæíî áûòü äâà
âîäèòåëÿ, òî ïðè
íàëè÷èè â àâòîáóñíîì
ïàðêå 50 àâòîáóñîâ
è 90 âîäèòåëåé îäíîâðåìåííî
ìîãóò îáñëóæèâàòüñÿ
òîëüêî 45 ìàðøðóòîâ:
min{90/2;50/1} = 45.
Ïðèìåðû
ðåøåíèÿ çàäà÷
ñ èñïîëüçîâàíèåì
ïðîèçâîäñòâåííûõ
ôóíêöèé
Çàäà÷à 1
Ôèðìà, çàíèìàþùàÿñÿ
ðå÷íûìè ïåðåâîçêàìè,
èñïîëüçóåò òðóä
ïåðåâîç÷èêîâ
(L) è ïàðîìû (K). Ïðîèçâîäñòâåííàÿ
ôóíêöèÿ èìååò
âèä . Öåíà åäèíèöû
êàïèòàëà ðàâíà
20, öåíà åäèíèöû
òðóäà ðàâíà 20. Êàêîâ
áóäåò íàêëîí
èçîêîñòû? Êàêîå
êîëè÷åñòâî òðóäà
è êàïèòàëà äîëæíà
ïðèâëå÷ü ôèðìà
äëÿ îñóùåñòâëåíèÿ
100 ïåðåâîçîê?
Ðåøåíèå
Èçîêîñòà
çàäàåòñÿ óðàâíåíèåì:
,
ãäå C - âåëè÷èíà
îáùèõ èçäåðæåê
(íåêîòîðàÿ êîíñòàíòà).
Îòñþäà:
,
ò.å. íàêëîí
ýòîé ïðÿìîé ðàâåí
-1 .
Îïòèìàëüíîå
êîëè÷åñòâî òðóäà
è êàïèòàëà äëÿ
100 ïåðåâîçîê îïðåäåëÿåòñÿ
êàê òî÷êà êàñàíèÿ
èçîêâàíòû è èçîêîñòû
ïðè íåêîòîðîì
C . Ðåøàÿ óðàâíåíèå
èçîêâàíòû ïîëó÷àåì:
√(L×K) = 100/10 = 10, òîãäà
.
Òîãäà . Òàê
êàê îáùèå èçäåðæêè
ïðè ýòîì äîëæíû
áûòü ìèíèìàëüíû,
òî, ìèíèìèçèðóÿ
C ïî L , íàéäåì êîëè÷åñòâî
òðóäà L: è . Êîëè÷åñòâî
êàïèòàëà íàéäåì
ïî ôîðìóëå .
Îòâåò: Äëÿ îñóùåñòâëåíèÿ
100 ïåðåâîçîê ôèðìà
äîëæíà ïðèâëå÷ü
10 åäèíèö òðóäà
è 10 åäèíèö êàïèòàëà.
Çàäà÷à 2
Ïðîèçâîäñòâåííàÿ
ôóíêöèÿ èìååò
âèä , ãäå Y - êîëè÷åñòâî
ïðîäóêöèè çà äåíü,
L - ÷àñû òðóäà, K - ÷àñû
ðàáîòû ìàøèí.
Ïðåäïîëîæèì, ÷òî
â äåíü çàòðà÷èâàåòñÿ
9 ÷àñîâ òðóäà è
9 ÷àñîâ ðàáîòû
ìàøèí.
Êàêîâî ìàêñèìàëüíîå
êîëè÷åñòâî ïðîäóêöèè,
ïðîèçâåäåííîé
çà äåíü? Ïðåäïîëîæèì,
÷òî ôèðìà óäâîèëà
çàòðàòû îáîèõ
ôàêòîðîâ. Îïðåäåëèòå
ýôôåêò ìàñøòàáà
ïðîèçâîäñòâà.
Ðåøåíèå
 óñëîâèÿõ
çàäà÷è â äåíü
ïðîèçâîäèòñÿ
åäèíèö
ïðîäóêöèè. Åñëè
çàòðàòû îáîèõ
ôàêòîðîâ óäâàèâàþòñÿ,
òî âûïóñê ñòàíîâèòñÿ
ðàâíûì , ò.å. òîæå
óäâàèâàåòñÿ.
Òîãäà è ýôôåêò
îò èçìåíåíèÿ
ìàñøòàáà ïðîèçâîäñòâà,
îïðåäåëÿåìûé
èç óñëîâèÿ , ðàâåí
åäèíèöå.
Çàäà÷à 3
 êðàòêîñðî÷íîì
ïåðèîäå ïðîèçâîäñòâåííàÿ
ôóíêöèÿ ôèðìû
èìååò âèä: , ãäå L
- ÷èñëî ðàáî÷èõ.
Ïðè êàêîì óðîâíå
çàíÿòîñòè îáùèé
âûïóñê áóäåò
ìàêñèìàëüíûì?
Ðåøåíèå
<#"787041.files/image042.gif">. Ïîëó÷àåì êâàäðàòíîå
óðàâíåíèå, äèñêðèìèíàíò
êîòîðîãî , à êîðíè
. Ïîñêîëüêó
îäèí èç êîðíåé
îòðèöàòåëüíûé,
áåðåì . Êîëè÷åñòâî
ðàáî÷èõ - öåëîå
÷èñëî, ïîýòîìó,
îêðóãëÿÿ, ïîëó÷àåì
.
Ãëàâà II. ßçûê Web-ïðîãðàììèðîâàíèÿ
- PHP <http://works.doklad.ru/view/kie3HesZAl0.html>
.1 Ââåäåíèå
- ÿçûê ïðîãðàììèðîâàíèÿ,
èñïîëüçóåìûé
íà ñòîðîíå WEB-ñåðâåðà
äëÿ äèíàìè÷åñêîé
ãåíåðàöèè HTML-ñòðàíèö.
Îá ýòîì ãîâîðèò
è ðàñøèôðîâêà
åãî íàçâàíèÿ:
PHP - Personal HyperText Processor- îäèí èç
íåìíîãèõ ÿçûêîâ
ïðîãðàììèðîâàíèÿ,
ñîçäàííûõ ñïåöèàëüíî
äëÿ ðàçðàáîòêè
âåá-ïðèëîæåíèé.
Ïîýòîìó îí âêëþ÷àåò
â ñåáÿ âñå ôóíêöèè,
íåîáõîäèìûå
èìåííî äëÿ ðàáîòû
íà âåá-ñåðâåðå,
è ïðè ýòîì ëèøåí
èçáûòî÷íîñòè,
ñâîéñòâåííîé
ìíîãèì åãî êîíêóðåíòàì.
Î÷åíü ïðèÿòíàÿ
îñîáåííîñòü
PHP - òî, ÷òî åãî êîìàíäû
âêëþ÷àþòñÿ â
îáû÷íûå HTML-ñòðàíèöû
ñ ïîìîùüþ ñïåöèàëüíûõ
òåãîâ, êîòîðûå
è çàñòàâëÿþò
PHP-ìàøèíó âûïîëíÿòü
íà ñåðâåðå íóæíûå
äåéñòâèÿ. Ïðîãðàììàì
íà PHP íå íóæíû ñïåöèàëüíûå
CGI-äèðåêòîðèè ñ
îñîáûìè ïðàâàìè
äîñòóïà. Áîëåå
òîãî, íà îäíîé
ñòðàíè÷êå ìîæíî
ïðîèçâîëüíî ÷åðåäîâàòü
"ïðîñòîé" HTML è
PHP-êîä.íå çàâèñèò
îò ïëàòôîðìû.
PHP ïðåêðàñíî èíòåãðèðóåòñÿ
âî âñå ïîïóëÿðíûå
âåá-ñåðâåðû: Apacce è
IIS, Zens è Netscape Enterprise Server, ðàáîòàåò
ïîä Windows è OS/2, MacOS è ïðàêòè÷åñêè
âñåìè UNIX-ïîäîáíûìè
ñèñòåìàìè. Êàê
ñëåäñòâèå - PHP ðàáîòàåò
ïðàêòè÷åñêè
ó âñåõ õîñòåðîâ,
ðàçðåøàþùèõ
ñîáñòâåííûå
âûïîëíÿåìûå ñêðèïòû.
Çàìå÷àòåëüíàÿ
îñîáåííîñòü
PHP - åãî èíòåãðèðîâàííîñòü
ïðàêòè÷åñêè
ñî âñåìè ñîâðåìåííûìè
èíòåðíåò-òåõíîëîãèÿìè.
PHP ïîääåðæèâàåò
áîëüøèíñòâî
ñîâðåìåííûõ
âåá-ïðîòîêîëîâ:
IMAP, FTP, POP, XML, SNMP è äðóãèå.
PHP ïðåêðàñíî ðàáîòàåò
ñ áàçàìè äàííûõ.
Òðóäíî íàéòè
ÑÓÁÄ, ïîääåðæêà
êîòîðîé íå áûëà
áû ðåàëèçîâàíà
â PHP. MySQL è MS SQL Server, PostgreSQL è Oracle,
Sybase è Interbase... Îäèí
òîëüêî ïåðå÷åíü
áàç äàííûõ, ïîääåðæèâàåìûõ
PHP, çàéìåò, íàâåðíîå,
öåëûé ýêðàí.âêëþ÷àåò
â ñåáÿ îãðîìíîå
êîëè÷åñòâî âñòðîåííûõ
ôóíêöèé: îáðàáîòêè
ñòðîê è ìàññèâîâ,
ðàáîòû ñ ôàéëîâîé
ñèñòåìîé è ñ
HTTP, ýëåêòðîííîé
ïî÷òîé, äàòîé
è âðåìåíåì, êèðèëëèöåé
è äðóãèìè íàöèîíàëüíûìè
àëôàâèòàìè...
Êîãäà ÿ âïåðâûå
íà÷àë ïðîãðàììèðîâàòü
íà PHP, òî áûë ïðîñòî
ïîðàæåí îáèëèåì
âñòðîåííûõ ôóíêöèé!
Áëàãîäàðÿ èì
ìíîãèå àëãîðèòìû,
òðåáóþùèå â áîëüøèíñòâå
ÿçûêîâ íàïèñàíèÿ
ïðîãðàììíîãî
êîäà ðàçìåðîì
â íåñêîëüêî ýêðàíîâ,
ðåàëèçóþòñÿ
íà PHP îäíîé êîìàíäîé
(òî÷íåå, âûçîâîì
îäíîé ôóíêöèè).
Ñîâðåìåííûå
òåíäåíöèè ðàçâèòèÿ
ÿçûêîâ ïðîãðàììèðîâàíèÿ
íå îáîøëè ñòîðîíîé
è PHP. Ñðåäñòâà îáúåêòíî-îðèåíòèðîâàííîãî
ïðîãðàììèðîâàíèÿ
ïîÿâèëèñü åùå
â PHP3. À â îáúåêòíîé
ìîäåëè PHP4 â ïîëíîì
îáúåìå ðåàëèçîâàíû
êëàññè÷åñêèå
ïîíÿòèÿ îáúåêòíî-îðèåíòèðîâàííîãî
ïðîãðàììèðîâàíèÿ:
íàñëåäîâàíèå,
èíêàïñóëÿöèÿ
è ïîëèìîðôèçì.
1.2
×òî òàêîå PHP?
- ýòî ñêðèïò-ÿçûê
(scripting language), âñòðàèâàåìûé
â HTML, êîòîðûé èíòåðïðåòèðóåòñÿ
è âûïîëíÿåòñÿ
íà ñåðâåðå. Ïðîùå
âñåãî ýòî ïîêàçàòü
íà ïðèìåðå:
<html>
<head>
<title>Ïðèìåð</title>
</head>
<body>
<?php echo "Hi, I'm a PHP script!";
?>
</body>
</html>
Hi, I'm a PHP script! (ñì. ïðèëîæåíèå
1)
Âåñüìà ïðîñòî
è áåñïîëåçíî.
Îñíîâíîå îòëè÷èå
îò CGI-ñêðèïòîâ, íàïèñàííûõ
íà äðóãèõ ÿçûêàõ,
òèïà Perl èëè C - ýòî
òî, ÷òî â CGI-ïðîãðàììàõ
âû ñàìè ïèøåòå
âûâîäèìûé HTML-êîä,
à, èñïîëüçóÿ PHP -
âû âñòðàèâàåòå
ñâîþ ïðîãðàììó
â ãîòîâóþ HTML-ñòðàíèöó,
èñïîëüçóÿ îòêðûâàþùèé
è çàêðûâàþùèé
òåãè (â ïðèìåðå
<?php è ?>).
Îòëè÷èå PHP îò
JavaScript, ñîñòîèò â òîì,
÷òî PHP-ñêðèïò âûïîëíÿåòñÿ
íà ñåðâåðå, à êëèåíòó
ïåðåäàåòñÿ ðåçóëüòàò
ðàáîòû, òîãäà
êàê â JavaScript-êîä ïîëíîñòüþ
ïåðåäàåòñÿ íà
êëèåíòñêóþ ìàøèíó
è òîëüêî òàì âûïîëíÿåòñÿ.
Ëþáèòåëè Internet Information Server íàéäóò,
÷òî PHP î÷åíü ïîõîæ
íà Active Server Pages (ASP), à ýíòóçèàñòû
Java ñêàæóò,
÷òî PHP ïîõîæ íà Java Server Pages (JSP). Âñå
òðè ÿçûêà ïîçâîëÿþò
ðàçìåùàòü êîä,
âûïîëíÿåìûé íà
Web-ñåðâåðå, âíóòðè
HTML ñòðàíèö.
Âîçìîæíîñòè
PHP
 íåñêîëüêèõ
ñëîâàõ - íà PHP ìîæíî
ñäåëàòü âñå, ÷òî
ìîæíî ñäåëàòü
ñ ïîìîùüþ CGI-ïðîãðàìì.
Íàïðèìåð: îáðàáàòûâàòü
äàííûå èç ôîðì,
ãåíåðèðîâàòü
äèíàìè÷åñêèå
ñòðàíèöû, ïîëó÷àòü
è ïîñûëàòü êóêè
(cookies).
Êðîìå ýòîãî
â PHP âêëþ÷åíà ïîääåðæêà
ìíîãèõ áàç äàííûõ
(databases), ÷òî äåëàåò
íàïèñàíèå Web-ïðèëîæåíèé
ñ èñïîëüçîâàíèåì
ÁÄ äî íåâîçìîæíîñòè
ïðîñòûì. Âîò íåïîëíûé
ïåðå÷åíü ïîääåðæèâàåìûõ
ÁÄ:
Adabas D
|
InterBase
|
Solid
|
dBase
|
mSQL
|
Sybase
|
Empress
|
MySQL
|
Velocis
|
FilePro
|
Oracle
|
Unix dbm
|
Informix
|
PostgreSQL
|
|
Âäîáàâîê êî
âñåìó PHP ïîíèìàåò
ïðîòîêîëû IMAP, SNMP, NNTP,
POP3 è äàæå HTTP, à òàêæå
èìååò âîçìîæíîñòü
ðàáîòàòü ñ ñîêåòàìè
(sockets) è îáùàòüñÿ ïî
äðóãèì ïðîòîêîëàì.
1.3
Êðàòêàÿ èñòîðèÿ
PHP
Íà÷àëîì PHP ìîæíî
ñ÷èòàòü îñåíü
1994 ãîäà, êîãäà Ðàñìóñ
Ëåðäîðô (Rasmus Lerdorf) ðåøèë
ðàñøèðèòü âîçìîæíîñòè
ñâîåé Home-page (Äîìàøíåé
ñòðàíèöû) è íàïèñàòü
íåáîëüøîé äâèæîê
äëÿ âûïîëíåíèÿ
ïðîñòåéøèõ çàäà÷.
Òàêîé äâèæîê
áûë ãîòîâ ê íà÷àëó
1995 ãîäà è íàçûâàëñÿ
Personal Home Page Tools. Óìåë îí íå
î÷åíü ìíîãî - ïîíèìàë
ïðîñòåéøèé ÿçûê
è âñåãî íåñêîëüêî
ìàêðîñîâ.
Ê ñåðåäèíå
1995 ãîäà ïîÿâèëàñü
âòîðàÿ âåðñèÿ,
êîòîðàÿ íàçûâàëàñü
PHP/FI Version 2. Ïðèñòàâêà
FI - ïðèñîåäèíèëàñü
èç äðóãîãî ïàêåòà
Ðàñìóñà, êîòîðûé
óìåë îáðàáàòûâàòü
ôîðìû (Form Interpritator). PHP/FI êîìïèëèðîâàëñÿ
âíóòðü Apache è èñïîëüçîâàë
ñòàíäàðòíûé
API Apache. PHP ñêðèïòû îêàçàëèñü
áûñòðåå àíàëîãè÷íûõ
CGI - ñêðèïòîâ, òàê
êàê ñåðâåðó íå
áûëî íåîáõîäèìîñòè
ïîðîæäàòü íîâûé
ïðîöåññ. ßçûê
PHP ïî âîçìîæíîñòÿì
ïðèáëèçèëñÿ ê
Perl, ñàìîìó ïîïóëÿðíîìó
ÿçûêó äëÿ íàïèñàíèÿ
CGI-ïðîãðàìì. Áûëà
äîáàâëåíà ïîääåðæêà
ìíîæåñòâà èçâåñòíûõ
áàç äàííûõ (íàïðèìåð,
MySQL è Oracle). Èíòåðôåéñ
ê GD - áèáëèîòåêå,
ïîçâîëÿë ãåíåðèðîâàòü
êàðòèíêè íà ëåòó.
Ñ ýòîãî ìîìåíòà
íà÷àëîñü øèðîêîå
ðàñïðîñòðàíåíèå
PHP/FI.
 êîíöå 1997 Çýýâ
Ñóðàñêè (Zeev Suraski) è Ýíäè
Ãóòìàíñ (Andi Gutmans) ðåøèëè
ïåðåïèñàòü âíóòðåííèé
äâèæîê, ñ öåëüþ
èñïðàâèòü îøèáêè
èíòåðïðåòàòîðà
è ïîâûñèòü ñêîðîñòü
âûïîëíåíèÿ ñêðèïòîâ.
×åðåç ïîëãîäà,
6 èþíÿ 1998 ãîäà âûøëà
íîâàÿ âåðñèÿ,
êîòîðàÿ áûëà íàçâàíà
PHP 3. Ê ëåòó 1999 ãîäà
PHP 3 áûë âêëþ÷åí â
íåñêîëüêî êîììåð÷åñêèõ
ïðîäóêòîâ. Ïî äàííûì
NetCraft íà íîÿáðü 1999 PHP èñïîëüçîâàëñÿ
â áîëåå ÷åì 1 ìëí.
äîìåíàõ.
1.4
Ïî÷åìó íóæíî
âûáèðàòü PHP
Ðàçðàáîò÷èêàì
Web-ïðèëîæåíèé íåò
íåîáõîäèìîñòè
ãîâîðèòü, ÷òî
web-ñòðàíèöû - ýòî
íå òîëüêî òåêñò
è êàðòèíêè. Äîñòîéíûé
âíèìàíèÿ ñàéò
äîëæåí ïîääåðæèâàòü
íåêîòîðûé óðîâåíü
èíòåðàêòèâíîñòè
ñ ïîëüçîâàòåëåì
: ïîèñê èíôîðìàöèè,
ïðîäàæà ïðîäóêòîâ,
êîíôåðåíöèè è
ò.ï. Òðàäèöèîííî
âñå ýòî ðåàëèçîâàëîñü
CGI-ñêðèïòàìè, íàïèñàííûìè
íà Perl. Íî CGI- ñêðèïòû
î÷åíü ïëîõî ìàñøòàáèðóåìû.
Êàæäûé íîâûé
âûçîâ CGI, òðåáóåò
îò ÿäðà ïîðîæäåíèÿ
íîâîãî ïðîöåññà,
à ýòî çàíèìàåò
ïðîöåññîðíîå
âðåìÿ è òðàòèò
îïåðàòèâíóþ
ïàìÿòü. PHP ïðåäëàãàåò
äðóãîé âàðèàíò
- îí ðàáîòàåò êàê
÷àñòü Web-ñåðâåðà,
è ýòèì ñàìûì
ïîõîæ íà ASP îò
Microsoft.
Ñèíòàêñèñ
PHP î÷åíü ïîõîæ íà
ñèíòàêñèñ C èëè
Perl. Ëþäè, çíàêîìûå
ñ ïðîãðàììèðîâàíèåì,
î÷åíü áûñòðî
ñìîãóò íà÷àòü
ïèñàòü ïðîãðàììû
íà PHP. Â ýòîì ÿçûêå
íåò ñòðîãîé òèïèçàöèè
äàííûõ è íåò íåîáõîäèìîñòè
â äåéñòâèÿõ ïî
âûäåëåíèþ/îñâîáîæäåíèþ
ïàìÿòè.
Ïðîãðàììû,
íàïèñàííûå íà
PHP, äîñòàòî÷íî
ëåãêî÷èòàåìû.
Íàïèñàííûé
PHP - êîä ëåãêî çðèòåëüíî
ïðî÷èòàòü è ïîíÿòü,
â îòëè÷èå îò
Perl-ïðîãðàìì.
Íåäîñòàòêè
PHPÿâëÿåòñÿ èíòåðïðåòèðóåìûì
ÿçûêîì, è, âñëåäñòâèå
ýòîãî, íå ìîæåò
ñðàâíèòüñÿ ïî
ñêîðîñòè ñ êîìïèëèðóåìûì
Ñ. Îäíàêî ïðè íàïèñàíèè
íåáîëüøèõ ïðîãðàìì,
÷òî, â îáùåì-òî,
ïðèñóùå ïðîåêòàì
íà PHP, êîãäà âåñü
ïðîåêò ñîñòîèò
èç ìíîãèõ íåáîëüøèõ
ñòðàíèö ñ êîäîì,
âñòóïàþò â ñèëó
íàêëàäíûå ðàñõîäû
íà çàãðóçêó â
ïàìÿòü è âûçîâ
CGI-ïðîãðàììû, íàïèñàííîé
íà Ñ.
Íå òàêàÿ áîëüøàÿ
áàçà ãîòîâûõ
ìîäóëåé, êàê, íàïðèìåð,
ÑPAN ó Perl. Ñ ýòèì íè÷åãî
íåëüçÿ ïîäåëàòü
- ýòî äåëî âðåìåíè.
 PHP 4 ðàçðàáîò÷èêè
ïðåäóñìîòðåëè
ñïåöèàëüíûé ðåïîçèòîðèé
PEAR, àíàëîãè÷íûé
CPAN, è ÿ äóìàþ, î÷åíü
ñêîðî áóäåò íàïèñàíî
äîñòàòî÷íîå
êîëè÷åñòâî ìîäóëåé
äëÿ åãî íàïîëíåíèÿ.
1.5
×òî òàêîå MySQL
- êîìïàêòíûé
ìíîãîïîòî÷íûé
ñåðâåð áàç äàííûõ.
MySQL õàðàêòåðèçóåòñÿ
áîëüøîé ñêîðîñòüþ,
óñòîé÷èâîñòüþ
è ëåãêîñòüþ â
èñïîëüçîâàíèè.áûë
ðàçðàáîòàí êîìïàíèåé
TcX äëÿ âíóòðåííèõ
íóæä, êîòîðûå
çàêëþ÷àëèñü
â áûñòðîé îáðàáîòêå
î÷åíü áîëüøèõ
áàç äàííûõ. Êîìïàíèÿ
óòâåðæäàåò, ÷òî
èñïîëüçóåò MySQL ñ
1996 ãîäà íà ñåðâåðå
ñ áîëåå ÷åì 40 ÁÄ,
êîòîðûå ñîäåðæàò
10,000 òàáëèö, èç êîòîðûõ
áîëåå ÷åì 500 èìåþò
áîëåå 7 ìèëëèîíîâ
ñòðîê.ÿâëÿåòñÿ
èäåàëüíûì ðåøåíèåì
äëÿ ìàëûõ è ñðåäíèõ
ïðèëîæåíèé. Èñõîäíèêè
ñåðâåðà êîìïèëèðóþòñÿ
íà ìíîæåñòâå
ïëàòôîðì. Íàèáîëåå
ïîëíî âîçìîæíîñòè
ñåðâåðà ïðîÿâëÿþòñÿ
íà Unix-ñåðâåðàõ, ãäå
åñòü ïîääåðæêà
ìíîãîïîòî÷íîñòè,
÷òî äàåò çíà÷èòåëüíûé
ïðèðîñò ïðîèçâîäèòåëüíîñòè.
Íà òåêóùèé
ìîìåíò MySQL âñå åùå
â ñòàäèè ðàçðàáîòêè,
õîòÿ âåðñèè 3.22 ïîëíîñòüþ
ðàáîòîñïîñîáíû.ñåðâåð
ÿâëÿåòñÿ áåñïëàòíûì
äëÿ íåêîììåð÷åñêîãî
èñïîëüçîâàíèÿ.
Èíà÷å íåîáõîäèìî
ïðèîáðåòåíèå
ëèöåíçèè, ñòîèìîñòü
êîòîðîé ñîñòàâëÿåò
190 EUR.
1.6
Âîçìîæíîñòè
MySQL
ïîääåðæèâàåò
ÿçûê çàïðîñîâ
SQL â ñòàíäàðòå
ANSI 92, è êðîìå ýòîãî
èìååò ìíîæåñòâî
ðàñøèðåíèé ê
ýòîìó ñòàíäàðòó,
êîòîðûõ íåò íè
â îäíîé äðóãîé
ÑÓÁÄ.
Êðàòêèé ïåðå÷åíü
âîçìîæíîñòåé
MySQL.
Ïîääåðæèâàåòñÿ
íåîãðàíè÷åííîå
êîëè÷åñòâî ïîëüçîâàòåëåé,
îäíîâðåìåííî
ðàáîòàþùèõ ñ
áàçîé äàííûõ.
Êîëè÷åñòâî
ñòðîê â òàáëèöàõ
ìîæåò äîñòèãàòü
50 ìëí.
Áûñòðîå âûïîëíåíèå
êîìàíä. Âîçìîæíî
MySQL ñàìûé áûñòðûé
ñåðâåð èç ñóùåñòâóþùèõ.
Ïðîñòàÿ è ýôôåêòèâíàÿ
ñèñòåìà áåçîïàñíîñòè.äåéñòâèòåëüíî
î÷åíü áûñòðûé
ñåðâåð, íî äëÿ äîñòèæåíèÿ
ýòîãî ðàçðàáîò÷èêàì
ïðèøëîñü ïîæåðòâîâàòü
íåêîòîðûìè òðåáîâàíèÿìè
ê ðåëÿöèîííûì
ÑÓÁÄ.
 MySQL îòñóòñòâóþò:
Ïîääåðæêà âëîæåííûõ çàïðîñîâ, òèïà SELECT * FROM
table1 WHERE id IN (SELECT id FROM table2).
Íå ðåàëèçîâàíà
ïîääåðæêà òðàíçàêöèé.
Âçàìåí ïðåäëàãàåòñÿ
èñïîëüçîâàòü
LOCK/UNLOCK TABLE.
Íåò ïîääåðæêè
òðèããåðîâ è õðàíèìûõ
ïðîöåäóð.
Ïî ñëîâàì ñîçäàòåëåé
èìåííî ýòè ïóíêòû
äàëè âîçìîæíîñòü
äîñòè÷ü âûñîêîãî
áûñòðîäåéñòâèÿ.
Èõ ðåàëèçàöèÿ
ñóùåñòâåííî
ñíèæàåò ñêîðîñòü
ñåðâåðà. Ýòè âîçìîæíîñòè
íå ÿâëÿþòñÿ êðèòè÷íûìè
ïðè ñîçäàíèè
Web-ïðèëîæåíèé, ÷òî
â ñî÷åòàíèè ñ
âûñîêèì áûñòðîäåéñòâèåì
è ìàëîé öåíîé
ïîçâîëèëî ñåðâåðó
ïðèîáðåñòè áîëüøóþ
ïîïóëÿðíîñòü
1.7
Ïðèìåðû èñïîëüçîâàíèÿ
PHP
Ðàáîòà ñ ôîðìàìè
 ýòîì ïðèìåðå
ïîêàçàíî êàê
â PHP ëåãêî îáðàáàòûâàòü
äàííûå ñ HTML - ôîðì.
Ñîçäàäèì ïðîñòîé
HTML ôàéë.
<HTML>
<HEAD>
<TITLE>Çàïðîñ èíôîðìàöèè</TITLE>
<BODY>
<CENTER>
Õîòèòå áîëüøå
çíàòü î íàøèõ
òîâàðàõ?
<P>
<TABLE WIDTH = 400><TR><TD align =
right>
<FORM ACTION="email.php"
METHOD="POST">
Âàøå èìÿ:<BR> <INPUT
TYPE="text" NAME="name" SIZE="20"
MAXLENGTH="30">
<P>
Âàø email:<BR>
<INPUT TYPE="text" NAME="email" SIZE="20"
MAXLENGTH="30">
<P>
Ìåíÿ èíòåðåñóþò:
<SELECT NAME="preference">
<OPTION value = "ßáëîêè">ßáëîêè
<OPTION value = "Àïåëüñèíû">Àïåëüñèíû
</SELECT>
<P>
<INPUT TYPE="submit" VALUE="Îòïðàâèòü çàïðîñ!">
</FORM>
</TD></TR></TABLE></CENTER>
</BODY>
</HTML>
<?
/* Ýòîò ñêðèïò
ïîëó÷àåò ïåðåìåííûå
èç request.html */
PRINT "<CENTER>";"Ïðèâåò,
".$_POST['name'];
PRINT "<BR><BR>";"Ñïàñèáî
çà âàø èíòåðåñ.<BR><BR>";
PRINT "Âàñ èíòåðåñóþò
".$_POST['preference'].",
èíôîðìàöèþ
î íèõ ìû ïîøëåì
âàì íà email: ".$_POST['email']; PRINT
"</CENTER>";
?>
Òåïåðü, åñëè
ïîëüçîâàòåëü
âûçîâåò request.html è íàáåðåò
â ôîðìå èìÿ “Âàñÿ”,
email: vasya@pupkin.com è ñêàæåò,
÷òî åãî èíòåðåñóþò
“ßáëîêè”, à ïîñëå
ýòîãî íàæìåò
"Îòïðàâèòü çàïðîñ!",
òî â îòâåò âûçîâåòñÿ
email.php, êîòîðûé âûâåäåò
íà ýêðàí ïðèìåðíî
ñëåäóþùåå:
Ïðèâåò, Âàñÿ
Ñïàñèáî çà
âàø èíòåðåñ.
Âàñ èíòåðåñóþò
ßáëîêè. Èíôîðìàöèþ
î íèõ ìû ïîøëåì
âàì íà email: vasya@pupkin.com
Òåïåðü ìû äîëæíû
ñäåðæàòü îáåùàíèå
è âûñëàòü email.
Äëÿ ýòîãî â
PHP åñòü ôóíêöèÿ
MAIL.
Ñèíòàêñèñ:
(,, string message, string add_headers);
to - email àäðåñ ïîëó÷àòåëÿ.
subject - òåìà ïèñüìà.
message - ñîáñòâåííî
òåêñò ñîîáùåíèÿ._headers
- äðóãèå ïàðàìåòðû
çàãîëîâêà ïèñüìà
(íåîáÿçàòåëüíûé
ïàðàìåòð).
Äîïèøåì â êîíåö
ôàéëà email.php ñëåäóþùèé
êîä:
<?php
$subj = "Çàïðîñ íà
èíôîðìàöèþ";
$text = "Óâàæàåìûé
".$_POST['name']."!
Ñïàñèáî çà
âàø èíòåðåñ!
Âàñ èíòåðåñóþò
".$_POST['preference']."
Ìû èõ ðàñïðîñòðàíÿåì
áåñïëàòíî.
Îáðàòèòåñü
â áëèæàéøèé ôèëèàë
íàøåé êîìïàíèè
è ïîëó÷èòå ÿùèê
ýòîãî ïðîäóêòà.";
mail($_POST['email'], $subj, $text);
$subj = "Ïîñòóïèë
çàïðîñ íà èíôîðìàöèþ";
$text = $_POST['name']." èíòåðåñîâàëè
".$_POST['preference']." email-àäðåñ:
".$_POST['email'];
mail($adminaddress, $subj, $text);
?>
Âîò òåïåðü
ïîëüçîâàòåëü
áóäåò ïîëó÷àòü
ïèñüìî ñ áîëåå
ïîäðîáíîé èíôîðìàöèåé
î íàøèõ òîâàðàõ.
Òàêæå ïèñüìî
ïîëó÷èò è àäìèíèñòðàòîð
ñàéòà. (Ïðèëîæåíèå
4)
Êîãäà èíòåðåñóþùèõñÿ
íàøèìè òîâàðàìè
ñòàíåò î÷åíü
ìíîãî, ìû çàõîòèì
èõ êàê-òî óïîðÿäî÷èòü
è õðàíèòü èíôîðìàöèþ
î íèõ â áàçå äàííûõ.
Êàê ðàç ýòî ìû
áóäåì ðàçáèðàòü
â ñëåäóþùåì ðàçäåëå.
1.8
Ðàáîòà ñ MySQL (ñîõðàíåíèå
äàííûõ â áàçå
äàííûõ)
Äëÿ íà÷àëà
ñîçäàåì áàçó
äàííûõ è òàáëèöó.
Âõîäèì â phpMyAdmin (phpMyAdmin - âåá-ïðèëîæåíèå
ñ îòêðûòûì êîäîì,
íàïèñàííîå íà
ÿçûêå PHP è ïðåäñòàâëÿþùåå
ñîáîé âåá-èíòåðôåéñ
äëÿ àäìèíèñòðèðîâàíèÿ
ÑÓÁÄ MySQL) (ñì. ïðèëîæåíèå
5), è âûïîëíÿåì êîìàíäû:
>CREATE DATABASE products;
>CREATE TABLE clients (name VARCHAR(25), email
VARCHAR(25), choise VARCHAR(8));
Äëÿ îáùåíèÿ
ñ MySQL èç PHP ïîíàäîáÿòñÿ
ñëåäóþùèå ôóíêöèè.
int mysql_connect(string hostname, string
username, string password);
Ñîçäàòü ñîåäèíåíèå
ñ MySQL. Ïàðàìåòðû:
Hostname - èìÿ õîñòà, íà
êîòîðîì íàõîäèòñÿ
áàçà äàííûõ.Username
- èìÿ ïîëüçîâàòåëÿ.Password
- ïàðîëü ïîëüçîâàòåëÿ.
Ôóíêöèÿ âîçâðàùàåò
ïàðàìåòð òèïà
int, êîòîðûé áîëüøå
0, åñëè ñîåäèíåíèå
ïðîøëî óñïåøíî,
è ðàâåí 0 â ïðîòèâíîì
ñëó÷àå.
int mysql_select_db(string database_name, int
link_identifier);
Âûáðàòü áàçó
äàííûõ äëÿ ðàáîòû.
Ïàðàìåòðû:Database_name - èìÿ
áàçû äàííûõ.link_identifier
- ID ñîåäèíåíèÿ,
êîòîðîå ïîëó÷åíî
â ôóíêöèè mysql_connect. (ïàðàìåòð
íåîáÿçàòåëüíûé,
åñëè îí íå óêàçûâàåòñÿ,
òî èñïîëüçóåòñÿ
ID îò ïîñëåäíåãî
âûçîâà mysql_connect)
Ôóíêöèÿ âîçâðàùàåò
çíà÷åíèå true èëè
false
int mysql_query(string query, int
link_identifier);
Ôóíêöèÿ âûïîëíÿåò
çàïðîñ ê áàçå
äàííûõ.Ïàðàìåòðû:Query
- ñòðîêà, ñîäåðæàùàÿ
çàïðîñlink_identifier - ñì. ïðåäûäóùóþ
ôóíêöèþ.
Ôóíêöèÿ âîçâðàùàåò
ID ðåçóëüòàòà èëè
0, åñëè ïðîèçîøëà
îøèáêà.
int mysql_close(int link_identifier);
Ôóíêöèÿ çàêðûâàåò
ñîåäèíåíèå ñ
MySQL.
Ïàðàìåòðû:_identifier -
ñì. âûøå.
Ôóíêöèÿ âîçâðàùàåò
çíà÷åíèå true èëè
false
Òåïåðü íàø
ôàéë email.php áóäåò èìåòü
ñëåä. âèä:
<?
/* Ýòîò ñêðèïò
ïîëó÷àåò ïåðåìåííûå
èç request.html */
/* Ïåðåìåííûå
äëÿ ñîåäèíåíèÿ
ñ áàçîé äàííûõ
*/
$hostname = "localhost";
$username = "myusername";
$password = "mypassword";
$dbName = "products";
/* Òàáëèöà
MySQL, â êîòîðîé õðàíÿòñÿ
äàííûå */
$userstable = "clients";
/* email àäìèíèñòðàòîðà */
$adminaddress =
"administration@me.com";
/* ñîçäàòü ñîåäèíåíèå
*/_connect($hostname,$username,$password) OR DIE("Íå ìîãó ñîçäàòü ñîåäèíåíèå ");
/* âûáðàòü áàçó
äàííûõ. Åñëè ïðîèçîéäåò
îøèáêà - âûâåñòè
åå */
mysql_select_db($dbName) or
die(mysql_error());"<CENTER>";"Ïðèâåò,
".$_POST['name'];
echo "<BR><BR>";"Ñïàñèáî
çà âàø èíòåðåñ.<BR><BR>";
echo "Âàñ èíòåðåñóþò
".$_POST['preference'].". Èíôîðìàöèþ
î íèõ ìû ïîøëåì
âàì íà email:".$_POST['email'];
echo "</CENTER>";
/* Îòïðàâëÿåì email-û */
$subj = "Çàïðîñ íà
èíôîðìàöèþ";
$text = "Óâàæàåìûé
".$_POST['name']."!
Ñïàñèáî çà
âàø èíòåðåñ!
Ìû èõ ðàñïðîñòðàíÿåì
áåñïëàòíî.
Îáðàòèòåñü
â áëèæàéøèé ôèëèàë
íàøåé êîìïàíèè
è ïîëó÷èòå ÿùèê
ýòîãî ïðîäóêòà.";
mail($_POST['email'], $subj, $text);
$subj="Ïîñòóïèë
çàïðîñ íà èíôîðìàöèþ";
$text = $_POST['name']." èíòåðåñîâàëè
".$_POST['preference']." email-àäðåñ:
".$_POST['email'];
mail($adminaddress, $subj, $text);
/* ñîñòàâèòü
çàïðîñ äëÿ âñòàâêè
èíôîðìàöèè î
êëèåíòå â òàáëèöó
*/
$query = "INSERT INTO $userstable
VALUES('$name','$email', '$preference')";
/* Âûïîëíèòü
çàïðîñ. Åñëè ïðîèçîéäåò
îøèáêà - âûâåñòè
åå. */_query($query) or die(mysql_error());
echo "Èíôîðìàöèÿ
î âàñ çàíåñåíà
â áàçó äàííûõ.";
/* Çàêðûòü ñîåäèíåíèå
*/_close();
?>
Âîò òàê ëåãêî
ìîæíî ðàáîòàòü
ñ áàçîé äàííûõ
â PHP. Òåïåðü êðîìå
ïèñüìåííûõ óâåäîìëåíèé,
èíôîðìàöèÿ î
êëèåíòå è åãî
èíòåðåñàõ áóäåò
çàíîñèòñÿ â òàáëèöó
MySQL.
1.9
Ðàáîòà ñ MySQL (ïîëó÷åíèå
äàííûõ èç áàçû
äàííûõ)
Ïîñëå çàíåñåíèÿ
äàííûõ, íàñ èíîãäà
áóäåò èíòåðåñîâàòü
âîïðîñ òàê êîãî
æå èç íàøèõ êëèåíòîâ
èíòåðåñóåò òîâàð
“ßáëîêè”.
Íàïèøåì ñêðèïò
apple.php
<?
/* Ñêðèïò ïîêàçûâàåò
êëèåíòîâ, êîòîðûå
ÿáëîêè ëþáÿò áîëüøå
÷åì àïåëüñèíû
*/
/* Ïåðåìåííûå
äëÿ ñîåäèíåíèÿ
ñ áàçîé äàííûõ
*/
$hostname = "localhost";
$username = "myusername";
$password = "mypassword";
$dbName = "products";
/* Òàáëèöà
MySQL, â êîòîðîé õðàíÿòñÿ
äàííûå */
$userstable = "clients";
/* ñîçäàòü ñîåäèíåíèå
*/_connect($hostname,$username,$password) OR DIE("Íå ìîãó ñîçäàòü ñîåäèíåíèå ");
/* âûáðàòü áàçó
äàííûõ. Åñëè ïðîèçîéäåò
îøèáêà - âûâåñòè
åå */
mysql_select_db($dbName) or die(mysql_error());
/* ñîñòàâèòü
çàïðîñ, êîòîðûé
âûáåðåò âñåõ
êëèåíòîâ - ÿáëî÷íèêîâ
*/
$query = "SELECT * FROM $userstable WHERE
choise = 'ßáëîêè'";
/* Âûïîëíèòü
çàïðîñ. Åñëè ïðîèçîéäåò
îøèáêà - âûâåñòè
åå. */
$res = mysql_query($query) or die(mysql_error());
/* Êàê ìíîãî
íàøëîñü òàêèõ
*/
$number = mysql_num_rows($res);
/* Íàïå÷àòàòü
âñåõ â êðàñèâîì
âèäå*/
if ($number == 0) {"<CENTER><P>Ëþáèòåëåé ÿáëîê íåò</CENTER>";
} else {"<CENTER><P>Êîëè÷åñòâî ëþáèòåëåé ÿáëîê:
$number<BR><BR>";
/* Ïîëó÷àòü ïî
îäíîé ñòðîêå
èç òàáëèöû â ìàññèâ
$row, ïîêà ñòðîêè íå
êîí÷àòñÿ */
while ($row=mysql_fetch_array($res)) {"Êëèåíò
".$row['name']." ëþáèò ßáëîêè.<BR>";"Åãî Email:
".$row['email'];"<BR><BR>";
}"</CENTER>";
}
?>
Ñïèñîê èñïîëüçîâàííîé
ëèòåðàòóðû
1. Äîóãåðòè
Ê. Ââåäåíèå â ýêîíîìåòðèêó.
- Ì.: Ôèíàíñû è ñòàòèñòèêà,
2001.
2. Çàìêîâ
Î.Î., Òîëñòîïÿòåíêî
À.Â., ×åðåìíûõ Þ.Ï.
Ìàòåìàòè÷åñêèå
ìåòîäû â ýêîíîìèêå:
Ó÷åáíèê. - Ì.: Èçä.
«ÄÈÑ», 1997.
. Êóðñ
ýêîíîìè÷åñêîé
òåîðèè: ó÷åáíèê.
- Êèðîâ: «ÀÑÀ», 1999.
. Ìèêðîýêîíîìèêà.
Ïîä ðåä. Ïðîô. ßêîâëåâîé
Å.Á. - Ì.: ÑÏá. Ïîèñê,
2002.
5. Ñàëìàíîâ
Î. Ìàòåìàòè÷åñêàÿ
ýêîíîìèêà. - Ì.:
BHV, 2003.
6. ×óðàêîâ
Å.Ï. Ìàòåìàòè÷åñêèå
ìåòîäû îáðàáîòêè
ýêñïåðèìåíòàëüíûõ
äàííûõ â ýêîíîìèêå.
- Ì.: Ôèíàíñû è ñòàòèñòèêà,
2004.
. Øåëîáàåâ
Ñ.È. Ìàòåìàòè÷åñêèå
ìåòîäû è ìîäåëè
â ýêîíîìèêå, ôèíàíñàõ,
áèçíåñå. - Ì.: Þíèòè-Äàíà,
2000.
8. Äæîðäæ
Øëîññíåéãë. Ïðîôåññèîíàëüíîå
ïðîãðàììèðîâàíèå
íà PHP, 2006
9. Óèëüÿì
Ñòåéíìåö, Áðàéàí
Âàðä. 75 ãîòîâûõ
ðåøåíèé äëÿ âàøåãî
web-ñàéòà íà ÐÍÐ,
2009
. Ìèøåëü
Å. Äýâèñ è Äæîí
À. Ôèëèïñ. Èçó÷àåì
PHP è MySQL, 2008
. Íèêîëàé
Ïðîõîðåíîê. HTML, JavaScript, PHP è MySQL. Äæåíòåëüìåíñêèé
íàáîð Web-ìàñòåðà, 2010
. Òèì
Êîíâåðñ, Äæîéñ
Ïàðê è Êëàðê Ìîðãàí.
PHP 5 è MySQL. Áèáëèÿ ïîëüçîâàòåëÿ,
2006
Ðàçìåùåíî
íà Allbest.ru
Похожие работы на - Язык Web-программирования - PHP
|