MyBB.de Forum
Präfixauswahl erzwingen - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: Präfixauswahl erzwingen (/thread-17106.html)

Seiten: Seiten: 1 2


RE: Präfixauswahl erzwingen - Mithrandir - 21.10.2010

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.


RE: Präfixauswahl erzwingen - StefanT - 21.10.2010

So geht es einfacher:
Code:
SELECT count(*)  FROM mybb_threadprefixes WHERE CONCAT(',',forums,',') LIKE '%,2,%'



RE: Präfixauswahl erzwingen - Mithrandir - 21.10.2010

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.


RE: Präfixauswahl erzwingen - Mithrandir - 22.10.2010

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;