Archives for posts tagged ‘Mysql’

Spalten einer Tabelle in MySQL/PostgreSQL abfragen

Mit MySQL kann man sich die Spalten einer Tabelle mit folgendem Befehl ausgeben lassen:

SHOW COLUMNS FROM foo;

Unter PostgreSQL geht es mit folgender Abfrage:

SELECT column_name FROM information_schema.COLUMNS \
WHERE table_name = ‘foo’;

Concat unter MySQL & PostgreSQL

So kann man unter MySQL 2 Spalten in einer darstellen:

SELECT CONCAT(id,” “, name) AS spalte FROM tabelle;

So geht es unter PostgreSQL:

SELECT id || ‘ ‘ || name AS spalte FROM tabelle;

Geburtstag in der Zukunft ermitteln

Wenn die Geburtstage im MySQL DATE Format gespeichert sind:

SELECT * FROM table
WHERE MONTH(column)>MONTH(NOW())
OR
(MONTH(column)=MONTH(NOW())
AND DAYOFMONTH(column)>DAYOFMONTH(NOW()))
ORDER BY MONTH(column), DAY(column) ASC

OpenBSD: phpMyAdmin installieren #2

Es kann sein, dass sich phpMyAdmin nach der Installation komisch verhält: Man kan keine Abfragen machen, keine User anlegen und vor allem dingen: es sieht komisch aus da keine Style-Sheets geladen werden.
Wie schon beschrieben kann das an der session.save_path liegen, ich möchte jetzt genauer darauf eingehen.
Wenn man sich den error.log (/var/www/logs/error_log) des Apache genauer anschaut, [...]

OpenBSD: phpMyAdmin installieren

Unter OpenBSD kann man phpMyAdmin ganz komfortabel mit pkg_add installieren. Nach erfolgreicher Installation wird folgende Meldung ausgegeben:

Install notice:
The phpMyAdmin has been installed into /var/www/phpMyAdmin

You should point this to the DocumentRoot of your web-server:
# ln -s ../phpMyAdmin /var/www/htdocs/phpMyAdmin
(make sure you use a relative symlink since Apache is chrooted)

You can ensure you have a [...]

OpenBSD: MySQL-Server

Ein MySQL-Server kann auch einfach über pkg_add installiert werden:

# pkg_add mysql-server-5.0.45.tgz

Sollte auf dem System noch kein MySQL installiert gewesen sein, so bekommt man beim Starten mit

# /usr/local/bin/mysqld_safe &

folgendes zu lesen:

# touch: /var/mysql/blowfish.blizzardz.err: No such file or directory
chown: /var/mysql/blowfish.blizzardz.err: No such file or directory
Starting mysqld daemon with databases from /var/mysql
/usr/local/bin/mysqld_safe[314]: cannot create /var/mysql/blowfish.blizzardz.err: No such [...]

Letzte Id bei AutoIncrement ausgeben

Wenn man bei einem Scrpitaufruf Einträge in mehrere Tabellen machen will und man für nachfolgende Einträge eine Id haben will die mit AutoIncrement erstellt wurde, dann kann man diese mit der PHP-Funktion mysql_insert_id auslesen.
Das Zend Framework-Pendant dazu ist $db->lastInsertId();
Beispiel:

<?php$data = array(    ’vorname’    =>    ”heiko”,    ’nachname’    =>    ”schweizer”);$db->insert(‘rd_accounts’, $data);
echo $db->lastInsertId();?>

Db über die Konsole importieren

Manche Datenbanken sind so groß, dass sie sich nicht ohne weiteres über PhpMyAdmin ipmortieren lassen. Aber dafür gibt es ja die mysql-Konsole.
Mit folgendem Befehl importiert man die Datei:

mysql -u user -pPasswort -D datenbank < datei

Wenn man das Passwort nicht auf der Konsole angeben möchte kann man es auch per Abfrage eingeben:

mysql -u user -p -D [...]

Join leicht gemacht

Eigentlich war ich ja ein Fan von Subselects aber heute hat es damit einfach nicht hingehauen. Also musste ich mich an alte Werte zurückentsinnen und habe mein Problem schliesslich mit Inner Join gelöst.
Um was ging es?
Ich habe eine Tabelle mit Usern (rd_accounts), eine Tabelle mit Gallerien (rd_gallerien) und eine Tabelle um die 2 zu [...]

Datensätze in einem Smarty-Template ausgeben

Smarty bietet zwar if-, foreach- etc Schleifen aber keine while-Schleife, mit der man sehr einfach viele Datensätze ausgeben kann.
Richtig anspruchsvoll wird es, wenn man noch die Mysql-Klasse aus dem Zend Framework benutzt, da dort kein mysql_fetch_assoc() benutzt wird.
Mit folgendem Code kann man einfach alle Results in einem Template ausgeben:
php-Datei:

$sql_img = “SELECT * FROM rd_bilder”;
$result = $db->fetchAll($sql_img);

$s->assign(“bilder”, [...]