Nudge am 23.03.2009

phpmyadmin-Update und alte Features

in MySQL, PHP, Tipp | Tags: Editor, Konfiguration, MySQL, PHP, phpmyadmin, Problem, Query, Update

Nach einem Update von phpmyadmin von 2.11.6 auf die neue 3.1.3 waren mir vertraute Features plötzlich nicht mehr sichtbar. Falls es einigen von Euch genauso ging, hier ein kleiner Tipp, wie man die alte Ansicht wiederbekommt.

Man öffne die Datei config.inc.php und füge nach der Server-Konfiguration die folgenden Zeilen ein:

1
2
3
$cfg['DefaultTabTable'] = 'tbl_structure.php';
$cfg['LeftDefaultTabTable'] = 'tbl_structure.php';
$cfg['SQLQuery']['Edit'] = TRUE;
$cfg['DefaultTabTable'] = 'tbl_structure.php';
$cfg['LeftDefaultTabTable'] = 'tbl_structure.php';
$cfg['SQLQuery']['Edit'] = TRUE;

Zur Erklärung: Klickt man links in die Spaltenansicht aller Tabellen, so öffnete die alte Version standardmäßig die Tabellenstruktur, nun sind es die ersten 30 Einträge. Diese Umstellung wird durch die erste und zweite Zeile rückgängig gemacht. Sicherlich werden viele die Einträge auch gern sehen wollen. In meinem Falle benutze ich phpmyadmin nicht unbedingt zur Datenrecherche, sondern ganz oft für Arbeiten an der MySQL-Tabellenstruktur. Dafür finde ich die alte Einstiegsseite besser geeignet.

Die letzte Zeile korrigiert den fehlenden “Bearbeiten”-Link, nachdem ein Query an MySQL abgesetzt wurde. Denn häufig starte ich damit, einen ersten Query-Entwurf abzusetzen, dann mittels “Bearbeiten” ein Popup-Fenster zu öffnen, um dort mein Query weiter feiner zu granulieren, ohne dass ein Klick im Browserfenster mein Query verwirft.

Ansonsten kann ich das Update schon aus Sicherheitsgründen nur wärmstens empfehlen!

Nudge am 31.07.2008

SQL im Webshop: Suche nach Modified

in MySQL, PHP, Web | Tags: Cache, MySQL, Performance, Query, SQL, Webshop

Größere Netzwerke, Suchmaschinen oder auch mal eben der kleine Statusbalken arbeiten viel besser, wenn man einen Zeitstempel zur Verfügung stellen kann à la “Dieser Artikel oder dieses Produkt wurde zuletzt geändert am …”.

Das ist allerdings nicht ganz so easy, wenn sich die Daten des Satzes in verschiedenen Tabellen befinden. Also muss man die sich mühevoll zusammenklauben. Bei uns im Shop sind es eigentlich nur eine Handvoll Tabellen: Der Artikeleintrag in der Warenwirtschaft, die Varianten, die Preise, Rabatte, Shop-Eintrag, Shop-Texte und Shop-Fotos.

Weiter lesen »

Nudge am 27.07.2008

MySQL vs. Postgres – never ending story?

in Linux, MySQL | Tags: Cache, Chemitzer Linux-Tage, DBMS, MySQL, Performance, PHP, Postgresql, Query, Tuning

Ich habe mal wieder darüber nachgedacht, ob es nicht Zeit wäre, von MySQL auf Postgres umzusteigen. Bei den diesjährigen Chemnitzer Linux-Tagen habe ich ein interessantes Gespräch mit einem der Postgres-Leute gehabt. Seitdem laufen beide Datenbanken auf meinem Laptop und warten darauf, eingehend verglichen zu werden. Weiter lesen »

Nudge am 11.05.2007

Mysqldump

in Linux, MySQL | Tags: Backup, MySQL, mysqldump, Query

Was ich heute kurz festgestellt habe: Im Gegensatz zu früheren Versionen speichern relativ junge Ausgaben von mysqldump eine komplette Tabelle in einem Insert. Das Ergebnis sieht dann etwa so aus:

INSERT INTO tabelle (Feld1, Feld2, Feld3) VALUES ((val1-1, val1-2, val1-3),(val2-1, val2-2, val2-3));

Soweit so gut. Doch bei 500,000 Einträgen in einer vielleicht nicht ganz so schmalen Tabelle stellt sich mir natürlich die Frage: Wie spielt man dann ein paar Sätze gezielt zurück, falls mal jemand aus Versehen etwas gelöscht hat?

Weiter lesen »

Nudge am 27.03.2007

MySQL Mustersuche, nur andersherum

in Linux, MySQL | Tags: MySQL, Query, Rechteverwaltung, Regular Expression

Gestern habe ich mich mit folgender kleiner Aufgabe beschäftigt: Lese- und “Ausführungs”-Berechtigung von Intranet-Seiten für die Mitarbeiter. Die 08/15-Lösung: Eine Tabelle, die ungefähr so aussieht:

1
2
3
4
5
6
7
8
CREATE TABLE IntraBerechtigungen (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  Mitarbeiter varchar(255) NOT NULL,
  Seite varchar(255) NOT NULL,
  Lesen char(1) DEFAULT 'N',
  Ausfuehren char(1) DEFAULT 'N',
  Timestamp timestamp
);
CREATE TABLE IntraBerechtigungen (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  Mitarbeiter varchar(255) NOT NULL,
  Seite varchar(255) NOT NULL,
  Lesen char(1) DEFAULT 'N',
  Ausfuehren char(1) DEFAULT 'N',
  Timestamp timestamp
);

Dann trägt man einfach seine Leute und die entsprechenden Seiten ein. Aber was passiert, wenn jemand neues hinzukommt? Wenn eine Seite hinzukommt oder wegfällt? Viel manuelle Arbeit. Mit Mustern wollte ich daher diese Mühe sparen.

Weiter lesen »