Beiträge: 35
Themen: 2
Registriert seit: 17.10.2010
MyBB-Version: 1.6
21.10.2010, 18:41
(Dieser Beitrag wurde zuletzt bearbeitet: 21.10.2010, 18:43 von Mithrandir.)
Oweia- tatsächlich scheint's nur zu klappen, wenn die gesuchte Id am Anfang der Aufzählung steht.
"2" und "2,3,5" werden gezählt, "1,2,3" dagegen nicht.
Wie sieht's denn damit aus?:
Code:
SELECT count( * ) FROM mybb_threadprefixes WHERE forums REGEXP '(2,)|2$'
"2" ist wieder die Beispiel-ID.
MfG,
Mithrandir
MyBB 1.6 im Intranet unter Ubuntu 10.04.1 Server
Beiträge: 25.766
Themen: 269
Registriert seit: 20.09.2005
So geht es einfacher:
Code:
SELECT count(*) FROM mybb_threadprefixes WHERE CONCAT(',',forums,',') LIKE '%,2,%'
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 35
Themen: 2
Registriert seit: 17.10.2010
MyBB-Version: 1.6
21.10.2010, 18:53
(Dieser Beitrag wurde zuletzt bearbeitet: 21.10.2010, 18:55 von Mithrandir.)
Ja, das ist natürlich besser lesbar als so'n Regexp-Gedöns.
Gibt es Erkenntnisse bzgl. Performance-Unterschieden zwischen LIKE und REGEXP? Nachtrag: Okay, die ersten Google-Ergebnisse sprechen für deine Variante.
MfG,
Mithrandir
MyBB 1.6 im Intranet unter Ubuntu 10.04.1 Server
Beiträge: 35
Themen: 2
Registriert seit: 17.10.2010
MyBB-Version: 1.6
Hallo noch einmal,
um meinen Vorschlag aus
Beitrag #6 noch einmal zum Abschluss zu bringen, hier hoffentlich funktionierender Code, der die Präfixe besser abfragt:
PHP-Code:
function verify_prefix()
{
global $db;
$fid = &$this->data['fid'];
$prefix = &$this->data['prefix'];
// If a valid prefix isn't supplied, don't assign one.
if(!$prefix || $prefix < 1)
{
$query = $db->simple_select("threadprefixes", "COUNT(*) AS prefixcount", "forums='-1' OR CONCAT(',',forums,',') LIKE '%,".$fid.",%'");
$prefixinthisforum = $db->fetch_field($query, "prefixcount");
if ($prefixinthisforum==0)
{
$prefix = 0;
}
else {
$this->set_error("missing_prefix");
return false;
}
}
return true;
}
MfG,
Mithrandir
MyBB 1.6 im Intranet unter Ubuntu 10.04.1 Server