MySQL Beispiel Datenbank

Um eine gute Basis zu haben für zukünftige Beiträge werde ich jetzt mal hier eine kleine Standard-Datenbank festlegen. In dieser werde ich dann immer die MySQL Abfragen durchführen.

Als erstes braucht Ihr eine leere Datenbank dazu. Meine Beispieldatenbank heißt einfach beispieldb. Ist eigentlich egal wie sie heißt und theoretisch könnt Ihr das auch in eine bestehende Datenbank machen, es darf nur nicht schon eine Tabelle vorhanden sein.

Für alle, die lieber die SQL Datei haben zum direkten Import hier klicken. Die Aufgaben der einzelnen Tabellen variieren von Beispiel zu Beispiel. Werde da jedes mal drauf eingehen.

Fangen wir mal an und legen zuerst mal die Kunden Tabelle an:
<code>CREATE TABLE IF NOT EXISTS `kunden` (
  `Kunden_ID` int(11) NOT NULL auto_increment,
  `Kunden_Name` varchar(255) NOT NULL,
  `Kunden_Vorname` varchar(255) NOT NULL,
  `Kunden_Status_ID` int(11) NOT NULL,
  `Kunden_Eingetragen` datetime NOT NULL,
  PRIMARY KEY  (`Kunden_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

CREATE TABLE IF NOT EXISTS `kunden_status` (
  `Kunden_Status_ID` int(11) NOT NULL auto_increment,
  `Kunden_Status_Name` varchar(255) NOT NULL,
  PRIMARY KEY  (`Kunden_Status_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;</code>


Als nächstes brauchen wir dann noch eine Tabelle für die Artikel:
<code>CREATE TABLE IF NOT EXISTS `artikel` (
  `Artikel_ID` int(11) NOT NULL auto_increment,
  `Artikel_Name` varchar(255) NOT NULL,
  `Artikel_Kosten` decimal(11,2) NOT NULL,
  `Artikel_Eingetragen` datetime NOT NULL,
  PRIMARY KEY  (`Artikel_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

CREATE TABLE IF NOT EXISTS `artikel_lager_bestand` (
  `Artikel_ID` int(11) NOT NULL,
  `Lager_ID` int(11) NOT NULL,
  `Artikel_Lager_Bestand` int(11) NOT NULL,
  `Artikel_Lager_Bestand_Akualisiert` datetime NOT NULL,
  PRIMARY KEY  (`Artikel_ID`,`Lager_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;</code>


Nicht zu vergessen die Tabelle für das Lager und die Bestellungen:
<code>CREATE TABLE IF NOT EXISTS `lager` (
  `Lager_ID` int(11) NOT NULL auto_increment,
  `Lager_Name` varchar(255) NOT NULL,
  `Lager_Max_Bestand` int(11) NOT NULL,
  `Lager_Eingetragen` datetime NOT NULL,
  PRIMARY KEY  (`Lager_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

CREATE TABLE IF NOT EXISTS `bestellung` (
  `Bestellung_ID` int(11) NOT NULL auto_increment,
  `Kunden_ID` int(11) NOT NULL,
  `Artikel_ID` int(11) NOT NULL,
  `Bestellung_Eingetragen` datetime NOT NULL,
  PRIMARY KEY  (`Bestellung_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;</code>


Für alle, die keine Lust haben sich die Befehle hier raus zu ziehen, habe ich mal den SQL hoch geladen. Hier der Link:
Jetzt downloaden

„Preformance“ der Script immer versteckt Anzeigen

Ich habe ab und zu auf wichtigen und lasten intensiven Seiten meistens eine Automatische und konstante Anzeige der wichtigsten Eckdaten. Dadurch kann ich ohne großen Aufwand ständig die Ladezeiten kontrollieren. Der Vorteil liegt klar auf der Hand. Wenn mal wieder ein Anruf kommt ala "Die Seite ist langsam" braucht man nur selber drauf surfen und braucht nicht erstmal sich mit dem Server zu verbinden.

Das ganze am besten in die Datei Packen, die überall geladen wird (index.php, config.php). Und vor allem: Nicht aus versehen 2 mal die Session starten mit session_start(); , weil sonst dieser Fehler kommt:
Warning: Cannot send session cookie - headers already sent
Darum erst kontrollieren und dann folgendes einbauen:
session_start(); function getmicrotime() { list($msec, $sec) = explode(" ",microtime()); return ($msec + $sec); } if($_REQUEST["start_timing"]=="on"){ $_SESSION["get_time"]="on"; } if($_REQUEST["start_timing"]=="off"){ $_SESSION["get_time"]="off"; } if($_SESSION["get_time"]=="on"){ $time_start = getmicrotime(); }
Das am besten ganz oben in die Seite rein laden 🙂 . Dadurch wird die microtime() geholt. Also die Zeit mit Millisekunden, den auf die kommt es oft an.

if($_SESSION["get_time"]=="on"){ $serverid="SERVERNAME"; $query=$_SERVER["QUERY_STRING"]; $scriptname=$_SERVER["SCRIPT_NAME"]; $script=$scriptname."?".$query; $time_end = getmicrotime(); $endzeit=$time_end-$time_start; echo""; }
Den Block dann ganz nach unten. Dort erscheint dann die Ausgabe.

Beim Seitenaufruf einfach dann beim nächsten mal index.php?start_timing=on mitgeben und dann könnt Ihr euch zu dem kritischen Script bewegen und müsst nur in den Quelltext gucken um dann unten die Ausgabe zu sehen.

Das ganze lässt sich auch stoppen mit mal index.php?start_timing=off, aber eigentlich ist das egal 🙂 . Wenn die Session verloren geht dann hört die Ausgabe auch auf.

Ersetzten von Zeichen durch andere

Musste in letzter Zeit öfters etwas ersetzten und denke da ist diese Funktion ganz Hilfreich 🙂 :

string foo = "abc";
foo.Replace("abc", "bc");
// foo ist immer noch abc. Wichtig: Das setzten nicht vergessen!

foo = foo.Replace("abc", "bc");
// foo ist a

Beschreibung: VAR.Replace(ERSETZE_WAS,ERSETZTE_DURCH);
Das ganze ist simpel wie die meisten Funktionen in c#, aber man muss Sie erstmal wissen 🙂

Für alle PHPler: VAR.Replace(ERSETZE_WAS,ERSETZTE_DURCH); ist wie in PHP str_replace(ERSETZE_WAS,ERSETZTE_DURCH,$VAR); . Denke das kann ein bisschen den Umstieg vereinfachen 🙂

Suchanbieter ändern bei Firefox

Da mich schon seit graumer Zeit die Alexa Suche nervt, habe ich mich heute dann entschlossen diese endlich raus zu nehmen und Google wieder als Standard suche rein zu machen.

Der Aufwand war relativ gering, dafür das es mich schon so lange nervt. Danke noch Bennyn für den Artikel 🙂

Einfach Firefox Starten -> about:config in die Adresszeile eingeben und dann "Ja ich bin vorsichtig" anklicken 🙂 . Firefox scheint eine menge Leute in der Community zu haben, die wohl sehr leichtsinnig da Einstellungen verhauen 🙂 . Nette Idee auf jeden Fall.

Ihr kommt dann in das Konfigurationsmenü was ein bisschen wie eine Pro/Contra Liste aussieht. Dort dann oben Bei Filger noch schnell "keyword.URL" eingeben und dann einmal den Eintrag bearbeiten. Ich habe da ganz einfach "http://www.google.de/search?q=" rein gemacht. Das ist meine Lieblingssuchmaschine und die will ich auch behalten 🙂