MyBB.de Forum
per simple_select Daten aus db nehmen und sortieren? - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: per simple_select Daten aus db nehmen und sortieren? (/thread-16474.html)



per simple_select Daten aus db nehmen und sortieren? - homepage-sk - 05.07.2010

Wieder einmal hallo zusammen Cool

Und zwar habe ich wieder ein Problem. Wenn man Daten aus MySQL ausliest, kann man dieser per ORDER BY sortieren. Jedoch nehme ich die Daten mit folgendem Code aus der MySQL Tabelle:
PHP-Code:
$link $db->simple_select('link''*'"",); 
Gibt es eine möglichkeit diese ganz leicht zu sortieren? und zwar nach dem Wert
PHP-Code:
$_GET['sort'

MFG


RE: per simple_select Daten aus db nehmen und sortieren? - StefanT - 05.07.2010

Schau dir doch einfach mal die Beispiele im MyBB-Code an.


RE: per simple_select Daten aus db nehmen und sortieren? - homepage-sk - 05.07.2010

Ich habe tatsächlich in der Linkliste einen entsprechenden Code gefunden, jedoch habe ich dabei irgendeinen Fehler gemacht Blush

Mein jetztiger Code:
PHP-Code:
    $query $db->query("
        SELECT *
        FROM "
.TABLE_PREFIX."link
        ORDER BY cid
    "
); 

Was ist daran falsch? Sad

MFG

Edit: naja, wenn man $query nicht gegen $link austauscht.... Big Grin

Sorry für die Störung. Es funktioniert und ich hätte vorher suchen sollen Smile
Aber vielen Dank

Edit 2:
Okay, ich habe trotzdem ein Problem und zwar sollte es nicht "nur" nach cid sortieren, sondern nach $_GET['sort'].

Das gibt nur Fehler aus, wenn ich das nach gewohnter Art machee.


RE: per simple_select Daten aus db nehmen und sortieren? - querschlaeger - 06.07.2010

PHP-Code:
// ein paar Standardwerte festlegen...
$order_by 'cid';
$order_dir 'asc';

// erlaubter_wert_1, erlaubter_wert_2 anpassen und ggf. erweitern!
if($mybb->input['sort'] && ($mybb->input['sort'] == 'cid' || $mybb->input['sort'] == 'erlaubter_wert_1' || $mybb->input['sort'] == 'erlaubter_wert_2'))
{
    
$order_by $mybb->input['sort'];
}

if(
$mybb->input['order'] && ($mybb->input['order'] == 'asc' || $mybb->input['order'] == 'desc'))
{
    
$order_dir $mybb->input['order'];
}

$options = array
(
    
'order_by' => $db->escape_string($order_by),
    
'order_dir' => $db->escape_string($order_dir)
);

$link $db->simple_select('link''*'""$options); 

Aufruf dann mit

sort=cid
sort=cid&order=desc
sort=erlaubter_wert1&sort=asc
sort=erlaubter_wert2&sort=desc
usw.
(auch auch ganz ohne parameter, dann werden beide intern festgelegten Standardwerte genommen)

Das escape_string() ist hier eigentlich nicht nötig, weil die erlaubten Werte schon vorher abgefragt werden. Aber es schadet nicht und Sicherheit geht bekanntlich vor. Wink
Übrigens sollte man wann immer möglich die MyBB internen Objekte nutzen, d.h. $mybb->input ist $_GET, $_POST etc. vorzuziehen!