Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
Automatische Liste
#1
Hallo zusammen,
ich hab versucht eine automatische Liste zu erstellen bzw eine vorhandene nach meinen Wünschen umzuschreiben. Nunja, bei der ersten hat alles ganz wunderbar funktioniert (zumindest fast xD), aber bei der Zweiten hab ich wohl einen Fehler gemacht. Leider weiß ich mal wieder nicht welchen und stell deswegen mal hier die nächste doofe Frage Big Grin

Was hab ich falsch gemacht :
Die PHP
Code:
   <?php
   define("IN_MYBB", 1);

   require("global.php");
      global $db, $mybb, $lang, $templates, $parser, $theme, $userfields, $customfields, $profilefields, $field_hidden, $bgcolor, $alttrow;

   require_once MYBB_ROOT."inc/class_parser.php";


   //mannschaftslisten addon by fallen newyork

   //edited by risuena

   require "./inc/config.php";

   add_breadcrumb("besonderheiten", "besonderheiten.php");

   // fid11: besonderheiten
   // mit AND NOT werden Usergruppen ausgeschlossen (z.B, Npc, Adminaccount, Gastaccount) Muss also auch dementsprechend angepasst werden.


   // Okklumentik
   $faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'okklumentik'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Okklumentik Legilimentik%'
      ORDER BY mybb_userfields.fid11 ASC"
      );

   while($result=$db->fetch_array($faceclaim)) {
   $userid = $result['uid'];
   $username = $result['username'];
   $besonderheit = $result ['fid11'];

   $besonderheiten_okklumentik .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }

   // Legilimentik
   $faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'legilimentik'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Okklumentik Legilimentik%'
      ORDER BY mybb_userfields.fid11 ASC"
      );

   while($result=$db->fetch_array($faceclaim)) {
   $userid = $result['uid'];
   $username = $result['username'];
   $besonderheit = $result ['fid11'];

   $besonderheiten_legilimentik .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    // Metamorphmagus
   $faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'metamorphmagus'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Metamorphmagus%'
      ORDER BY mybb_userfields.fid11 ASC"
      );

   while($result=$db->fetch_array($faceclaim)) {
   $userid = $result['uid'];
   $username = $result['username'];
   $besonderheit = $result ['fid11'];

   $besonderheiten_metamorphmagus .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    // Parselmund
   $faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'parselmund'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Parselmund%'
      ORDER BY mybb_userfields.fid11 ASC"
      );

   while($result=$db->fetch_array($faceclaim)) {
   $userid = $result['uid'];
   $username = $result['username'];
   $besonderheit = $result ['fid11'];

   $besonderheiten_parselmund .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    // Animagus
   $faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'animagus'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Animagus%'
      ORDER BY mybb_userfields.fid11 ASC"
      );

   while($result=$db->fetch_array($faceclaim)) {
   $userid = $result['uid'];
   $username = $result['username'];
   $besonderheit = $result ['fid11'];

   $besonderheiten_animagus .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    // Wahrsager
   $faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'wahrsager'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Wahrsager%'
      ORDER BY mybb_userfields.fid11 ASC"
      );

   while($result=$db->fetch_array($faceclaim)) {
   $userid = $result['uid'];
   $username = $result['username'];
   $besonderheit = $result ['fid11'];

   $besonderheiten_wahrsager .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    // Werwolf
   $faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'werwolf'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Werwolf%'
      ORDER BY mybb_userfields.fid11 ASC"
      );

   while($result=$db->fetch_array($faceclaim)) {
   $userid = $result['uid'];
   $username = $result['username'];
   $besonderheit = $result ['fid11'];

   $besonderheiten_werwolf .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    // Veela
   $faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'veela'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Veela%'
      ORDER BY mybb_userfields.fid11 ASC"
      );

   while($result=$db->fetch_array($faceclaim)) {
   $userid = $result['uid'];
   $username = $result['username'];
   $besonderheit = $result ['fid11'];

   $besonderheiten_veela .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    eval("\$besonderheiten = \"".$templates->get("besonderheiten")."\";");
   output_page($besonderheiten);

   ?>
Und das Template:
Code:
   <html>
   <head>
   <title>Besonderheiten - {$settings['bbname']}</title>
   {$headerinclude}
   </head>
   <body>
   {$header}
   <br />
   <center>
   <table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
   <tr><td align="center"><br>
         <div class="headline1">Besonderheiten</div><br>
   <div class="bg_listen-div">
   <br /><center>
<table width="450px">
     <div class="headline1"><a name="1">Okklumentik & Legilimentik </a></div>
    <tr><td valign="top"class="avaliste_abstand">
   {$besonderheiten_okklumentik}{$besonderheiten_legilimentik}</td></tr><br>
     <div class="headline1"><a name="1">Metamophmagus</a></div>
   <tr><td valign="top"class="avaliste_abstand">
   {$besonderheiten_metamorphmagus}</td></tr><br>
     <div class="headline1"><a name="1">Parselmund </a></div>
    <tr><td valign="top"class="avaliste_abstand">
   {$besonderheiten_parselmund}</td></tr><br>
     <div class="headline1"><a name="1">Animagus </div>
   <tr><td valign="top"class="avaliste_abstand">
   {$besonderheiten_animagus}</td></tr><br>
     <div class="headline1"><a name="1">Wahrsager</a></div>
    <tr><td valign="top"class="avaliste_abstand">
   {$besonderheiten_wahrsager}</td></tr><br>
     <div class="headline1"><a name="1">Veela</a></div>
    <tr><td valign="top"class="avaliste_abstand">
   {$besonderheiten_veela}</td></tr><br>
     <div class="headline1"><a name="1">Werwolf</a></div>
    <tr><td valign="top"class="avaliste_abstand">
   {$besonderheiten_werwolf}</td></tr></table></div></center>
   
   <center><br />
   <a href="http://goldentimes.bplaced.net/showthread.php?tid=20" target="_blank"><span style="font-weight: bold;">zu den reservierten Posten</span></a><br />
   <br>
   </div>
   <br>
   </td></tr>
   </table>

       <br><br> &nbsp;
   {$footer}

   </body>

   </html>

Lieben Gruß
Zitieren
#2
Versuche es mal so.

PHP-Code:
<?php
   define
("IN_MYBB"1);

   require_once 
"./global.php";


   require_once 
MYBB_ROOT."inc/class_parser.php";


   
//mannschaftslisten addon by fallen newyork

   //edited by risuena

   //require "./inc/config.php";

   
add_breadcrumb("besonderheiten""besonderheiten.php");

   
// fid11: besonderheiten
   // mit AND NOT werden Usergruppen ausgeschlossen (z.B, Npc, Adminaccount, Gastaccount) Muss also auch dementsprechend angepasst werden.


   // Okklumentik
   
$faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'okklumentik'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Okklumentik Legilimentik%'
      ORDER BY mybb_userfields.fid11 ASC"
      
);

   while(
$result=$db->fetch_array($faceclaim)) {
   
$userid $result['uid'];
   
$username $result['username'];
   
$besonderheit $result ['fid11'];

   
$besonderheiten_okklumentik .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }

   
// Legilimentik
   
$faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'legilimentik'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Okklumentik Legilimentik%'
      ORDER BY mybb_userfields.fid11 ASC"
      
);

   while(
$result=$db->fetch_array($faceclaim)) {
   
$userid $result['uid'];
   
$username $result['username'];
   
$besonderheit $result ['fid11'];

   
$besonderheiten_legilimentik .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    
// Metamorphmagus
   
$faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'metamorphmagus'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Metamorphmagus%'
      ORDER BY mybb_userfields.fid11 ASC"
      
);

   while(
$result=$db->fetch_array($faceclaim)) {
   
$userid $result['uid'];
   
$username $result['username'];
   
$besonderheit $result ['fid11'];

   
$besonderheiten_metamorphmagus .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    
// Parselmund
   
$faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'parselmund'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Parselmund%'
      ORDER BY mybb_userfields.fid11 ASC"
      
);

   while(
$result=$db->fetch_array($faceclaim)) {
   
$userid $result['uid'];
   
$username $result['username'];
   
$besonderheit $result ['fid11'];

   
$besonderheiten_parselmund .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    
// Animagus
   
$faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'animagus'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Animagus%'
      ORDER BY mybb_userfields.fid11 ASC"
      
);

   while(
$result=$db->fetch_array($faceclaim)) {
   
$userid $result['uid'];
   
$username $result['username'];
   
$besonderheit $result ['fid11'];

   
$besonderheiten_animagus .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    
// Wahrsager
   
$faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'wahrsager'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Wahrsager%'
      ORDER BY mybb_userfields.fid11 ASC"
      
);

   while(
$result=$db->fetch_array($faceclaim)) {
   
$userid $result['uid'];
   
$username $result['username'];
   
$besonderheit $result ['fid11'];

   
$besonderheiten_wahrsager .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    
// Werwolf
   
$faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'werwolf'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Werwolf%'
      ORDER BY mybb_userfields.fid11 ASC"
      
);

   while(
$result=$db->fetch_array($faceclaim)) {
   
$userid $result['uid'];
   
$username $result['username'];
   
$besonderheit $result ['fid11'];

   
$besonderheiten_werwolf .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
    
// Veela
   
$faceclaim=$db->query("
      SELECT * FROM mybb_users
      LEFT JOIN mybb_userfields
      ON mybb_users.uid = mybb_userfields.ufid
       WHERE fid11 = 'veela'
      AND NOT usergroup = '1'
      AND NOT usergroup = '3'
      AND NOT usergroup = '5'
      AND NOT usergroup = '6'
      AND fid11 LIKE 'Veela%'
      ORDER BY mybb_userfields.fid11 ASC"
      
);

   while(
$result=$db->fetch_array($faceclaim)) {
   
$userid $result['uid'];
   
$username $result['username'];
   
$besonderheit $result ['fid11'];

   
$besonderheiten_veela .= "$besonderheit - <font style=\"font-size:9px;\">$username</font><br>";
   }
    
eval(
"\$besonderheiten = \"".$templates->get("besonderheiten")."\";");
output_page($besonderheiten);

?>
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#3
Hm... ich glaube der Fehler liegt in dem Template, angezeigt wird es zwar, aber leider nicht an der richtigen Stelle. (siehe Anhang)
Nur hab ich schon dreißigmal verglichen mit dem anderen Template wo alles fuktioniert und keinen Unterschied gefunden bis auf die neu eingesetzten Variablen^^


Angehängte Dateien Thumbnail(s)
   
Zitieren
#4
An deiner Stelle würde ich generell das Template überarbeiten, da es doch recht viele Fehler enthält.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#5
Okay, werde es nochmal von vorne versuchen und hoffe nicht den gleichen Fehler einzubauen xD
Danke Smile
Zitieren
#6
Ich habe eine Liste erstellt wo 4 Profilfelder abgefragt werden, dass klappt auch soweit alles gut.

Die Sortierung habe ich nach fid33 gewählt, dass klappt auch soweit gut, aber da es bei fid33 öfter vorkommt, dass es dort Zahlen doppelt gibt, würde ich zusätzlich gern nach fid31 sortieren und vielleicht sogar eher nach Username statt nach UserID.

Kann mir da jemand behilflich sein?

Code:
$XYZ=$db->query("SELECT * FROM mybb_users LEFT JOIN mybb_userfields ON mybb_users.uid = mybb_userfields.ufid WHERE fid30 = 'ABZ' ORDER BY mybb_userfields.fid33 ASC");

Folgendes hat irgendwie nichts gebracht.
Code:
$XYZ=$db->query("SELECT * FROM mybb_users LEFT JOIN mybb_userfields ON mybb_users.uid = mybb_userfields.ufid WHERE fid30 = 'ABZ' ORDER BY mybb_userfields.fid33, mybb_userfields.fid31 ASC");
Zitieren
#7
Dann versuche es mal statt

"ORDER BY mybb_userfields.fid33 ASC"

so

"ORDER BY mybb_username.fid33 ASC" oder "ORDER BY mybb_username ASC"
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#8
Na ja hauptsächlich geht es mir aber erst mal, dass das Ganze erst nach fid33 sortiert wird und wenn es da zu einer Doppelbelegung kommt, dann dort nach fid31, wenn es dann noch doppelte gibt, dann nach Username.

Hatte es mit: http://sql.lernenhoch2.de/lernen/sql-anf...iter_links eben versucht, aber das funktioniert nicht.

Außerdem werden bei fid33 bzw. mittlerweile fid34, weil ich es neu angelegt habe, da ich dachte der "Fehler" würde dann verschwinden, die Zahlen nicht richtig angegeben. Ich habe Zahlen von 1-39 eingefügt. Da aber dann die 13 vor der 2 kommt, habe ich es auf 02 geändert, was mir auch innerhalb der Auswahlbox angezeigt wird, bei der Ausgabe steht aber wieder nur 2 und somit ist die Sortierung trotzdem falsch.

Bei einem anderen Profilfeld funktioniert es aber mit 01, 02, 03
Zitieren
#9
"ORDER BY mybb_userfields.fid33, mybb_userfields.fid31, mybb_username"
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#10
MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1054 - Unknown column 'mybb_username' in 'order clause'
Query:
SELECT * FROM mybb_users LEFT JOIN mybb_userfields ON mybb_users.uid = mybb_userfields.ufid WHERE fid30 = 'XYZ' ORDER BY mybb_userfields.fid34, mybb_userfields.fid31, mybb_username ASC
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  automatische Liste aus Profilfeld - mycode parsen? Risu 2 1.961 05.04.2014, 12:36
Letzter Beitrag: MrBrechreiz