Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.39 veröffentlicht (02.06.25)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Präfixauswahl erzwingen
#11
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
Zitieren
#12
So geht es einfacher:
Code:
SELECT count(*)  FROM mybb_threadprefixes WHERE CONCAT(',',forums,',') LIKE '%,2,%'
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#13
Ja, das ist natürlich besser lesbar als so'n Regexp-Gedöns. Wink


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
Zitieren
#14
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
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Präfixe erzwingen raba 2 1.781 14.07.2012, 09:43
Letzter Beitrag: raba