GET random Object mit Doctrine
Doctrine selbst hat keine ORDER BY rand() Funktion implementiert. Aber es gibt eine Lösung. Man lässt sich den total count der rows ausgeben und nutzt die PHP interne rand() Funktion um FirstResult zu definieren.
/** * @return mixed */ public function getTotal() { return $this->getEntityManager()->createQueryBuilder() ->select('COUNT(p.id)') ->from('AppBundle:Product', 'p') ->getQuery() ->getSingleScalarResult(); } /** * @return mixed */ public function getRandom() { return $this->getEntityManager()->createQueryBuilder() ->select('p') ->from('AppBundle:Product', 'p') ->setFirstResult(rand(0, $this->getTotal()-1)) ->setMaxResults(1) ->getQuery() ->getSingleResult(); }
doctrine, MySQL, object, orm, PHP, rand(), random, row, total
SQL General error – 1553 Cannot drop index XYZ needed in a foreign key constraint
// show indexes of table SHOW CREATE TABLE news; // shows something like this ... CONSTRAINT `FK_3A51546D12469DE2` FOREIGN KEY (`category_id`) REFERENCES `news_category` (`id`), ... // drop index ALTER TABLE news DROP FOREIGN KEY FK_3A51546D12469DE2;
alter table, constraint, drop, foreign key, general error, index, MySQL, sql
definer mit sed aus mysql dump entfernen
um aus bestehenden mysqldumps die user@host definer zu entfernen kann man folgendes tun
~ $ sed -r -e "s/\/\*[^\/]*DEFINER.*\*\///g" < mysqldump.sql > mysqldump-exdefiner.sql
umkreissuche in mysql mit coordinaten (latitude, longitude)
wenn ihr eine schnelle lösung für eine umkreissuche benötigt, könnt ihr direkt in mysql geocoordinaten + distanzen errechnen.
# :dist = gewünschte entfernung in km (z.b 10) # :lat = latitude der aktuellen position # :lon = longitude der aktuellen position SELECT id, latitude, longitude, ( 6371 * acos( cos( radians( :lat ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians( :lon ) ) + sin( radians( :lat ) ) * sin( radians( latitude ) ) ) ) AS distance FROM points_with_geocoordinates HAVING distance <= :dist ORDER BY distance ASC
acos, coord, coordinate, cos, distance, distanz, geo, lat, latitude, lon, longitude, MySQL, radians, sin, suche, umkreis
mysqldump ohne definer
um hostunabhängige mysql dumps zu erzeugen, muss man die definer aus dem jeweiligen dump entfernen.
mit sed kann man das gleich beim erzeugen des dumps:
mysqldump database -ufoo -pbar -hlocalhost | sed "s/\/\*[^\/]*DEFINER.*\*\///g" > dump_without_definer.sql
phpmyadmin mit ssl erzwingen
trage einfach in die config.inc.php folgendes ans ende der datei:
// am ende der config.inc.php $cfg['ForceSSL'] = true;
admin, https, my, MySQL, PHP, phpmyadmin, ssl, verschlüsselung
der Criteria Builder für Propel ORM Criterias
Die Propel ORM für PHP bedient sich einer eigenen Syntax (Criterias) um Queries zusammenzustellen.
Hier gibt es einen Criteria Builder, den man mit Standard SQL füttern kann.
Der Criteria Builder konvertiert sodann das eingegebene SQL Statement in ein Propel Criteria.
So wird aus diesem kleinen SQL Statement:
SELECT user.* FROM user WHERE user.state = 100 AND (user.name = 'user' OR user.email = 'user@domain.tld')
diese Propel Criteria:
$c = new Criteria(); $crit0 = $c->getNewCriterion(UserPeer::STATE, 100); $crit1 = $c->getNewCriterion(UserPeer::NAME, 'user'); $crit2 = $c->getNewCriterion(UserPeer::EMAIL, 'user@domain.tld'); // Perform OR at level 1 ($crit1 $crit2 ) $crit1->addOr($crit2); // Perform AND at level 0 ($crit0 $crit1 ) $crit0->addAnd($crit1); // Remember to change the peer class here for the correct one in your model $c->add($crit0); $result = TablePeer::doSelect($c); // This loop will of course need to be edited to work foreach ($result as $obj) { //$val = $obj->getValue(); }
Einen Versuch ist es Wert.
Neueste Beiträge
Kategorien
- Agavi
- Android
- ANT
- Apache
- Bildbearbeitung
- CMS Systeme
- Codeigniter
- CSS
- Debugging
- Deployment
- Doctrine ORM
- Flash
- Frameworks
- GIT
- Javascript
- Kanban
- Kohana
- Layout & Styles
- Lightroom
- Lighttpd
- Linux
- Management & Prozesse
- MySQL
- Nginx
- OffTopic
- Photographie
- Photoshop
- PHP
- PhpMyAdmin
- PHPUnit
- Postfix
- Propel ORM
- Ruby On Rails
- Scrum
- Server
- Shell
- Sicherheit
- SOAP
- Social Media
- Sonata
- SVN
- Symfony2
- Versionierung
- VIM
- Wordpress
- XDebug
- XML
- XT Commerce
- Zend