Als erster Schritt wird eine Datenbank erstellt, die die eingegeben Daten aufnehmen kann. Hierzu kann man verschiedene Werkzeuge benutzen. Eines der besten Programme um eine mySQL-Datenbank zu bearbeiten ist PhpMyAdmin, welches auch in diesem Beispiel genutzt wird.
Was soll jetzt aber in der Datenbank abgelegt werden? Nachrichten bestehen in der Regel aus einer Titelzeile und einem Nachrichtentext. Wichtig wäre es auch zu wissen von wann die Nachricht ist und von wem. Wir benötigen also 4 Felder für die Datenbank. Vier? Nein wir nehmen fünf! Das erste Feld, und das sollte man sich immer angewöhnen, ist der Index. Hier wird einfach eine Zahl benutzt. Über diese Zahl kann später jeder Datensatz eindeutig identifiziert werden. Natürlich nur sofern keine Zahl doppelt vorkommt; dazu aber gleich mehr.
Zunächst legt man in mySQL eine Tabelle mit dem Namen tp_news an. Der zugehörige Befehl lautet CREATE TABLE 'tp_news' () TYPE=MyISAM;. Auf die Angabe des Types kann verzichtet werde. Hierzu später vielleicht mehr. Innerhalb der Klammern können jetzt noch Datenfelder für diese Tabelle definiert werden. Anders als beispielsweise eine Wordtabelle kennt mySQL verschiedene Datenfeldtypen. Das Feld welches den Index aufnimmt wird in diesem Beispiel 'id' genannt. Über den Begriff int für integer teilt man mySQL mit das eine Zahl als Inhalt vorgesehen ist. In diesem Feldtyp kann eine bis zu 11-stellige Zahl gespeichert werden. Das ist für das Newsscript zuviel und verbraucht unnötigen Speicherplatz. Mit int(6) begrenzen wir die Länge auf 6 Stellen, was auch für extrem viele News reichen sollte. Damit man bei der Eingabe der News nicht immer von Hand eine (noch freie) Zahl für den Index angeben muss, weißt man mySQL mit auto_increment an dieses Feld selber zu füllen. Die ganze Zeile für das Anlegen des ersten Datenbankfeldes lautet also: `id` int(11) NOT NULL auto_increment. NOT NULL wurde noch nicht erklärt: Bei allen Felder hat man die Möglichkeit NULL oder NOT NULL anzugeben. Ersteres bedeutet das das Feld leer sein kann, wobei leer nicht 0 oder ein Leerzeichen bedeutet, sondern wirklich leer - nichts, nada. Die zweite Möglichkeit verhindert das und zwingt mySQL zumindest etwas einzufügen. Für unsere Zwecke eigentlich egal, aber dennoch später einfacher mit NOT NULL.
Wichtig für den Index der Tabelle ist das jetzt Zahl nur einmal vorkommt und so jeder Datensatz eindeutig zu identifizieren ist. Daher wird die Zeile UNIQUE KEY `id` (`id`) eingefügt. Diese veranlasst, dass jeder Datensatz in dem Feld id einen eindeutigen, einmaligen Wert haben muss. Da sich später ein Großteil der Datenbankabfragen auf den Index, also das Feld id, beziehen, wird noch PRIMARY KEY (`id`) eingefügt, welches die Abfragen beschleunigt.
Das zweite Feld soll die Überschrift der Nachricht aufnehmen. Der Name wird auf 'titel' festgelegt. Als Art des Feldes wird tinytext genommen. Dieses Begriff steht für einen kleinen Text und ist platzsparender als die anderen Textfeldertypen: text oder longtext.
Für das dritte Feld, welches den Nachrichtentext ('nachricht') aufnehmen soll, wird der Feldtyp text benutzt.
Im vierten und fünften Feld ('startdatum' und 'startzeit') wird das Datum der Nachricht gespeichert. Man könnte diese Felder natürlich als Text definieren, aber mySQL bietet eine elegantere Lösung. Es gibt die Feldtypen date und time. Die Anzeige erfolgt im 'YYYY-MM-DD' bzw. 'HH:MM:SS'-Format. Mit dem Feldtyp datetime gibt es auch eine Kombination von beiden (YYYY-MM-DD HH:MM:SS) Aufgrund späterer Weiterentwicklungen werden die Felder hier aber getrennt. Für beide Felder ist ein default angegeben, dieser Wert wird in das Feld eingetragen wenn kein Wert explizit angegeben ist.
Als letztes Feld wird noch 'autor' als tinytext definiert.
Im Ganzen sieht die Befehls kette jetzt so aus:
