Bloglar | MySQL(i), PDO bo'yicha | MYSQL Malumotlar bazasi.
MYSQL MALUOTLAR BAZASI Mysql – bu jadvallardan tashkil topgan ma`lumotlar bazasi. Soddaroq qilib aytganda MYSQL-bu uy, jadvallar esa bu uydagi xonalar. Mysql ni uy ko`rinishda tasvirlasa tushunish oson boladi shuning uchun shu yolda davom etamiz. Mysql da siz jadvallarga xar hil hajm berishingiz mumkin. Xuddi uydagi xonalar kabi. Xar bir jadval ustun va satrlardan iborat bo`ladi. Masalan: Bizga o`quvchilarni ism va familiya yoziladigan jadval kerak. Uning uchun biz oldin Ism va familiya nomi bilan 2 ta ustun tuzamiz va o`quvchilarni ism,familiyasini yangi satrga qo`shib boraveramiz Ism Familiya Shavkat Ibrohimov Sunnat Saydullayev Tohir Sodiqov Ma`lum bir bazaga jadval qo`shish uchun Create table `jadvalnomi`( Jadval elementlari(maydon) ) Oddiy misol. Yuqoridagi o`quvchilar jadvalini tuzamiz. Jadvalga esa `list` deb nom beramiz: CREATE TABLE `list` ( `id` int(5) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `familiya` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Endi shu sorovni chochib chiqamiz: `list` jadvalini tuzamiz( `id` - maydoni uzunligi max 5 ta simvoldan iborat va identifikator avtomatik qo`yilish hususiyatiga ega maydon. Not Null esa u bo`sh emasligini bildiradi. Int() – faqat son degani. Ya`ni id maydoni max 5 ta simvoldan iborat va faqat son ko`rinishidagi ma`lumotni qabul qila oladi. Auto_increment – bu jadvalga yangi bir ma`lumot qo`shilganda shu ma`lumotga id maydoni avtomatik tarza ketma ketlik bo`yicha yangi identifikator beradi. `name` - maydoni max 100 ta simvolga ega bolgan xam son xam harf aralashmasidan iborat bolgan maydon u ham bo`sh emas. Varchar() bu lyuboy ma`lumotni qabul qiladi faqat () lar ichidagi simvollar sonidan oshmasligi kerak `familiya` - huddi name dek. PRIMARY KEY(`id`) – bu Jadvalni asosiy kaliti `id` maydoni ekanligi va faqat u auto incrementni qo`llashi mumkinligi haqida. Agar qaysi maydon auto_increment ni qo`llasa usha maydon primary key bo`lishi lozim. ENGINE=MyISAM DEFAULT CHARSET=utf8 - Bu yerda Engine – bu bazani sozlamasi desaham boladi, U MyIsam qiymatga ega. Normal jadvalda shunday bo`ladi. DEFAULT CHARSET bu jadval kodirovkasi va u utf8 bilan belgilangan. Xo`sh jadval ham tuzildi. Endi unga ma`lumot yozish lozim. Tasavvur qiling sinfga yangi o`quvchi keldi va siz uni shu jadvalga kiritib qo`ymoqchisiz. Buning uchun sql da Insert into `jadvalnomi` set `maydon`=`qiymat`,`maydon`=`qiymat` …. ; Ko`rinishida bo`ladi. Sinfga Rustamov Azamat keldi deb uni jadvalga qo`shamiz: insert into `list` set `name` = 'Azamat', `familiya` = 'Rustamov'; Kodni tahlil qilsak: `list` jadvaliga qo`shamiz `name`(maydoniga) =’Azamat’, `familiya`(maydoniga)=’Rustamov’; Har bir buyruq tugagandan so`ng “;” belgisi qo`yish sedan chiqmasin. Maydonlarga qiymat berishda orada “,” ni ishlating xuddi yuqodiragidek: `name` = 'Azamat' , `familiya` = 'Rustamov'; Endi list jadvalida bizda yangi malumot qo`shildi. Endi Shu Azamat sinfdan ketdi uni bazadan o`cherish kerak. Buning uchun: Delete from `jadvalnomi` where `maydon`=’qiymat’; Azamatni o`cherish kodi quyidagicha bo`ladi: Delete from `list` where `name`= 'Azamat' and `familiya` = 'Rustamov' limit 1; Ya`ni: Siz jadvalga quyidagi tarzda so`rov yuborayapsiz: `list` jadvalidan `name` = ‘Azamat’ va `familiya` = ‘Rustamov’ qiymatga ega bolgan maydonni o`chirib tashla faqat 1 tasini; limit – bu chegara degani. 38 sekunt dan so'ng yozdi: Endi sinfdagi Sodiqov Abror nomli o`quvchini ismi Asqar ga o`zgardi siz jadvaldagi ma`lumotni ham o`zgartirishingiz kerak bo`lsa u holda quyidagi operatordan foydalanasiz: Update `jadvalnomi` set `maydon`=’qiymat’ , `maydon`= ’qiymat’ … where `maydon`=’qiymat’; Ko`rinishda boladi: Update `list` set `name` = 'Asqar',`familiya`='Sodiqov' where `name` = 'Abror' and `familiya`='Sodiqov' limit 1; Ya`ni: `list` jadvalida `name` = ‘Abror` va `familiya` = ‘Sodiqov’ qiymayiga ega bolgan maydonni yangila va unga ‘name` = ‘Asqar` va `familiya` = ‘Sodiqov’ qiymatini belgila Ko`rinishida buyruq berdingiz. Eng kerakligi: Biror jadvalda qandaydir qiymatga ega bolgan maydonni tanlashda select operatoridan foydalaniladi, * belgisi sedan chiqmasin: Select * from `jadvalnomi` where `maydon`=’qiymat’; Masalan `list` jadvalidan Asqar nomi o`quvchini tanlashda : Select * from `list` where `name` = ‘Asqar’ limit 1; Bu Asqar nomli oquvchini bazadan faqat 1 tasini chiqarib beradi. Hammasini chiqarish uchun limit 1 sozini olib tashlash kifoya : Select * from `list` where `name` = ‘Asqar’; Xullas wapda dasturlash uchun mysql haqida shu ma`lumotlarni o`zi yetarli deb oylayman chunki bu fundament qolganiga esa o`zingiz harakat qiling aks holda dangasa bo`lib qolasiz. PHP VA MYSQL PHP da mysql ni o`rni beqiyosdir chunki katta hajmdagi m`alumotlarni saqlash va taxrirlash uchun mysql ayni muddao. Endi ishni boshlaymiz. 1-Qoida – php script mysql baza bilan ishlayotganda u doim mysql bilan ulangan bo`lishi kerak. Php skriptni mysql bazaga bog`lash uchun:
Php skriptingiz baza bilan doim ulanib ish qilishi uchun shu kodlarni alohinda db.php fayliga saqlang baza bilan birga ishlaydingan skriptningiz fayllariga include() qilib chiqing yani faylni qo`shing. Baza bilan ishlashda eng kerakli operator bu mysql_query(); dir. Tarjimasi mysql_sorov boladi. Oddiy sorov `list` jadvalidan barcha malumotlarni chiqarish tanlash uchun: $sql = mysql_query(“select * from `list`”); Endi shu jadvalda ma`lumotlar bormi shuni tekshirish uchun mysql_num_rows() ishlatiladi bu operator sql sorovda bajarilgan sorovni nechtaligini sanaydi; $num = mysql_num_rows($sql); Ya`ni yuqoridagi sql sorovni raqamlab sanaydi Agar $num 0 dan katta bolsa malumot bor aks xolda jadval bo`sh bo`ladi. Jadvalda ma`lum bir qiymatga ega bolgan ma`lumotlarni sanashda mysql_result() ishlatiladi. $result = mysql_result(mysql_query(“select count(*) from `list`”),0); Endi asosiy ishga o`tamiz. 5 minut dan so'ng yozdi: CREATE TABLE `list` ( `id` int(5) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `familiya` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Jadvalini tuzamiz. Va bu jadvalga 3 – 4 ta ma`lumot qo`shamiz. Siz buni qanday qilishni bilasiz. Yuqorida yozilgan; Xullas ma`lumotlarni ekranga chiqarish kerak: Sorov bajarilgandan song natijani barchasini ekranga chiqarish uchun mysql_fetch_array() operatori sikl ostida ishlatiladi. Masalan $sql = mysql_query(“select * from `list`”); while($fetch=mysql_fetch_array($sql)){ echo $fetch[‘name’].’|’.$fetch[‘familiya’].’<br/>.’; } Bu yerda `list` jadvalidan barcha ma`lumotlarni tanladik va undagi maydonlarni massivlarga aylantirib barchasini ekranga chiqaridik Nomi|Familiya ko`rinishida. Formadan kiritilgan ma`lumotni jadvalga yozish: Buning uchun bizga bitta id va bitta text nomli jadval kerak bo`ladi, id da auto_increment xususiyati yoqilgan bo`lishi shart. Bu jadvalni o`zingiz tuzing!!! Bu unchalik qiyin emas, lekin bir narsani yodda tutish kerakki bazaga ma`lumot yozayotganda uni maxsus mysql_real_escape_string() funksiyasida ma`lumotni filtrlash lozim va shundagina ma`lumot bazaga havfsiz ko`rinishda yoziladi, va yana bir narsa bazadan ma`lumotni chiqarayotgan paytda shu matnni ya`ni ma`lumot matnini htmlspecialchars() yordamida filtrlar so`ngra ekranga chiqarish lozim, xar ehtimolga qarshi Xo`sh endi ishni boshladik. Birinchi bo`lib index.php fayliga formani tuzib olamiz.
Yuqoridagi komentariy bo`yicha yozilganda biz index.php da kiritilgan formadagi ma`lumotlarni yoz.php fayliga uzatamiz va uni filtrla
Ma'lumotlar
Yaratilgan vaqt: 30 Jan 2019, 13:22
Muallif: @Facebook (7)
Raxmat aytishgan: 0 kishi
Fikrlar: 0 ta
Ko'rilgan: 12 marta
Shikoyatim bor
Blog bilan bo'lishish
www.uzmasters.ru Onlayn 211 (0/211)
www.uzmasters.ru Forumga a'zo bo'lish
www.uzmasters.ru Forumdan qidirish
www.uzmasters.ru Bosh sahifa
Яндекс.Метрика UzMasterS.Ru