Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #3945
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: Umschalten zwischen zwei php+Scripten |
| Date | 2016-08-30 14:21 +0200 |
| Organization | PointedEars Software (PES) |
| Message-ID | <4198334.GXAFRqVoOG@PointedEars.de> (permalink) |
| References | <e2ks5dFeiu0U1@mid.individual.net> <nq3n7j$2i9$3@dont-email.me> |
Christian Stadler wrote:
> Am 30.08.2016 um 09:50 schrieb Sigbert Helle:
>> Ich hab ein relativ umfangreiches php-Script mit eingebautem sql-code,
>> der eine ORDER-Anweisung enthält.
1. Autsch.
2. Es gibt keine ORDER-Anweisung in (My)SQL (das nächste Mal bitte das DBMS
angeben). Die Anweisung ist vermutlich “SELECT”; “ORDER BY” ist eine
_Klausel_ darin.
>> Der User soll zwischen "ORDER" und "ORDER DESC" umschalten können.
>> Das einzige, was mir bisher dazu eingefallen ist: Eine Kopie des Scripts
>> anlegen und den User zwischen diesen beiden Scripten umschalten lassen.
Autsch.
>> Der User soll aber zuerst das Ergebnsi per "ORDER" zu sehen bekommen, so
>> dass er dann sagen kann "Nee, is nix - will ich anders!"
>> Also nicht schon vor dem Aufruf des Scripts die Entscheidung, sondern
>> erst danach.
>
> | $sortorder = $_POST['sortorder'] == 0 ? 'ORDER' : 'ORDER DESC';
1. Das ergibt keine gültige Abfrage, in keiner mir bekannten SQL-
Implementierung. Es fehlt die Angabe, *wonach* sortiert werden soll.
Formal gültig wäre:
$sortorder = "ORDER BY blubb"
. ($_POST['sortorder'] == 0 ? '' : ' DESC');
Ich würde dies allerdings in den Datenbank-Klassen (die man haben sollte)
lösen. In Benutzercode gehören keine Klartext-Datenbankanweisungen, schon
gar keine DBMS-spezifischen. Sauber könnte es stattdessen zum Beispiel so
aussehen:
<?php
namespace My;
class ResultModel extends \My\Model
{
/**
* @return array[ResultModel]
*/
public static function fetchAll ($ascending=true)
{
return (new self)->table->select(
[
…,
'order' => ($ascending
? Database::ORDER_ASC
: Database::ORDER_DESC),
'class' => __CLASS__
]);
}
}
…
<?php
namespace My;
class IndexController extends \My\Controller
{
public function indexAction ()
{
$results = ResultModel::fetchAll(
$this->getParam('sortorder', $_POST) === '0');
$this->assign('results', $results);
$this->render();
}
}
…
<?php foreach ($this->results as $result): ?>
<tr>
<td><?= $this->encode($result->foo); ?></td>
<td><?= $this->encode($result->bar); ?></td>
<td><?= $this->encode($result->baz); ?></td>
</tr>
<?php endforeach; ?>
Bitte Code nicht mit Zitatzeichen posten, ausser es folgt eine
Korrektur/Anmerkung dazu.
--
PointedEars
Zend Certified PHP Engineer
<http://www.zend.com/en/yellow-pages/ZEND024953> | Twitter: @PointedEars2
Please do not cc me. / Bitte keine Kopien per E-Mail.
Back to de.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Umschalten zwischen zwei php+Scripten Sigbert Helle <pc@sigbert.de> - 2016-08-30 09:50 +0200
Re: Umschalten zwischen zwei php+Scripten Christian Stadler <stadli@gmx.de> - 2016-08-30 11:25 +0200
Re: Umschalten zwischen zwei php+Scripten Christian Stadler <stadli@gmx.de> - 2016-08-30 12:26 +0200
Re: Umschalten zwischen zwei php+Scripten Christian Stadler <stadli@gmx.de> - 2016-08-30 12:30 +0200
Re: Umschalten zwischen zwei php+Scripten Sigbert Helle <pc@sigbert.de> - 2016-08-30 13:21 +0200
Re: Umschalten zwischen zwei php+Scripten Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-30 14:21 +0200
Re: Umschalten zwischen zwei php+Scripten Christian Stadler <stadli@gmx.de> - 2016-08-30 17:06 +0200
Re: Umschalten zwischen zwei php+Scripten Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-30 17:09 +0200
Re: Umschalten zwischen zwei php+Scripten Christian Stadler <stadli@gmx.de> - 2016-08-30 17:22 +0200
Re: Umschalten zwischen zwei php+Scripten Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-30 17:10 +0200
Re: Umschalten zwischen zwei php+Scripten Sigbert Helle <pc@sigbert.de> - 2016-08-31 19:00 +0200
Re: Umschalten zwischen zwei php+Scripten Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-31 19:43 +0200
csiph-web