Web-беттің дерекқормен байланысы
Instagram-дағы жаңа хабарлама лентасы HTML файлында жазылмаған — ол ДЕРЕКТЕР ҚОРЫНАН нақты уақытта алынып, содан кейін бетке «құйылады». Дәл осы «құю» процесін PHP тілі жасайды. Бүгін V бөлімнің қорытынды практикалық сабағы — веб-беттің деректер қорымен нақты байланысын құрамыз.
Деректер қоры бар web-бет — ДҚ-мен ДИНАМИКАЛЫҚ байланысты қолдайтын, мәліметтерді қарауға, өңдеуге және базаға енгізуге мүмкіндік беретін диалогтық бет.
HTML-мен қатар веб-бетті деректер қорымен байланыстыру үшін программалау тілі қажет — мысалы, PHP. PHP скрипттері жергілікті сервер (мыс. Apache) болмаса іске аспайды — сондықтан OpenServer жинағы (Apache + PHP + MySQL) қолданылады.
1. MySQL серверіне қосылу.
2. Деректер қорын таңдау.
3. Сұранысты ұйымдастыру (қосу, өшіру, өзгерту, іздеу).
4. Сұраныс нәтижесін алу.
5. Деректер қорынан ажырау.
Берілді: kaz_mus_instruments ДҚ-ның producers кестесіндегі барлық жазба.
<?php
$conn = mysqli_connect("localhost", "root", "");
if (!$conn) {
die('Did not connect: ' . mysqli_error());
}
mysqli_select_db($conn, "kaz_mus_instruments");
mysqli_query($conn, "SET NAMES utf8");
$result = mysqli_query($conn, "SELECT * FROM producers");
while ($row = mysqli_fetch_array($result)) {
echo $row['id_producers'] . ". " . $row['name'];
echo "<br />";
}
mysqli_close($conn);
?> | Код бөлігі | Қызметі |
|---|---|
<?php ... ?> | HTML ішінде PHP кодының басы мен соңы |
mysqli_connect(...) | Серверге қосылу (хост, пайдаланушы, пароль) |
if (!$conn) die(...) | Қосылым сәтсіз болса, тоқтату |
mysqli_select_db(...) | Қай деректер қорын пайдалану керегін көрсету |
while ($row = mysqli_fetch_array(...)) | Қайтарылған жазбаларды БІРІНЕН СОҢ БІРІН өту |
mysqli_close($conn) | Байланысты жабу |
Барлық PHP айнымалы $ таңбасынан басталады. SET NAMES utf8 — кодтауды UTF-8 етіп орнатады, кириллица (қазақ, орыс) әріптерінің дұрыс көрінуі үшін қажет.
Кейде код жұмыс істемей қалады — себебін табу да маңызды дағды. Үш ұқсас код фрагментін қарастырайық.
A нұсқасы: mysqli_select_db("kaz_mus_instruments", $conn) — параметрлер РЕТІ ТЕРІС! Дұрысы: бірінші аргумент әрдайым $conn байланысы болуы керек.
Неге қате шығады? Функция дұрыс жұмыс істемей, $result мәні false болады, сол себепті mysqli_fetch_array() шақырғанда «expects parameter 1 to be resource, boolean given» деген қате шығады.
B нұсқасы: барлығы ДҰРЫС жазылған — барлық өндіруші аты мен мекенжайы шығады.
C нұсқасы: сұраныс ТЕК name өрісін таңдайды (SELECT name FROM producers), бірақ echo жолында id_producers мен address өрістерін де шығаруға тырысады.
Жауабы: C нұсқасында нәтижеде ЖОҚ өрістер сұралғандықтан, олардың орны бос немесе қате шығады — параметр реті мен сұралатын өрістер сұраныспен ДӘЛ сәйкес болуы керек.
mysql_* функциялары (мыс. mysql_connect()) қазіргі PHP нұсқаларынан толығымен алынып тасталған — тек заманауи mysqli_* баламасын қолдану керек.- Динамикалық веб-бет — ДҚ-мен байланысатын, деректі нақты уақытта көрсететін бет.
- PHP-ДҚ байланысы: қосылу → таңдау → сұраныс → нәтиже алу → ажырау.
- mysqli_connect, mysqli_select_db, mysqli_query, mysqli_fetch_array, mysqli_close — негізгі функциялар.
- Параметр реті мен сұралатын өрістер сұраныспен дәл сәйкес болуы шарт.