nachträgliches ordnen von datensätzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • nachträgliches ordnen von datensätzen

    Hi Leute,
    ich bin gerade dabei ein kleines Script zu schreiben welche eine art Buddy Liste erzeugt. Dies wird in ein CMS eingebunden und von diesem gerendert.
    Das Auslesen etc. klappt alles prima, nur steh ich gerade vor einem Logik Problem. Ich gebe derzeit einfach aus wer alles in der Liste ist und zwar unsortiert. Nun will ich das quasi nachträglich sortieren.. Online oben und Offline drunter.
    bisher sieht das ganze so aus:

    PHP-Code:
    <?php
    if(USER==TRUE){ // nur für Mitglieder
    $text "
    <div class='button' style='width:100%'
    onclick=\"expandit('div_buddy');updatecook('div_buddy');\">
    Anzeigen / Ausblenden</div>"
    // Anfang vom gerenderten Text
    $text .= "<div id='div_buddy' style='display:none'>
    <table style=\"width:100%; border: 0px solid black\">"
    ;
    $tpbd_menu ="Buddy Liste"// Menü Überschrift
    $msicon ="<img src=\"bild.png\" alt=\"Nachricht schreiben\"/>"// Bild
    $sql_ids="SELECT user_friends FROM ".MPREFIX."alternate_profiles 
    WHERE user_id="
    .USERID.""// Buddys auslesen
    $data_ids=mysql_query($sql_ids);
    $friends mysql_fetch_array ($data_ids);
    $string $friends['user_friends'];
    if(empty(
    $string)) 
    $text .= "<tr><td>
    Du hast noch keine Freunde hinzugef&uuml;gt.
    <br />Lade doch welche ein!</td></tr>"
    ; };
    if(!empty(
    $string)) {
    $explode explode("|"$string);
    foreach(
    $explode as $element_id) { 

    $sql_bd="SELECT user_id, user_name, user_image FROM 
    "
    .MPREFIX."user WHERE user_id=".$element_id.""// Buddy auslesen
    $data_bd=mysql_query($sql_bd);
    $buddysmysql_fetch_array ($data_bd);
    $bdsel $buddys['user_id'].".".$buddys['user_name'];
    $replace "-upload-";
    $phrase "$INFO[board_url]/SweetNihon/e107_files/public/avatars/";
    if (!empty(
    $buddys['user_image'])) { $bdimg str_replace($replace
    $phrase$buddys['user_image']); }
    else { 
    $bdimg "empty.png" ; };

    $sql_bdo="SELECT online_user_id FROM ".MPREFIX."online WHERE
     online_user_id='
    $bdsel'"// prüfen ob User Online ist
    $data_bdo=mysql_query($sql_bdo);
    $bdo=mysql_fetch_array ($data_bdo);
    $bdo_explode=explode(".",$bdo['online_user_id']);
    if(!empty(
    $bdo_explode['0'])) 
    $status "<img src=\"/online_small.png\" alt=\"online\"/>"; };
    if(empty(
    $bdo_explode['0'])) 
    $status "<img src=\"offline_small.png\" alt=\"offline\"/>"; };
    if(empty(
    $buddys['user_name'])) { $text .= ""; } 
    else { 
    $text .= "<tr><td align=\"left\">";
    $text .= "<a href=\"user.php?id.".$buddys['user_id']."\">";
    $text .= "<img src=\"phpThumb.php?src=".$bdimg."&hp=25&wp=25\"/>";
    $text .= $buddys['user_name']."</a></td>";
    $text .= "<td align=\"right\">".$status."</td>"
    $text .= "<td align=\"right\">
    <a href=\"pm.php?send."
    .$buddys['user_id']."\">".$msicon."</td>";
    $text .= "</tr>";
    };
    } ;
    };
    $text .= "</table></div>";
     
    $ns->tablerender($tpbd_menu,$text);

    ?>


    Jetzt ist die Frage wie ich das am besten abändere das ich nach der foreach schleife die Einträge nach Online und Offline sortieren kann...
    Zuletzt geändert von bloodyorchid; 11.01.2009, 12:47.
    Pierre Voit ( Freelancer seit 2004 )

  • #2
    ORDER BY status?

    Kommentar


    • #3
      das problem ist...
      die user sind in einer tabelle..
      der online status in ner anderen...
      und die freunde für den user wieder in ner anderen...

      und order by geht soweit ich weiss nur als sql abfrage

      die tabelle von dem online status beinhaltet auch nur die ip die user id den user namen und nen bild glaub ich

      ich hab schon an asort(), ksort() etc gedacht aber dafür muss ich ein array schreiben und ich komm gerade nich dahinter wie ich das am besten mache das der das ordentlich ordnet...
      Zuletzt geändert von bloodyorchid; 11.01.2009, 13:03.
      Pierre Voit ( Freelancer seit 2004 )

      Kommentar


      • #4
        Original geschrieben von bloodyorchid
        das problem ist...
        die user sind in einer tabelle..
        der online status in ner anderen...
        und die freunde für den user wieder in ner anderen...
        Verknüft das alle mit einem LEFT JOIN in eine Abfrage. Solltest du sowieso machen.

        Und das kannste dann 1a ordnen.

        Kommentar


        • #5
          wah joins da muss ich mich wieder erst durchlesen... naja immer wieder was neues ^^... dankeschön erstma

          hab mich ma fix durchgelesen.. ich frag nur gleich ma im vorraus ^^...
          kann es sein das es probleme mit folgendem gibt..

          in der user tabelle und in der erweiterten user tabelle sind die ids gleich.. kein problem soweit.. in der online user tabelle steht aber als is drin

          "userid.username"
          als beispiel
          user_id = 354.bloodyorchid
          Zuletzt geändert von bloodyorchid; 11.01.2009, 13:32.
          Pierre Voit ( Freelancer seit 2004 )

          Kommentar


          • #6
            Original geschrieben von bloodyorchid
            in der user tabelle und in der erweiterten user tabelle sind die ids gleich.. kein problem soweit.. in der online user tabelle steht aber als is drin

            "userid.username"
            als beispiel
            user_id = 354.bloodyorchid
            Wenn es dort kein Feld wo nur die userid drin steht gibt, musst du da auf die SQL String Funktionen zurückgreifen.

            Kommentar

            Lädt...
            X