MyBB.de Forum

Normale Version: Problem bei Auslesen aus Datenbank
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich möchte gerne 2 Datenbankabfragen machen.
Irgendwie klappt der Code nicht richtig, ich würde gerne zu jedem User, geordnet nach "LASTACTIVE" seine FID's anzeigen lassen.
Wäre dankbar bei Hilfe.

Hier der Aussschnitt aus der Abfrage.

PHP-Code:
<?php 


    
global $db$mybb;
    {        
    
      
$query $db->query("

SELECT * 
 FROM `mybb_users`

   ORDER BY `mybb_users`.`lastactive`
 DESC LIMIT 0, 10 "
);
            echo 
'';

          while(
$row $db->fetch_array($query))  


  if(
$mybb->user['uid'] >= 0)




 
$query2 $db->query("SELECT * 
 FROM `mybb_userfields`

ORDER BY .... [hier benötige ich Hilfe]


 DESC LIMIT 0, 1 "
);                 
            echo 
'';

          while(
$row2 $db->fetch_array($query2))  

  if(
$mybb->user['uid'] >= 0
Ich würde zunächst versuchen, die MySQL-Abfrage mit LEFT JOIN zu erzeugen (ähnlich wie hier). Eine MySQL-Abfrage innerhalb einer while-Schleife kann meiner Meinung nach schnell zu Performance-Problemen führen.
Mit LEFT JOIN habe ich es bereits versucht, aber irgendwie komme ich zu keinem Ergebnis, bzw. ohne einer Fehlermeldung.
Bin darin wsl. noch zu unerfahren.

So habe ich es eingegeben:

PHP-Code:
<?php 


    
global $db$mybb;
    {        
    
      
$query $db->query("

                         SELECT u.lastactive, u.uid, u.username, uf.fid3
                         FROM "
.TABLE_PREFIX."users u
                         LEFT JOIN "
.TABLE_PREFIX."userfields uf ON (u.fid3 = uf.fid3)


   ORDER BY `mybb_users`.`lastactive`
 DESC LIMIT 0, 10 "
);
            echo 
'';

          while(
$row $db->fetch_array($query))  


  if(
$mybb->user['uid'] >= 0)


 { 
Probier mal ob das klappt und ob Du damit weiterkommst
PHP-Code:
$query $db->query("SELECT u.*, f.*
    FROM "
.TABLE_PREFIX."users u
    LEFT JOIN "
.TABLE_PREFIX."userfields f ON (u.uid=f.ufid)
    WHERE 1=1
    ORDER BY u.uid DESC, u.lastactive DESC
    LIMIT 0,10"
); 
Willst Du nur auf fid3 zugreifen oder auf alle Userfields?
Code klappt.
Durch den * greife ich ja schon auf alle hinzu, das möchte ich auch..

Vielen Dank nochmal! Smile