СУБД/лекция 3 семестр 2 — различия между версиями
Vidokq  (обсуждение | вклад)  (→Устновка кодировкmy sql_set_charset)  | 
			Vidokq  (обсуждение | вклад)   (→Классы построения графиков)  | 
			||
| (не показана 21 промежуточная версия 1 участника) | |||
| Строка 1: | Строка 1: | ||
== Литература ==  | == Литература ==  | ||
| − | *   | + | * {{V|24px}}[http://www.php.su/articles/?cat=phpdb&page=025 Исходная Документация]  | 
| − | + | ||
* [http://vismech.ru/mysql/ispolzovanie-mysql-v-php-scenariyah/ Использование MySQL в PHP сценариях]  | * [http://vismech.ru/mysql/ispolzovanie-mysql-v-php-scenariyah/ Использование MySQL в PHP сценариях]  | ||
| + | |||
| + | == Встроенные функции PHP ==  | ||
| + | * [[СУБД/лекция 3 семестр 2/Функции для СУБД | PHP функции для работы с СУБД]]  | ||
| + | * [[СУБД/лекция 3 семестр 2/Функции СУБД | PHP  Функции ]]  | ||
== Подкючение к БД ==  | == Подкючение к БД ==  | ||
| Строка 51: | Строка 54: | ||
else echo "Connect to ".$db." successfull<br>";  | else echo "Connect to ".$db." successfull<br>";  | ||
mysql_select_db($db) or die("cann't connect Mysql<br>".mysql_error());  | mysql_select_db($db) or die("cann't connect Mysql<br>".mysql_error());  | ||
| + | //........  | ||
mysql_set_charset(utf8);  | mysql_set_charset(utf8);  | ||
| + | //..............  | ||
| + | mysql_close($link);  | ||
?>  | ?>  | ||
</source>  | </source>  | ||
| Строка 173: | Строка 179: | ||
Теперь на экран выведутся все строки у которых столбец name равен значению Ruslan.  | Теперь на экран выведутся все строки у которых столбец name равен значению Ruslan.  | ||
| + | |||
| + | ==Вывод значений на экран ==  | ||
| + | * Выполняем запрос   | ||
| + | * Помещаем результат в переменную !!! (учитывайте что результатом запроса должна быть разумная таблица не {{X|24px}}10ГБ к примеру )  | ||
| + | * Достаем построчно значения из переменной с помощью курсора '''mysql_fetch_array($result)'''  | ||
| + | * Выводим нужные поля из строки   | ||
| + | * Можно разделять поля используя '''html''' теги форматрирования  | ||
| + | *{{V|24px}} '''ОБЯЗАТЕЛЬНО''' после использования очищаем переменную в которой хранился результат выполения запроса '''mysql_free_result($result);'''  | ||
| + | |||
| + | <source lang="php"><?php  | ||
| + | $db = "alldb";  | ||
| + | $user = "student";  | ||
| + | $pass = "studentpass";  | ||
| + | $server = "93.125.42.8";  | ||
| + | $link = mysql_connect($server, $user, $pass);  | ||
| + | if(!$link) die("cann't connect Mysql");  | ||
| + | else echo "Connect to ".$db." successfull<br>";  | ||
| + | mysql_select_db($db) or die("cann't connect Mysql<br>".mysql_error());  | ||
| + | |||
| + | mysql_set_charset(utf8);  | ||
| + | |||
| + | $query="select * from vkdb where sex = '2' limit 10;";  | ||
| + | $result=mysql_query($query) or die(' Failed! ' . mysql_error());   | ||
| + | |||
| + | /*   | ||
| + | while($data=mysql_fetch_array($result))  | ||
| + | {  | ||
| + |     echo $data['fname']."<br>".$data['sex']."<hr>";  | ||
| + | 	echo "1111";  | ||
| + | }*/  | ||
| + | // Выводим результаты в html  | ||
| + | echo "<table>\n";  | ||
| + | while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {  | ||
| + |     echo "\t<tr>\n";  | ||
| + |     foreach ($line as $col_value) {  | ||
| + |         echo "\t\t<td>$col_value</td>\n";  | ||
| + |     }  | ||
| + |     echo "\t</tr>\n";  | ||
| + | }  | ||
| + | echo "</table>\n";  | ||
| + | |||
| + | // Освобождаем память от результата  | ||
| + | mysql_free_result($result);  | ||
| + | // Закрываем соединение  | ||
| + | mysql_close($link);  | ||
| + | ?>  | ||
| + | </source>  | ||
== Классы построения графиков ==  | == Классы построения графиков ==  | ||
* Скачиваем класс    | * Скачиваем класс    | ||
| − | [http://  | + | * [http://www.pchart.net/download страница загрузки pChart]  | 
| − | + | * [http://www.pchart.net/release/pChart2.1.4.zip Прямая ссылка 1 pChart2.1.4.zip (19 January 2014)]  | |
| + | * [http://simhard.com/pub/ftp/pChart2.1.4.zip Прямая ссылка 2 pChart2.1.4.zip (19 January 2014)]  | ||
Очень часто при создании каких-нибудь сервисов приходится рисовать различные графики. Например, если Вы делаете рекламную сеть, то можно построить зависимости количества переходов по рекламным материалам по дням. Если это какой-нибудь Интернет-магазин, то можно строить графики доходов магазина. Как рисовать графики в PHP, я разберу ниже.  | Очень часто при создании каких-нибудь сервисов приходится рисовать различные графики. Например, если Вы делаете рекламную сеть, то можно построить зависимости количества переходов по рекламным материалам по дням. Если это какой-нибудь Интернет-магазин, то можно строить графики доходов магазина. Как рисовать графики в PHP, я разберу ниже.  | ||
| Строка 188: | Строка 242: | ||
Предлагаю Вашему вниманию пример:  | Предлагаю Вашему вниманию пример:  | ||
<source lang="php"><?php  | <source lang="php"><?php  | ||
| − | + |  /* CAT:Pie charts */    | |
| − | + | ||
| − | + |  /* pChart library inclusions */   | |
| − | + |  include("./pChart/class/pData.class.php");    | |
| − | + |  include("./pChart/class/pDraw.class.php");   | |
| − | + |  include("./pChart/class/pPie.class.php");    | |
| − | + |  include("./pChart/class/pImage.class.php");   | |
| − | + | ||
| − | + |  /* Create and populate the pData object */   | |
| − | + |  $MyData = new pData();      | |
| − | + |  $MyData->addPoints(array(40,30,20),"ScoreA");     | |
| − | + |  $MyData->setSerieDescription("ScoreA","Application A");   | |
| − | + | ||
| − | + |  /* Define the absissa serie */    | |
| − | + |  $MyData->addPoints(array("A","B","C"),"Labels");   | |
| − | + |  $MyData->setAbscissa("Labels");   | |
| − | + | ||
| − | + |  /* Create the pChart object */   | |
| − | + |  $myPicture = new pImage(700,230,$MyData,TRUE);   | |
| + | |||
| + |  /* Draw a solid background */   | ||
| + |  $Settings = array("R"=>173, "G"=>152, "B"=>217, "Dash"=>1, "DashR"=>193, "DashG"=>172, "DashB"=>237);    | ||
| + |  $myPicture->drawFilledRectangle(0,0,700,230,$Settings);   | ||
| + | |||
| + |  /* Draw a gradient overlay */   | ||
| + |  $Settings = array("StartR"=>209, "StartG"=>150, "StartB"=>231, "EndR"=>111, "EndG"=>3, "EndB"=>138, "Alpha"=>50);    | ||
| + |  $myPicture->drawGradientArea(0,0,700,230,DIRECTION_VERTICAL,$Settings);    | ||
| + |  $myPicture->drawGradientArea(0,0,700,20,DIRECTION_VERTICAL,array("StartR"=>0,"StartG"=>0,"StartB"=>0,"EndR"=>50,"EndG"=>50,"EndB"=>50,"Alpha"=>100));   | ||
| + | |||
| + |  /* Add a border to the picture */    | ||
| + |  $myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0));    | ||
| + | |||
| + |  /* Write the picture title */    | ||
| + |  $myPicture->setFontProperties(array("FontName"=>"./pChart/fonts/Silkscreen.ttf","FontSize"=>6));    | ||
| + |  $myPicture->drawText(10,13,"pPie - Draw 3D pie charts",array("R"=>255,"G"=>255,"B"=>255));    | ||
| + | |||
| + |  /* Set the default font properties */    | ||
| + |  $myPicture->setFontProperties(array("FontName"=>"./pChart/fonts/Forgotte.ttf","FontSize"=>10,"R"=>80,"G"=>80,"B"=>80));   | ||
| + | |||
| + |  /* Create the pPie object */    | ||
| + |  $PieChart = new pPie($myPicture,$MyData);    | ||
| + | |||
| + |  /* Define the slice color */    | ||
| + |  $PieChart->setSliceColor(0,array("R"=>143,"G"=>197,"B"=>0));   | ||
| + |  $PieChart->setSliceColor(1,array("R"=>97,"G"=>77,"B"=>63));    | ||
| + |  $PieChart->setSliceColor(2,array("R"=>97,"G"=>113,"B"=>63));    | ||
| + | |||
| + |  /* Draw a simple pie chart */    | ||
| + |  $PieChart->draw3DPie(120,125,array("SecondPass"=>FALSE));   | ||
| + | |||
| + |  /* Draw an AA pie chart */    | ||
| + |  $PieChart->draw3DPie(340,125,array("DrawLabels"=>TRUE,"Border"=>TRUE));   | ||
| + | |||
| + |  /* Enable shadow computing */    | ||
| + |  $myPicture->setShadow(TRUE,array("X"=>3,"Y"=>3,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10));    | ||
| + | |||
| + |  /* Draw a splitted pie chart */    | ||
| + |  $PieChart->draw3DPie(560,125,array("WriteValues"=>TRUE,"DataGapAngle"=>10,"DataGapRadius"=>6,"Border"=>TRUE));    | ||
| + | |||
| + |  /* Write the legend */    | ||
| + |  $myPicture->setFontProperties(array("FontName"=>"./pChart/fonts/pf_arma_five.ttf","FontSize"=>6));    | ||
| + |  $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>20));   | ||
| + |  $myPicture->drawText(120,200,"Single AA pass",array("DrawBox"=>TRUE,"BoxRounded"=>TRUE,"R"=>0,"G"=>0,"B"=>0,"Align"=>TEXT_ALIGN_TOPMIDDLE));   | ||
| + |  $myPicture->drawText(440,200,"Extended AA pass / Splitted",array("DrawBox"=>TRUE,"BoxRounded"=>TRUE,"R"=>0,"G"=>0,"B"=>0,"Align"=>TEXT_ALIGN_TOPMIDDLE));    | ||
| + | |||
| + |  /* Write the legend box */    | ||
| + |  $myPicture->setFontProperties(array("FontName"=>"./pChart/fonts/Silkscreen.ttf","FontSize"=>6,"R"=>255,"G"=>255,"B"=>255));   | ||
| + |  $PieChart->drawPieLegend(600,8,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));    | ||
| + | |||
| + |  $myPicture->autoOutput("l4.png");  | ||
| + | //ob_flush();  | ||
?></source>  | ?></source>  | ||
| − | В данном примере мы   | + | В данном примере мы круговую диаграмму распределения, а затем выводим этот график в браузер. Также можно сохранять график в файл.  | 
Возможностей у библиотеки масса, я лишь показал самые-самые базовые. Поэтому если Вам нужно построение графиков на сайте через PHP, то обязательно ознакомьтесь с документацией pChart.  | Возможностей у библиотеки масса, я лишь показал самые-самые базовые. Поэтому если Вам нужно построение графиков на сайте через PHP, то обязательно ознакомьтесь с документацией pChart.  | ||
| + | |||
| + | == Возможные ошибки и предупреждения сервера ==  | ||
| + | * Cannot modify header information  | ||
| + | |||
| + | * Ошибка «Невозможно изменить информацию заголовка» означает, что вы правили файлы (скорее всего, wp-config.php) вручную. И правили некорректно. Необходимо сохранять файлы в кодировке UTF-8 без метки BOM (byte order mark).   | ||
| + | |||
| + | Имя файла, приводящего к ошибке, и номер строки указаны в "output started at". Например:   | ||
| + | <source lang="text">Warning: Cannot modify header information - headers already sent by (output started at /home/user/site.ru/public_html/wp-config.php:1) in /home/user/site.ru/public_html/wp-includes/pluggable.php on line 934</source>  | ||
| + | * Означает, что проблему вызывает 1-я строка файла wp-config.php.   | ||
| + | * Убедитесь, что перед первой строкой '''<?php''' и после последней '''?>''' нет пустых строк.   | ||
| + | * Избегайте править файлы в Блокноте. Используйте «программистские» редакторы вроде PSpad, '''Notepad++''' и им подобные, в которых метка BOM отключается. В Notepad++ для этого нужно выбрать в меню «Кодировки» пункт «Преобразовать в UTF-8 без BOM».  | ||
| + | == PHP классы ==  | ||
| + | * [http://handynotes.ru/2010/09/40-must-have-php-classes.html Перечень классов на php на все случаи жизни]  | ||
Текущая версия на 20:36, 3 мая 2014
Содержание | 
Литература
Встроенные функции PHP
Подкючение к БД
<?php $db = "alldb"; $user = "student"; $pass = "studentpass"; $server = "93.125.42.8"; $link = mysql_connect($server, $user, $pass); // Функция подключения к базе данных в переменной link храниться результат подключения if(!$link) die("cann't connect Mysql"); // Проверка успешности подключения else echo "Connect to ".$db." successfull"; mysql_select_db($db) or die("cann't connect Mysql".mysql_error()); //.......... // Выполнение запросов и работа программы //.......... mysql_close($link); ?>
- Задете имя базы
 - Имя пользователя
 - Пароль
 - IP Сервера
 - mysql_connect подключение к базе и создание сессии подключения
 - Обязательно проверям статус выполения
 - mysql_select_db выбор базы данных для работы (аналог use имя_базы)
 - mysql_close($link); закрываем соединение (обязательно делать потому как число соединение обычно граничено для серверов)
 
Устновка кодировкmy sql_set_charset
Для версий (PHP 5 >= 5.2.3)
mysql_set_charset — Устанавливает кодировку клиента
Альтернативы для данной функции mysqli_character_set_name(). Добавлением charset в строку соединения, например charset=utf8. Описание :
- bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )
 
Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.
- Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
 - Данная функция требует MySQL версии 5.0.7 или выше.
 
 Это наиболее предпочитаемый способ для смены кодировки. Использование mysql_query() в этих целях (например SET NAMES utf8) не рекомендуется. Смотрите раздел  кодировка символов в MySQL для подробной информации и текущего соединения
<?php $db = "alldb"; $user = "student"; $pass = "studentpass"; $server = "93.125.42.8"; $link = mysql_connect($server, $user, $pass); if(!$link) die("cann't connect Mysql"); else echo "Connect to ".$db." successfull<br>"; mysql_select_db($db) or die("cann't connect Mysql<br>".mysql_error()); //........ mysql_set_charset(utf8); //.............. mysql_close($link); ?>
Выполение запросов
1) Вставка записей в базу данных
$query="INSERT INTO `таблицу` (`указываем поле`,`указываем поле`) VALUES ('любое значение','любое значение')"; $result=mysql_query($query); if($result==true) { echo "Успешно!"; } else { echo "Ошибка!<br>".mysql_error(); }
То есть вставка производится функцией INSERT. Если все прошло успешно, то mysql вернет результат true, или иначе — false.
Полей можно указывать хоть сколько, главное чтобы все они существовали в БД. То есть, к примеру существует таблица в которой есть поля «name» , «surname» и «city».
$query="INSERT INTO `users` (`name`,`surname`,`city`) VALUES ('Ruslan','Huzin','Kokshetau')"; $result=mysql_query($query); if($result==true) { echo "Успешно!"; } else { echo "Ошибка!<br>".mysql_error(); }
2) Удаление записей из базы данных
$query="DELETE FROM `users` WHERE `name`='Ruslan' "; $result=mysql_query($query); if($result==true) { echo "Успешно!"; } else { echo "Ошибка!<br>".mysql_error(); }
3) Изменение значений в базе данных
Также мы можем вносить изменения в уже существующие записи в таблице. К примеру нам надо заменить значение столбца name в строке, где столбец surname имеет значение Huzin.
$query="UPDATE `users` SET `name`='myname' WHERE `surname`='Huzin' "; $result=mysql_query($query); if($result==true) { echo "Успешно!"; } else { echo "Ошибка!<br>".mysql_error(); }
4) Получение значений из базы данных
Теперь самое интересное) Раз мы записали что-то, то ведь должны и получить обратно?)))
К примеру нам нужно достать из таблицы users всю строку где столбец name равен Ruslan.
Для этого нам потребуется чуть другой код, нежели в первых примерах.
$query="SELECT * FROM WHERE `name`='Ruslan' "; $result=mysql_query($query); if($result==true) { echo "Успешно!"; } else { echo "Ошибка!<br>".mysql_error(); } $data=mysql_fetch_array($result); /* Теперь в переменной хранятся данные из таблицы */
Тут нам потребовалась еще одна функция, для записи выбранных данных в переменную (массив) на php.
Для того что обратиться к выбранной строке, мы пишем так:
$data['имя столбца']
то есть, чтобы достать фамилию из выбранной строки (где имя было Ruslan), мы на вывод должны написать:
echo $data['surname'];
А при выборке из таблицы, писали SELECT *, эта звездочка означает что нужно выбрать все столбцы из строки.
Если нам надо, к примеру, выбрать только surname, пишем SELECT `surname`.
А для выборки сразу нескольких строк из таблицы, потребуется еще и цикл для их вывода. Это в том случае, если к примеру, строк со столбцом Ruslan будет несколько.
$query="SELECT * FROM WHERE `name`='Ruslan' "; $result=mysql_query($query); while($data=mysql_fetch_array($result)) { echo $data['name']."<br>".$data['surname']."<hr>"; }
Теперь на экран выведутся все строки у которых столбец name равен значению Ruslan.
Вывод значений на экран
- Выполняем запрос
 -  Помещаем результат в переменную !!! (учитывайте что результатом запроса должна быть разумная таблица не 
10ГБ к примеру )
 - Достаем построчно значения из переменной с помощью курсора mysql_fetch_array($result)
 - Выводим нужные поля из строки
 - Можно разделять поля используя html теги форматрирования
 
 ОБЯЗАТЕЛЬНО после использования очищаем переменную в которой хранился результат выполения запроса mysql_free_result($result);
<?php $db = "alldb"; $user = "student"; $pass = "studentpass"; $server = "93.125.42.8"; $link = mysql_connect($server, $user, $pass); if(!$link) die("cann't connect Mysql"); else echo "Connect to ".$db." successfull<br>"; mysql_select_db($db) or die("cann't connect Mysql<br>".mysql_error()); mysql_set_charset(utf8); $query="select * from vkdb where sex = '2' limit 10;"; $result=mysql_query($query) or die(' Failed! ' . mysql_error()); /* while($data=mysql_fetch_array($result)) { echo $data['fname']."<br>".$data['sex']."<hr>"; echo "1111"; }*/ // Выводим результаты в html echo "<table>\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n"; // Освобождаем память от результата mysql_free_result($result); // Закрываем соединение mysql_close($link); ?>
Классы построения графиков
- Скачиваем класс
 - страница загрузки pChart
 - Прямая ссылка 1 pChart2.1.4.zip (19 January 2014)
 - Прямая ссылка 2 pChart2.1.4.zip (19 January 2014)
 
Очень часто при создании каких-нибудь сервисов приходится рисовать различные графики. Например, если Вы делаете рекламную сеть, то можно построить зависимости количества переходов по рекламным материалам по дням. Если это какой-нибудь Интернет-магазин, то можно строить графики доходов магазина. Как рисовать графики в PHP, я разберу ниже.
Во-первых, можно всё делать самостоятельно, написав свою библиотеку. Здесь надо учитывать, что координаты в PHP идут на увеличение вправо и вниз, тогда как в математике они идут вправо и вверх. В остальном, ничего особо сложного.
Однако, если писать особо не хочется, то есть просто замечательнейшая библиотека, позволяющая строить самые разнообразные графики, диаграммы, гистограммы и прочее. Целая куча различных возможностей (подписывание осей, рисование нескольких графиков на одной оси, рисование порогов, отображение легенды и прочего) делают данную библиотеку по-настоящему универсальной.
Библиотека называется pChart: ознакомиться с документацией и скачать pChart.
<?php /* CAT:Pie charts */ /* pChart library inclusions */ include("./pChart/class/pData.class.php"); include("./pChart/class/pDraw.class.php"); include("./pChart/class/pPie.class.php"); include("./pChart/class/pImage.class.php"); /* Create and populate the pData object */ $MyData = new pData(); $MyData->addPoints(array(40,30,20),"ScoreA"); $MyData->setSerieDescription("ScoreA","Application A"); /* Define the absissa serie */ $MyData->addPoints(array("A","B","C"),"Labels"); $MyData->setAbscissa("Labels"); /* Create the pChart object */ $myPicture = new pImage(700,230,$MyData,TRUE); /* Draw a solid background */ $Settings = array("R"=>173, "G"=>152, "B"=>217, "Dash"=>1, "DashR"=>193, "DashG"=>172, "DashB"=>237); $myPicture->drawFilledRectangle(0,0,700,230,$Settings); /* Draw a gradient overlay */ $Settings = array("StartR"=>209, "StartG"=>150, "StartB"=>231, "EndR"=>111, "EndG"=>3, "EndB"=>138, "Alpha"=>50); $myPicture->drawGradientArea(0,0,700,230,DIRECTION_VERTICAL,$Settings); $myPicture->drawGradientArea(0,0,700,20,DIRECTION_VERTICAL,array("StartR"=>0,"StartG"=>0,"StartB"=>0,"EndR"=>50,"EndG"=>50,"EndB"=>50,"Alpha"=>100)); /* Add a border to the picture */ $myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0)); /* Write the picture title */ $myPicture->setFontProperties(array("FontName"=>"./pChart/fonts/Silkscreen.ttf","FontSize"=>6)); $myPicture->drawText(10,13,"pPie - Draw 3D pie charts",array("R"=>255,"G"=>255,"B"=>255)); /* Set the default font properties */ $myPicture->setFontProperties(array("FontName"=>"./pChart/fonts/Forgotte.ttf","FontSize"=>10,"R"=>80,"G"=>80,"B"=>80)); /* Create the pPie object */ $PieChart = new pPie($myPicture,$MyData); /* Define the slice color */ $PieChart->setSliceColor(0,array("R"=>143,"G"=>197,"B"=>0)); $PieChart->setSliceColor(1,array("R"=>97,"G"=>77,"B"=>63)); $PieChart->setSliceColor(2,array("R"=>97,"G"=>113,"B"=>63)); /* Draw a simple pie chart */ $PieChart->draw3DPie(120,125,array("SecondPass"=>FALSE)); /* Draw an AA pie chart */ $PieChart->draw3DPie(340,125,array("DrawLabels"=>TRUE,"Border"=>TRUE)); /* Enable shadow computing */ $myPicture->setShadow(TRUE,array("X"=>3,"Y"=>3,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10)); /* Draw a splitted pie chart */ $PieChart->draw3DPie(560,125,array("WriteValues"=>TRUE,"DataGapAngle"=>10,"DataGapRadius"=>6,"Border"=>TRUE)); /* Write the legend */ $myPicture->setFontProperties(array("FontName"=>"./pChart/fonts/pf_arma_five.ttf","FontSize"=>6)); $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>20)); $myPicture->drawText(120,200,"Single AA pass",array("DrawBox"=>TRUE,"BoxRounded"=>TRUE,"R"=>0,"G"=>0,"B"=>0,"Align"=>TEXT_ALIGN_TOPMIDDLE)); $myPicture->drawText(440,200,"Extended AA pass / Splitted",array("DrawBox"=>TRUE,"BoxRounded"=>TRUE,"R"=>0,"G"=>0,"B"=>0,"Align"=>TEXT_ALIGN_TOPMIDDLE)); /* Write the legend box */ $myPicture->setFontProperties(array("FontName"=>"./pChart/fonts/Silkscreen.ttf","FontSize"=>6,"R"=>255,"G"=>255,"B"=>255)); $PieChart->drawPieLegend(600,8,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL)); $myPicture->autoOutput("l4.png"); //ob_flush(); ?>
В данном примере мы круговую диаграмму распределения, а затем выводим этот график в браузер. Также можно сохранять график в файл.
Возможностей у библиотеки масса, я лишь показал самые-самые базовые. Поэтому если Вам нужно построение графиков на сайте через PHP, то обязательно ознакомьтесь с документацией pChart.
Возможные ошибки и предупреждения сервера
- Cannot modify header information
 
- Ошибка «Невозможно изменить информацию заголовка» означает, что вы правили файлы (скорее всего, wp-config.php) вручную. И правили некорректно. Необходимо сохранять файлы в кодировке UTF-8 без метки BOM (byte order mark).
 
Warning: Cannot modify header information - headers already sent by (output started at /home/user/site.ru/public_html/wp-config.php:1) in /home/user/site.ru/public_html/wp-includes/pluggable.php on line 934
- Означает, что проблему вызывает 1-я строка файла wp-config.php.
 - Убедитесь, что перед первой строкой <?php и после последней ?> нет пустых строк.
 - Избегайте править файлы в Блокноте. Используйте «программистские» редакторы вроде PSpad, Notepad++ и им подобные, в которых метка BOM отключается. В Notepad++ для этого нужно выбрать в меню «Кодировки» пункт «Преобразовать в UTF-8 без BOM».