Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-04-2011, 04:49   #1 (permalink)
Neuer User
 
Benutzerbild von ZoraDrake
 
Registriert seit: Mar 2011
Beiträge: 22
Neue Farbe einfügen

Hey Leute,

ich mal wieder...
Ich sitze nun schon die ganze Nacht dran in meinen Chat
eine Neue Farbe einzubauen.
Es geht darum, dass wenn ein Admin etwas Schreibt, dann soll nur sein Text in Einer Farbe angezeigt werden. (Habe in der CSS Gold erstmal genommen)

Erstmal die Daten, die benötigt werden:
$color = "guild"; <--- Die Farbe aus der CSS nehmen
$_SESSION['admin'] == 1 <--- Ob man Admin ist (In dem fall: Ja)
.$worldprefix."accounts.account_isadmin, <--- Der Datenbank eintrag
Sollten weitere angaben benötigt werden, dann schreibe ich Sie gern dazu.

Und hier der Code:
PHP-Code:
<?php
error_reporting
(0);
session_start();
include(
"config.php");
include(
"classes.php");
include (
'charchk.php');
include(
"../langs/".$_SESSION['lang'].".chat.inc.php");

//AREA UND AREADATE BESTIMMEN
$sql "SELECT ".$worldprefix."chars.char_area,
"
.$worldprefix."chars.char_areadate
FROM "
.$worldprefix."chars
WHERE "
.$worldprefix."chars.id = ".$_SESSION['charid'];

$query mysql_query ($sql);
$result mysql_fetch_row ($query);

$chararea $result[0];
$charareadate $result[1];


$sql "SELECT ".$prefix."chat.*, 
                             "
.$worldprefix."chars.char_name,
                             "
.$worldprefix."guilds.guild_tag 
                FROM "
.$worldprefix."chars
                LEFT JOIN "
.$prefix."chat ON ".$worldprefix."chars.id = ".$prefix."chat.chat_sender
                LEFT JOIN "
.$worldprefix."guilds_members ON ".$worldprefix."guilds_members.member_memberid = ".$prefix."chat.chat_sender
                LEFT JOIN "
.$worldprefix."guilds ON ".$worldprefix."guilds.id = ".$worldprefix."guilds_members.member_guildid
                WHERE "
.$worldprefix."chars.char_isle LIKE '".$_SESSION['isle']."'
                AND (("
.$prefix."chat.chat_receiver = ".$_SESSION['charid']." AND ".$prefix."chat.chat_log = 1) 
                        OR ("
.$prefix."chat.chat_receiver IS NULL AND ".$prefix."chat.chat_log = 0 AND ".$prefix."chat.chat_area = ".$chararea.")
                        OR ("
.$prefix."chat.chat_receiver = ".$_SESSION['charid']." AND ".$prefix."chat.chat_log = 0))
                AND "
.$prefix."chat.chat_date > ".$charareadate."000
                ORDER BY "
.$prefix."chat.id DESC
                LIMIT 20"
;
/*if($_SESSION['admin'] == 1)
{
echo $sql;
}*/


$dbresult mysql_query($sql);
if (!
$dbresult) {
   die(
'Ungueltige SQL-Query.');
}


// Datensätze auslesen und formatieren

$i=0;
while(
$data mysql_fetch_assoc($dbresult))
 {
  
$result_array[$i] = $data;
  
$i++;
 }
$result_array_reverse array_reverse($result_array);

 
foreach(
$result_array_reverse as $row)
{
    if(!empty(
$row["guild_tag"]))
  {
      
$row["char_name"] = "[".$row["guild_tag"]."]".$row["char_name"];
  }    
  
    
$log 0;
    
$nomes 0;
    
    if(
$row["chat_receiver"] == $_SESSION["charid"] && isset($row["chat_guild"]) && $row["chat_guild"] == 1)
    {
        
$color "guild";
    }
    elseif(
$row["chat_receiver"] == $_SESSION["charid"] && isset($row["chat_party"]) && $row["chat_party"] == 1)
    {
        
$color "party";
    }
    elseif(
$row["chat_receiver"] == $_SESSION["charid"] && isset($row["chat_priv"]) && $row["chat_priv"] == 1)
    {
        
$color "priv";
        
$playername explode('"'str_replace('/priv "'"",$row["chat_message"]));
        
$row["chat_message"] = $playername[1];
        
        
$row["char_name"] = $chatlang['from']." ".$row["char_name"];
        
        if(
$row["chat_sender"] == $_SESSION["charid"])
        {
            
            
$row["char_name"] = $chatlang['to']." ".$playername[0];
            
            
$replace '/priv "'.$playername[0].'" ';
    
            
$row["chat_message"] = str_replace($replace"",$row["chat_message"]);
        }
    }
    elseif(
$row["chat_all"] == && $chararea == $row["chat_area"])
    {
        
$color "sender";
    }
    elseif(
$row["chat_log"] == && $row["chat_sender"] == $_SESSION["charid"])
    {
        
$log 1;
    }
    else
    {
        
$nomes 1;
    }
     
    if(
$nomes == 0)
    {     
      echo 
'<span class="'.$color.'"><b>';
    
      
      
      if(
$log != 1)
      {
          echo 
$row["char_name"]; //ECHO CHARNAME
          
echo "</b>:";
      }
      
      echo 
" ".$row["chat_message"]."</b></span>";
      
      echo 
"<br>";
      

}
}
mysql_close($dblink);
?>
Tut mir leid, wenn ich hier den ganzen Code poste, aber ich weiß echt nichtmehr weiter. Habe mehrere Sachen ausprobiert, aber nichts davon hat geklappt.
(Immerhin habe ich hinbekommen, dass der Admin alles in Gold sieht und alle anderen normal )

Ich hoffe sehr, dass mir jemand helfen kann...
Bitte...

mfg,
Zora
ZoraDrake ist offline   Mit Zitat antworten
Alt 09-04-2011, 11:12   #2 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
dann sei doch erstmal so nett, und bau folgende Ausgabe in dein SQL-Query ein

PHP-Code:
$worldprefix."accounts.account_isadmin

//hier einbauen:
$sql = "
SELECT ".$prefix."chat.*, 
                             
".$worldprefix."chars.char_name,
                             
".$worldprefix."guilds.guild_tag 
                FROM 
".$worldprefix."chars
                LEFT JOIN 
".$prefix."chat ON ".$worldprefix."chars.id ".$prefix."chat.chat_sender
                LEFT JOIN 
".$worldprefix."guilds_members ON ".$worldprefix."guilds_members.member_memberid ".$prefix."chat.chat_sender
                LEFT JOIN 
".$worldprefix."guilds ON ".$worldprefix."guilds.id ".$worldprefix."guilds_members.member_guildid
                WHERE 
".$worldprefix."chars.char_isle LIKE '".$_SESSION['isle']."'
                
AND ((".$prefix."chat.chat_receiver ".$_SESSION['charid']." AND ".$prefix."chat.chat_log 1
                        OR (
".$prefix."chat.chat_receiver IS NULL AND ".$prefix."chat.chat_log AND ".$prefix."chat.chat_area ".$chararea.")
                        OR (
".$prefix."chat.chat_receiver ".$_SESSION['charid']." AND ".$prefix."chat.chat_log 0))
                AND 
".$prefix."chat.chat_date ".$charareadate."000
                ORDER BY 
".$prefix."chat.id DESC
                LIMIT 20
"; 
da bedarf es wohl noch eines passenden JOINs auf $worldprefix.accounts.
keiner von uns hier kennt deine DB-Struktur.

Anmerkungen:
  • sicher, dass du dort OUTER-Joins brauchst?
  • in der DB, ok, aber in deinem sonstigen Code solltest du Boolsche Zustände auch Boolean deklarieren (true||false), und nicht 0||1
  • und den letzten Block solltest du folgendermassen ändern:
    PHP-Code:
    if($nomes == 0)
    {     
        echo 
    '<span class="'.$color.'">';
        
        if(
    $log != 1)
        {
            echo 
    '<b>'$row["char_name"] .'</b> '//ECHO CHARNAME
        
    }
        
        echo 
    $row["chat_message"] .'</span><br>';

    ich hab den Bold-Tag und das Leerzeichen vor $row["chat_message"] in die innere Bedingung verschoben, da sie von der Logik her nur ausgegeben werden müssen/sollen, wenn auch der Teil dazwischen ausgegeben wird.
__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (09-04-2011 um 11:16 Uhr)
thomas_E ist offline   Mit Zitat antworten
Alt 09-04-2011, 12:10   #3 (permalink)
Neuer User
 
Benutzerbild von ZoraDrake
 
Registriert seit: Mar 2011
Beiträge: 22
Zitat:
dann sei doch erstmal so nett, und bau folgende Ausgabe in dein SQL-Query ein
Wie ich es auch vorher probiert habe. Sobald ich an der SQL-Querry was ändere, bekomme ich die Meldung: Ungueltige SQL-Query.
Selbst wenn ich es danach wieder rückgängig mache, bekomme ich den Fehler weiterhin

Habe es hier eingesetzt:
PHP-Code:
$sql "SELECT ".$prefix."chat.*,  
                             "
.$worldprefix."chars.char_name, 
                             "
.$worldprefix."guilds.guild_tag,
                             "
.$worldprefix."accounts.account_isadmin
                FROM "
.$worldprefix."chars 
Zitat:
da bedarf es wohl noch eines passenden JOINs auf $worldprefix.accounts.
keiner von uns hier kennt deine DB-Struktur.
Wenn du mir sagst, wie ich die aus der Datenbank nehme...
accounts/account_isadmin <-- Nur darin wird geprüft ob man Admin ist. Woanders nicht.

Zitat:
sicher, dass du dort OUTER-Joins brauchst?
Weiß ich nicht. Wurden von meinem Vorgänger eingefügt.

Zitat:
in der DB, ok, aber in deinem sonstigen Code solltest du Boolsche Zustände auch Boolean deklarieren (true||false), und nicht 0||1
Ja, wäre wohl sinnvoller =)

Zitat:
und den letzten Block solltest du folgendermassen ändern:
Geändert und Funktioniert. Danke.
ZoraDrake ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ebenen kopieren und in neue datei einfügen mashenka Flash Einsteiger 5 18-08-2006 16:55
neue Seite einfügen digi-magic Flash Einsteiger 2 24-07-2006 11:59
Sound von Videos wegschneiden und neue Einfügen! Maff 3D 2 05-04-2004 15:54
Neue Farbe => Symbole nicht verschiebbar? thyl Flash 4 und Flash 5 2 13-01-2004 08:41
NETTREK-Yugop: neue mc's einfügen *arg* Astalavista Flash 4 und Flash 5 1 11-06-2002 22:28


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:21 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele