существуют базы данных в которых могут храниться различное количество таблиц.
покажу на примере
нам нужно создать:
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
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();
я был здесь :)
ОтветитьУдалить