Weil man keine Datensätze aus der Tabelle löschen kann, die man gerade abfragt, braucht man eine temporäre Tabelle. Hier werden die doppelten Daten zwischengespeichert. CREATE TABLE temp AS ( SELECT tabelle2.id FROM doppelte tabelle1, doppelte tabelle2 WHERE tabelle1.id != tabelle2.id AND tabelle1.feld_a = tabelle2.feld_a AND tabelle1.feld_b = tabelle2.feld_b AND tabelle1.feld_c = tabelle2.feld_c AND tabelle1.id < [...]
SELECT SOURCE.* FROM mytable AS SOURCE, ( SELECT field_1, field_2 — alle Group-Felder FROM mytable — alle Group-Felder GROUP BY field_1, field_2 — nur jene auswählen die mehr als ein Datensatz haben HAVING COUNT(*) > 1 ) AS FILTER WHERE — alle Group-Felder verknüpfen FILTER.field_1 = SOURCE.field_1 AND FILTER.field_2 = SOURCE.field_2
Dieser Code kommt in das app_model.php /** * Get Enum Values * Snippet v0.1.3 * http://cakeforge.org/snippet/detail.php?type=snippet&id=112 * * Gets the enum values for MySQL 4 and 5 to use in selectTag() */ function getEnumValues($columnName=null, $respectDefault=false) { if ($columnName==null) { return array(); } //no field specified //Get the name of the table $db =& ConnectionManager::getDataSource($this->useDbConfig); $tableName [...]
Der propel Generator benötigt eine XML Datei um ein Datenbankschema zu erstellen. Diese heisst sinnigerweise dann auch schema.xml. Der Aufbau ist eigentlich selbsterklärend. Hier habe ich mal ein Beispiel von der propel Seite: <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <database name="bookstore" defaultIdMethod="native"> <table name="book" description="Book Table"> <column name="book_id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Book Id"/> <column name="title" type="varchar" [...]
Propel wird verwendet um Objekte mit Daten in einer Datenbank zu speichern. Es ist eine Schicht zwischen dem Datenspeicher und der Programmierlogik. Zunächst muss man Propel über den PEAR Installer installieren. Da Propel eine Abhängigkeit zu anderen PEAR Paketen enthält, muss man als erstes diese installieren. Dies geschieht über die Konsole. Wir fangen mit dem [...]
Ich habe einen interessanten Artikel in der ix über doctrine gefunden. Dort heisst es imFazit: Mit Doctrine existiert ein ORM-Framework, das den Vergleich mit Lösungen anderer Plattformen nicht zu scheuen braucht. Die in diesem Artikel gezeigten Listings beleuchten nur einen Bruchteil der Funktionen des Framework. Seit sich ein festes Entwickler-Team gefunden hat, schreitet die Entwicklung [...]