Ich habe eine Liste für multiple choices
. Wenn der Benutzer keine Wahl hat, sollte die betreffende Information die Artikel ALL
anzeigen. Ich habe einen Standardwert ALL
in meinem form
diesen folgenden:Wie bekomme ich einen Wert von einem leeren Wert in PHP
<?php
$user = $app['security']->getToken()->getUser();
$default = 'ALL';
$form = $app['form.factory']->createBuilder('form',['lru' => [$default]])->setMethod('GET')
->add('lru', 'choice', array(
'choices' => array(
$default => $default,
'\'ATSU\'' => 'ATSU', ....)
'required' => FALSE,
'empty_value' => 'ALL',
'empty_data' => NULL,
'multiple' => TRUE
))
Wenn ich einen Fehler gezeigt ausführen, soll ich meinen Antrag ändere ein empty_value
ALL
standardmäßig zu nehmen:
ich in meiner Klasse deklarierte :
private $_sqlSelect = 'Select * ';
private $_sqlFrom = 'From `piecearticles`';
private $_sqlWhere = 'Where ';
Und nach meiner Funktion:
if ($this->_count == 0) {
$this->_sqlWhere.="`piecearticles`.`ID_Article`=`article`.`ID_Article` AND `piecearticles`.`Designiation`=`article`.`Designiation` AND `article`.`ID_LRU`=`lru`.`ID_LRU`";
$this->_count++;
} else {
$this->_sqlWhere.="AND `piecearticles`.`ID_Article`=`article`.`ID_Article` AND `piecearticles`.`Designiation`=`article`.`Designiation` AND `article`.`ID_LRU`=`lru`.`ID_LRU`";
}
if (!empty($this->_lru)) {
if(is_array($this->_lru) or ($this->_lru instanceof Traversable)) {
$this->_sqlWhere.=" AND `lru`.`LRU` IN (" . implode(",", $this->_lru) . ")"; //='" . $this->_lru . "'";
} else {
$this->_sqlWhere.=" AND `lru`.`LRU`='" . $this->_lru . "'";
}
}
//if (strpos($this->_sqlFrom,'article') == false) {
$this->_sqlFrom.=', `article` ';
//}
if (strpos($this->_sqlFrom, 'lru') == false) {
$this->_sqlFrom.=',`lru`';
}
//echo count($this->_lru);
}
Ich habe eine echo
meiner query
, es gibt lru
zurück. LRU
IN (ALL) ` Wie kann ich meine Anfrage ändern, um einen Standardwert 'ALL' zu nehmen. Danke.
Ihre bereitgestellten Informationen hinterfragen mehr als Antworten. Z.B. Wo wird '$ this -> _ sqlFrom' initialisiert? In Bezug auf "ALL": Sie implementieren dies in der Regel durch Weglassen der entsprechenden WHERE-Klausel. – Adder
@Adder Ich habe die _sqlForm in meiner Klasse initialisiert (ich habe meine Frage oben geändert). – vero
Für welches Feld möchten Sie ALLE auswählen? Es gibt ein Problem in Ihrem Code, das wird nicht konsistent verwendet '$ this -> _ sqlWhere. =" AND "und auch, kein' AND' wird benötigt, wenn es als erstes zur where-Klausel hinzugefügt wird. Deshalb bin ich oft starte meine where-Klausel mit 'WHERE 1 = 1'. – Adder