Хvснэгт бvтээх


Нэгэнт датабэйс бvтээгдсэний дараагаар дотор нь хэдэн ч хvснэгт нээж болно. Хvснэгт бvр нь багана мєр ашиглаж мэдээллээ хадгална.

мєр = rows, record
багана = column, field

Хvснэгт бvтээх болон бусад mySQL командуудыг гvйцэтгэхэд зарим тохиолдолд SQL командыг хэрэглэх шаардлага гардаг.

mysql_db_query():
$Query = "SQL формат дээр бичигдсэн тэкст энд бичигдэнэ";
mysql_db_query("$Database_name", $Query, $Link);


Тэгэхээр энэ Query гэж юу вэ? Товчхондоо бол Query бол команд эсвэл хvсэлт гэсэн vг ба датабэйс сэрвэрт юу хийхийг нь тушаадаг.

Хvснэгт бvтээхэд:

$Query = "CREATE table TABLENAME (column1, column2, etc.)";

гэж байна. Багануудыг хооронд нь таслалаар салгах ба эхлээд баганын нэр, дараа нь тєрлийг нь зааж єгнє. Хамгийн тvгээмэл тєрєл бол TEXT буюу vг єгvvлбэрээс тогтсон дата ба INT буюу тооноос бvтсэн дата юм.

Хамгийн эхний баганыг ихэвчлэн тvлхvvр багана (primary key) болгодог. Ингэснээр дараачийн мєрнvvдээс дата (мэдээлэл) олоход хялбар болно.

$Query = "CREATE table TABLENAME (id INT PRIMARY KEY, information TEXT)";

Ямарч хvснэгтэд цорын ганц тvлхvvр багана байна. 2 байж болохгvй. Тvлхvvр баганын мєр бvрийг нэг нэгээр нэмэгдэх байдлаар хийдэг. Тиймээс эхний мєрийн тvлхvvр баганын нэр нь 1 ба 2 дах мєрнийх 2 гэх мэтчилэн vргэлжилнэ. Хэрвээ 7 дах мєрний мэдээллийг гаргах болбол тvлхvvр баганаас 7-р мєрийг олоод тvvнээс хойших бvх баганаас мэдээллийг нь гаргаж авна. Иймээс их хэмжээний мэдээллийн дотроос хvссэн хэдхэн хуудас мэдээллээ ганц тоогоор дамжуулан хурдан олж авдаг.

Жишээ болгоод нэгэн хvснэгт бvтээе.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>{ Датабэйс бvтээх тухай }</title>
<link rel="stylesheet" href="../../dw/dw.css" type="text/css">
</head>
<body>

<?php
$Host = "localhost";
$User = "";
$Password = "";
$Database_name = "new_database";
$Table_name = "feedback";

$Link = mysql_connect ($Host, $User, $Password);
$Query = "CREATE table $Table_name (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT, email_address TEXT, comments TEXT)";
if (mysql_db_query($database_name, $Query, $link)) {
print ("Хvсэлтийг гvйцэтгэв<br>\n"); } else {
print ("Хvсэлтийг биелvvлэх боломжгvй!<br>\n");
}
mysql_close($Link);
?>

</body>
</html>

Дээрх РНР кодыг задлаж vзье.

           id INT UNSIGNED гэдэг нь эхний баганыг тvлхvvр багана бєгєєд зєвхєн нэмэх тоог утга болгон авна гэсэн vг.

NOT NULL гэдэг нь нь тухайн баганын мєр бvхэнд утга харгалзах ёстой гэсэн vг. Зарим хvмvvс NULL гэдгийг хоосон буюу утга агуулдаггvй учраас 0-тэй адил гэж ойлгодог. Yнэндээ NULL бол 0 ч биш, юу ч биш. 0 бол єєрєє утга байж болно. NULL утга байж чадахгvй. -1, 0, 3 бол 3 тоо. Тэгэхээр 0 бол -1 ба +1-н хооронд орших нэгэн бодит тоо мєн. Харин NULL бол англи хэлний NOTHING гэсэн vгтэй утга адил.

Мєр бvр нь нэгээр нэмэгдэнэ гэдгийг AUTO_INCREMENT зааж байна. Эцэст нь улиг болоод байгаа тvлхvvр багана гэдгийг нь PRIMARY KEY нотолж байна. Дараагийх нь баганаас эхлээд бид нар баганын нэр ба тєрлийг нь first_name TEXT гэх мэтээр vргэлжлvvлээд  

mysql_close($Link); командаар датабэйсийг хааж байна.
Дараачийн хэсгээс дээр бvтээсэн кодоо хэрхэн ажиллахыг туршиж vзье.