К основному контенту

Создание таблиц PHP и MySQL 02

существуют базы данных в которых могут храниться различное количество таблиц.

покажу на примере
нам нужно создать:
1) базу данных
2) таблицу

создаем gamelist это просто.
затем создаем таблицу products в моем примере 5 полей.
и настраиваем параметры каждого поля.
выбирайте тип таблицы обязательно тип MyISAM. иначе будут проблемы с кодировкой.

id     тип:int                                             auto_increment   первичный

title  тип:varchar   длинна:100   по_умолчанию:Untitled
body   тип:text    
price  тип:decimal   длинна:8,2   по_умолчанию:0.00
image  тип:varchar   длинна:50    по_умолчанию:nophoto.jpg


price: это десятичное значение максимум 8 цифр, включая две цифры после точки. 999999.99
в запросе выглядит так:

CREATE TABLE `gamelist`.`products` (
`id`
INT NOT NULL AUTO_INCREMENT ,
`title`
VARCHAR( 100 ) NOT NULL DEFAULT 'Untitled',
`body`
TEXT NOT NULL ,
`price`
DECIMAL( 8, 2 ) NOT NULL DEFAULT '0.00',
`
image` VARCHAR( 50 ) NOT NULL DEFAULT 'nophoto.jpg',
PRIMARY KEY ( `id` )
) ENGINE
= InnoDB



создаем пользователя leighmac базы данных. myadmin >home>privileges> add new user Host: Localhost password:1 выбрать все. и нажать создать. в запросе это так:


CREATE USER 'leighmac'@'localhost' IDENTIFIED BY '*';

GRANT ALL PRIVILEGES ON * . * TO 'leighmac'@'localhost' IDENTIFIED BY '*' WITH
GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0
MAX_UPDATES_PER_HOUR
0 MAX_USER_CONNECTIONS 0 ;

создаем папку \gamelist\
создаем файл \gamelist\db_fns.php. В файле db_fns.php добавить строчки:


/* db_fns.php
* connects to database server and selects database
* @return bool
*/


function db_connect()
{
$connection = mysql_pconnect (localhost, leighmac, 'password');
if (!$connection)
{
return false;
}

if (!mysql_select_db('gamelist'))
{
return false;
}
return $connection;
}


/*
if (db_connect())
{
echo 'connect and select';
}
*/


кстати
некоторые серверы не понимают записи вида <? ?> будьте внимательны лучше писать так: <?php ?>

добавим две записи через myadmin.

если вы используете wampserver нужно подконфигурировать, чтобы все по умолчанию было для русской кодировки.
кодировка cp1251_general_ci  тип MyISAM.

настройка MySQL в файле my.cnf


[mysqld] в любое её место и будь счастлив.


default-character-set=cp1251
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake

default-storage-engine=MYISAM

добавим теперь функции поиска и вывода данных из таблицы  в том же файле функций sql.


/*******
* возврат массива заголовков
******
*/
function db_result_to_array($result)
{
$res_array = array();
for ($count=0;$row=mysql_fetch_array($result);$count++)
{
$res_array[$count]=$row;

}

return $res_array;
}


/*
поиск по маске в продукции
*/

function finde_products()
{
db_connect();
$query="SELECT * FROM products order by products.id DESC";
$result=mysql_query($query);

$result = db_result_to_array($result);

return $result;
}


можно проверить эти функции выводом заголовков


$products=finde_products();
foreach ($products as $product){
echo $product['title'].'</br>';
}

теперь можно добавить похожую функцию поиска продукта по ID
заметьте mysql_real_escape_string($id)); функция Экранирует специальные символы в строке. защищая.


/**
* поиск одного продукта
* @return $row
*/
function find_product($id)
{
db_connect();
$query=sprintf("SELECT * FROM products WHERE products.id = '%s'",
mysql_real_escape_string($id));
$result=mysql_query($query);
$row = mysql_fetch_array($result);

return $row;
}

и проверить


$product=find_product(3);
echo $product['title'].'</br>';

а вот такая вставка бывает полезна выявить ошибки:


if (!$result)
echo mysql_error();

Комментарии

Отправить комментарий

Популярные сообщения из этого блога

Русская кодировка ASCII, ANSI и UTF-8, windows-1251 (CR, LF, CR LF)

Что нужно знать: Encoding – это кодировка для вывода данных (UTF-8, windows-1251) Line Endings – формат строк (CR, LF, CR LF) Byte Order Marker (BOM) – системная область в начале файла. LF – используется в UNIX вместе с кодировками UTF-8 или windows-1251 CR – используется в MAC системах. на сервере лучше использовать кодировку ANSI это и есть кириллица (Windows), символ занимает 1 байт (оптимизированный ASCII) UTF-8 может содержать заголовок BOM который содержит системную информацию, символ занимает 2 байта wysiwyg редакторы добавляют метатег в html страницы с кодировкой кирилицы. это не очень хорошо, если сервер настроен на UTF-8, в этой кодировке корректно работают некоторые библиотеки приложения и прочие

Как узнать время включения/выключения компьютера.

Способов масса, одни из них: в журнале событий windows  выбрать eventlog, теперь в таблице легко найти события с кодами: 6005 - событие остановки eventlog - компьютер выключился 6006 - событие запуска eventlog - компьютер включился обычно эта служба запускается и остонавли во время включения/выключения компьютера, и пишет в журнале событий системы код события и время.

Сделать свой Трекер

Что надо для того что-бы установить и поддерживать трекер на базе TBdev в рабочем состоянии:    1. Веб-сервер с поддержкой PHP (например Apache или LightTPD).    2. PHP версии 5.1.1 или выше.    3. Сервер базы данных mySQL версии 4.1 или выше, лучше 5.0.    4. Любая оболочка для работы с СУБД mySQL (например phpMyAdmin 2.9.2 или EMS SQL Manager 2007 Pro for mySQL. Так-же важными компонентами являются:    1. Прямые руки v1.0    2. Базовое знание английского языка.    3. Понимание принципа "Понимание ошибки - половина ее решения". Рабочее окружение в котором трекер разрабатывается (поможет создать похожее на вашем хостинге и улучшить работу трекера) и работает лучше всего:    1. Веб-сервер LightTPD 1.4.16 скомпилированный под ОС Windows.    2. PHP 5.2.1 скомпилированный в режиме Fast-CGI.    3. Сервер базы данных mySQL версии 4.1.16.