Pati klase ($db ir mysqli savienojums)<?phpBrīdī, kad vajag izdrukāt kādu ziņojumu, vai vienalga ko, izmantojam
    class Messages
        {
            function create($errorName)
                {
                    $_SESSION['errors'][$errorName] = true;
                }
            function show()
                {
                    global $db;
                    if (isset($_SESSION['errors']))
                        {
                            foreach ($_SESSION['errors'] as $errorName => $status)
                                {
                                    $messageHandler = $db->query("SELECT * FROM errors WHERE textid = '$errorName'");
                                    if ($messageHandler->num_rows === 0)
                                        {
                                            //do nothing
                                        }
                                    else
                                        {
                                            $messagePrint = $messageHandler->fetch_object();
                                            $message = $messagePrint->contents;
                                        }
                                        echo $message;
                                        $this->dismiss();
                                        
                                }
                        }
                }
                
            function dismiss()
                {
                    foreach ($_SESSION['errors'] as $errorName => $status)
                        {
                            $_SESSION['errors'] = false;
                        }
                }
        }
Messages::create('nosaukums');
Pašu kļūdas tekstu, izvilks no datubāzes. Šis tikai ierakstīs sesijā, ka ziņojumam ir jābūt. Tālāk, lapas daļā, kurā gribam rādīt ziņojumus, liekam
Messages::show();
Ziņojums gan tiks parādīts tikai vienu reload pēc Messages::create(), bet to var atrisināt ieliekot redirect'a headeri.
SQL:
SET NAMES utf8; SET foreign_key_checks = 0; SET time_zone = '-05:00'; SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; DROP TABLE IF EXISTS `errors`; CREATE TABLE `errors` ( `textid` text COLLATE utf8_latvian_ci NOT NULL, `contents` text COLLATE utf8_latvian_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_latvian_ci;
Laboja SJohnson, labots 1x
















 2348
2348
0 #127.12.2013. 06:14
Kāds varētu pārlikt pareizajā sadaļā?
+1 #227.12.2013. 09:57
Manuprāt daudz par sarežģītu. Kāpēc tur vispār vajag iesaistīt datubāzi? Vienkārši raksti sesijā paziņojuma tekstu un pēc tam to parādi.