
Здравствуй, форум. Задумала я написать интернет-магазин и дошла до табличек БД.
Надо мне с помощью PHP и SQL создать таблицу товара и её обрабатывать. У меня овощи, поэтому в базе будет наименование, цена, вес, есть ли товар в наличии и т.д. Посоветовали мне взять базу SQLite, почему бы и нет. Вроде чаще для сайтов на PHP таблицы в БД Mysql делают, но мне ничего сложного не требуется да и база будет маленькая.
А вопросов парочка.
- Почему вот тут выдаётся синтаксическая ошибка на второй строке?
/* Создать таблицу */
CREATE TABLE Ovoshi
(
sys_id counter primary key,
fName varchar(100),
fCode varchar(20),
fDescription varchar(300),
fPrice money,
fKg float,
fData varchar(10)
)
/* Показать */
CREATE VIEW view_ovoshi as
select tab_0.sys_id as sys_id,
tab_0.fName as fName,
tab_0.fCode as fCode,
tab_0.fDescription as fDescription,
tab_0.fPrice as fPrice,
tab_0.fKg as fKg,
tab_0.fData as fData from Ovoshi tab_0 where (1=1)
/* Отбор записей */
SELECT sys_id,
fName,
fCode,
fDescription,
fPrice,
fKg,
fData from view_ovoshi
/* Вставить запись */
INSERT into Ovoshi
(
fName,
fCode,
fDescription,
fPrice,
fKg,
fData
)
values (
'',
'',
'',
0,
0,
''
)
/* Записать новое */
UPDATE Ovoshi set
fName='',
fCode='',
fDescription='',
fPrice=0,
fKg=0,
fData='' where sys_id=0
/* Стереть */
DELETE from Ovoshi where sys_id=0
Вопрос 2. Дальше я на PHP создаю базу данных и таблицу туда вешаю. Нормально? Или можно проще как-то с циклами сделать?
<?php
if ($db=sqlite_open('dbtest',0666,$sqliteerror)) {}
else die($sqliteerror);
$sys_Action = $_GET["sys_Action"];
if ($sys_Action=="create") {
$sql="create table Ovoshi (";
$sql .= " id integer primary key";
$sql .= " ,fName text";
$sql .= " ,fCode text";
$sql .= " ,fDescription text";
$sql .= " ,fPrice real";
$sql .= " ,fKg real";
$sql .= " ,fData text";
$sql .= ")";
sqlite_query($db,$sql);
echo "Таблица создана.";
};
if ($sys_Action=="drop") {
$sql="drop table Ovoshi";
sqlite_query($db,$sql);
echo "Таблица стёрта.";
};
if ($sys_Action=="delete") {
$sql="delete from Ovoshi";
sqlite_query($db,$sql);
echo "Все записи стёрты.";
};
if ($sys_Action=="export") {
echo "id";
echo ";fName";
echo ";fCode";
echo ";fDescription";
echo ";fPrice";
echo ";fKg";
echo ";fData";
echo "<br>";
$sql="select * from view_ovoshi ";
$sql .= " where (1=1) ";
$result=sqlite_query($db,$sql);
while ($row=sqlite_fetch_array($result))
{
echo $row['id'];
echo ';',$row['fName'];
echo ';',$row['fCode'];
echo ';',$row['fDescription'];
echo ';',$row['fPrice'];
echo ';',$row['fKg'];
echo ';',$row['fData'];
echo "<br>";
}
echo "Выгрузили всё в таблицу.";
};
if ($sys_Action=="createview") {
$sql="create view view_Vegetables as";
$sql .= " select tab_0.id as id ";
$sql .= " ,tab_0.fName as fName";
$sql .= " ,tab_0.fCode as fCode";
$sql .= " ,tab_0.fDescription as fDescription";
$sql .= " ,tab_0.fPrice as fPrice";
$sql .= " ,tab_0.fKg as fKg";
$sql .= " ,tab_0.fData as fData";
$sql .= " from Ovoshi tab_0";
$sql .= " where (1=1)";
sqlite_query($db,$sql);
echo "Показали таблицу.";
};
if ($sys_Action=="dropview") {
$sql="drop view Ovoshi";
sqlite_query($db,$sql);
echo "Стёрли вид таблицы.";
};
sqlite_close($db);
?>
И последнее. Как мне в части PHP удалить строку из таблицы sql или переставить местами, но чтобы только одну. Я тогда сделаю пункт управления, где буду вставлять и стирать нужные поля, когда надо. К примеру, понадобится стереть из готовой таблицы пункт “Дата” и вставить пункт “В наличии” (да/нет).



