PHP-ի դասեր - Դաս 3.4 - Աշխատանք MySQL տվյալների բազայի հետ։ DELETE հարցումներ ջնջման համար։
Նախորդ դասում մենք պարզեցինք՝ ինչպես ավելացնել նոր մեթոդներ մեր կառավարման դասին՝ simpleCMS, հիմա եկեք ավելացնենք ևս մեկ մեթոդ՝ գրառման ջնջման համար՝ delete():
Մեթոդը ավելացնում ենք սովորականի պես.
public function delete($mid){ }
Ինչպես տեսնում եք, մենք փոխանցում ենք $mid պարամետրը՝ մեր գրառման id-ն։ Եթե հիշում եք նախորդ դասը, մենք որոշեցինք օգտագործել պարամետրերի փոխանցման այլ մեթոդ՝ ուղղակիորեն GET-հարցումով, իսկ հիմա կփորձենք փոխանցել պարամետրը այլ եղանակով։
Այսպիսով, մենք սահմանեցինք մեթոդը, եկեք հիմա գրենք ուղու մշակումը index.php ֆայլում.
switch ($_GET['admin']){ case 'add': print $obj->display_admin(); break; case 'update': print $obj->display_update(); break; case 'delete': if($_GET['mid']){ $obj->delete($_GET['mid']); print $obj->display_public(); } else { print '<p>mid-ը ընտրված չէ</p>'; print $obj->display_public(); } break; default: print $obj->display_public(); }
Որպեսզի ամեն ինչ ճիշտ աշխատի ու հաղորդագրությունը ջնջվի, URL-ն պետք է լինի այս տեսքով՝
http://test/index.php?admin=delete&mid=7
Այս դեպքում mid=7 ունեցող հաղորդագրությունը կջնջվի։ Եկեք գրենք delete() մեթոդի իրականացումը.
public function delete($mid){ mysql_query('DELETE FROM Messages WHERE mid='.$mid) or die(mysql_error()); }
Եկեք վերլուծենք՝ ինչպես է կառուցված MySQL-ի delete հարցումը։ Սկզբում գրում ենք DELETE, հետո՝ FROM։ FROM-ից հետո նշում ենք այն աղյուսակը, որտեղից պետք է ջնջել գրառումները։ (ՈւՇԱԴՐՈՒԹՅՈՒՆ՝ եթե չնշենք պայման, ապա բոլոր գրառումները կջնջվեն տվյալ աղյուսակից): Այնուհետև ավելացնում ենք ջնջման պայմանը։ Մեզ հետաքրքիր է mid-ով գրառումը, որի արժեքը փոխանցում ենք մեթոդի պարամետրով։ Վերջում ստուգում ենք՝ արդյոք հարցումը հաջող կատարվեց, թե ոչ։
Ինչպես արդեն նշվեց՝ մեր մեթոդը կանչվում է, երբ URL-ում կա երկու պարամետր՝ admin=delete&mid=7։ Դրա համար կավելացնենք հղումներ ամեն հաղորդագրության տակ՝ փոփոխելով display_public() մեթոդը․
public function display_public() { $content = ''; $sql = 'SELECT * FROM Messages ORDER BY mid DESC'; $result = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_array($result)){ $content .= '<div class="post" id="mid-' . $row['mid'] . '">'; $content .= '<span class="time">#' . $row['mid'] . ' от ' . date('d-m-Y', $row['created']) . '</span><h2>' . $row['title'] . '</h2>'; $content .= '<p>' . $row['bodytext'] . '</p>'; $content .= '<p>'; $content .= '<a href="/index.php?admin=update&mid=' . $row['mid'] . '">Խմբագրել հաղորդագրությունը</a>'; $content .= '<a href="/index.php?admin=delete&mid=' . $row['mid'] . '">Ջնջել հաղորդագրությունը</a>'; $content .= '</p>'; $content .= '</div>'; } $content .= '<p><a href="/index.php?admin=add">Ավելացնել հաղորդագրություն</a></p>'; return $content; }
Այժմ, երբ սեղմում ենք «Ջնջել հաղորդագրությունը» հղման վրա, հաղորդագրությունը ջնջվում է, ինչպես նախատեսված էր։ Այժմ մենք կարող ենք արագ հեռացնել ավելորդ հաղորդագրությունները կայքից՝ առանց phpMyAdmin օգտագործելու։
Մնում է միայն մի փոքր բացատ ավելացնել խմբագրման և ջնջման հղումների միջև.
.post a{ padding-right: 5px; }
Կարծում եմ՝ դասը ավարտված է։ Հաջորդ դասում մենք կքննարկենք մի կարևոր օպերատոր՝ JOIN, որը թույլ է տալիս ընտրություն կատարել միանգամից մի քանի աղյուսակից։