Beiträge von Lunatic

    Hallo und herzlich willkommen bei meinem zweiten Schleifentutorial,

    ich hatte eh irgendwann vor meine kleine Tutorialreihe fortzusetzen und der Auslöser zur Entstehung dieses Tutorials war der Wunsch des Users Juky.


    [SIZE="5"]Vorwort[/SIZE]
    Wer mein kleines Tutorial über die For-Schleife gelesen hat dürfte auch mit der Foreach Schleife keine Probleme haben.


    [SIZE="5"]Die Foreach-Schleife[/SIZE]
    Einige von euch haben bereits Assoziationen was die Schleife betrifft, denn sie macht genau das was der Name sagt: "Foreach (= Für jedes)..."
    Nun, ihr wollt bestimmt gerne wissen was dass jetzt nun bedeuten soll. Schlicht und einfach: "Für jedes Element eines Arrays".

    Das ist die Foreach Schleife. Die Schleife wird so oft durchlaufen, wie Elemente im Array sind. Einige von euch denken sich jetzt: "Super, geht auch mit einer For-Schleife". Ich vergreife mich zur demonstration einfach mal an dem kleinen Schnipsel aus dem Forschleifen-Tutorial:

    PHP
    <?php
    
    
    $array = array(1, 29, 511, 5, 78);
    for($i = 0; $i < count($array); $i++){
    	echo $array[$i]."<br />";
    }
    ?>

    Hier wird genauso die Schleife so oft durchlaufen, wie das Array Elemente hat und auch den Wert jedes Array-Elements kann man ausgeben. Also zum Teufel mit der ForEach-Schleife... oder etwa nicht?

    [SIZE="5"]Ja wie denn jetzt?[/SIZE]

    Nunja, obiges war nur theoretisches Geschwafel, aber wir sind noch nicht dazu gekommen uns die Syntax der Foreach-Schleife anzusehen, welcher nämlich de facto so lautet:

    PHP
    $array = array(1,5,9,7,2);
    foreach($array AS $key => $value){
       //mach was
    }

    Okay, nun zur Erklärung. Der Foreachschleife wird zunächst ein Array übergeben. Dieses Array wird dann intern kopiert und dieses quasi neue Array ist, womit Schleifenintern gearbeitet wird.

    Nun, was bedeutet dieses

    Zitat

    $key => $value

    ?
    Ganz einfach, dies ist quasi die Beziehung zwischen dem Array Index und dem dazugehörigen Wert. In unserem Beispiel würde der $array[0] zum Wert 1 gehören, $array[1] zum Wert 5, etc... und genau dies sagt das Statement aus.

    Nur um es erwähnt zu haben, man kann das $key => weglassen und nur

    Zitat

    $array AS $value

    schreiben. In dem Fall hätten wir dann aber keine Beziehungen zu den Array-Indizes und wir hätten nur die Werte. Dadurch würde uns allerdings ein zentrales Feature der ForEach-Schleife durch die Lappen gehen.

    Anm.: $key => $value ist kein vorgeschriebener Syntax, das AS dagegen schon. Auch sowas ist denkbar: foreach($array AS $osama => $binladen)

    [SIZE="5"]May the force be with you[/SIZE]

    Wer ein bisschen Ahnung von PHP hat, dem dürften Assoziative Arrays kein Fremdwort sein. Aber hier ein kurzes Beispiel der Vollständigkeit halber:

    PHP
    $array = array("Name" => "Peter", "Alter" => 26, "Wohnohrt" => "München");

    Assoziative Arrays sind einfach Arrays, deren Indizes nicht einfach fortlaufend numerisch sind, sondern einen beliebigen Namen haben können.

    Jetzt dürfte es bei einigen klick gemacht haben, was den Vorteil von ForEach-Schleifen betrifft. Wir können uns Array Indizes mit ausgeben lassen.

    PHP
    $wohnorte['Peter'] = 'München';
    $wohnorte['Anna'] = 'Hawai';
    $wohnorte['Paul']  = 'Mogadischu';
    $wohnorte['Jan']   = 'Hamburg';
    $wohnorte['Felix'] = 'der Mülltonne';
    
    
    foreach($wohnorte AS $key => $value){
      echo $key.' wohnt in '.$value.'\n <br />';
    }

    Die Ausgabe wäre nun dementsprechend:

    Zitat


    Peter wohnt in München
    Anna wohnt in Hawai
    Paul wohnt in Mogadischu
    Jan wohnt in Hambrug
    Felix wohnt in der Mülltonne

    Wie ihr seht haben wir der Schleife in keinem Wort gesagt wo sie anfangen soll. Sie hat vollautomatisch einfach alle Elemente des Arrays durchlaufen und wir haben auch den Index des jeweiligen Wertes herausbekommen.

    Diese Schleife werdet ihr in der Praxis eigentlich ziemlich oft antreffen um ein bestimmtes Array zu beinflussen.

    Wie immer: Falls ich hier was vergessen habe, oder ihr Fehler entdeckt, bitte melden.

    Bitte seid so fair und kopiert diesen Guide nicht in alle Welt herum. Es ist ein exklusiv Werk für MMORPG-Core und so soll es auch bleiben. Wenn manche von euch sich aber schon mit fremden Federn schmücken müssen, gebt wenigstens einen Link zu der Qulle des Guides an.


    ~Lunatic

    Zitat

    Haste nach dem Root Restart auch den Computer Name so Angepasst ?

    Istanz name auch genau Gleich ? Ansonsten, wüsste ich nich was falsch sein Könnte :/

    Was hat das bitte damit zu tun, dass PHP die Funktion mssql_pconnect nicht finden kann.
    Lad dir PHP neu runter. Falls du kA hast wie das funktioniert, dann setz Xampp neu auf, oder was auch immer du für nen webserver nutzt.

    Also Felix, da du jetzt genug gute Kritik bekommen hast und die User immer noch viel zu tief in dein Rektum eindringen, obwohl dieser Platz für mich reserviert ist, hol dich dich runter von Fantasy Island.

    also die download-, der play now- und der Go Button sind total ungelungen imo. Außerdem gefällt mir das logo nicht. Der Berg links mit der Seifenblase is allerdings total geil.

    Die Blätter oben rechts in der Loginbox passen da iwie nich so hin, die in der Ranking sind aber geil. Ansonsten, am Content hab ich nix auszusetzen.

    Achja =D Danke für den Liebesbeweis. Ich liebe dich auch =D

    Wer hat denn die MSSQL-Klasse gecodet, schaut ziemlich gut aus aufn ersten Blick.

    @Kurai: Er hat die Daten doch noch gar nicht gefecht, da kann er auch keine Daten zurückgeben soweit ich das sehe.

    Außerdem holst du dir doch eh nur einen Datensatz und wenns der erste is, dann brauchste auch kein Order By, nur wenn mehrere Datensätze unsortiert drin stehen.
    Ich lass in folgendem Beispiel das Order by einfach weg.

    Achja, außerdem weiß ich nicht ob die Klasse ne fetching methode hat, deshalb benutz ich nur mal die PHP Funktion dafür, falls ihr ne Fetching Methode habt solltet ihr diese benutzen.

    PHP
    public function peak(){
            self::$db->select_db("LOGGING_01");        
             $query = self::$db->query("SELECT TOP 1 number FROM [LOG_USER_CNT_TBL]");
             $data = mssql_fetch_row($query);
            return $data[0];
        }

    Ich benutze fetch_row selten daher kenn ich die genaue Struktur nicht. Naja Probiers einfach mal aus. Ansonsten lass uns mal die ganze Klasse sehen, da können wir eher was machen.

    ~Lunatic

    Zitat

    ich brauche mich nicht erst schlau zu machen in HTML oder CSS, denn ich beschäftige mich damit seit Jahren

    Du brauchst nich zu lügen =)
    Es is okay, wir helfen auch so. Aber schon die Headerinfos zeigen das Gegenteil. Keine HTML Version angegeben, wenns XHTML sein sollte fehlt der Title. Bei Bildern fehlt der Alt-Tag.

    Achja btt:
    Deine ganze Umsetzung is ein wenig umständlich.
    Du könntest ja einfach nen Background img nehmen und das auf 100% width einstellen. Die Prozente beziehen sich nämlich auf das enthaltende Element und wenn keines da is, dann eben auf die Breite der Auflösung. Wenn du ein Extrem großes BackgroundImg nimmst, dann entsteht bei der automatischen Skalierung auch kein Qualitätsverlust =)

    ~Luna

    Also von exXe ist mans gewohnt.
    50 Abwesenheitsthreads und 100 leavethreads und trotzdem kommt er immer wieder zurück wie ein Schoßhündchen.

    Bei Chrissi isses allerdings Schade. Dadurch hatte mmorpg-core den anderen Boards was voraus und zwar einen Juristen.

    Naja viel Glück euch beiden

    ~Luna

    Du möchtest das Script aber nicht ernsthaft verwenden oder :>?

    Das is ja geradezu eine Einladung für ScriptKiddies. Du maskierst keine in MSSQL-Queries gültigen Zeichen.

    Wenn es die WebCreate Prozedur automatisch macht, okay. Ansonsten ist das geradezu eine Einladung für SQL Injections.

    ~Lunatic

    Okay bevor das geclosed wird möchte ich allerdings noch eine Sache loswerden, da sich potentielle Linux User sonst abschrecken lassen.

    Zitat

    Leider muss du für Linux jedes Programm speziell downloaden, also du kannst nicht einfach irgendeins rausnehemen und sagen das will ich jetzt aber. Sondern du musst genau für Linux hergestellte Programme verwenden die meistens sehr teuer sind.

    Die meisten nennenswerte Programme laufen auch auf Linux. Außerdem ist es schlichtweg falsch für Linux hergestellte Programme zu verwenden welche meist sehr teuer sind.
    Denn das Unix Projekt hat es sich zum Ziel gemacht den OpenSource Geist zu fördern.
    Man denke mal an OpenOffice, Gimp etc...

    Außerdem hast du die Möglichkeit Windows zu Emulieren.

    ~Lunatic

    Zitat

    Du brauchst MSSQL <-> PHP keine Prozeduren. Geht auch alles ohne.


    Sach ma, hast du deine Tage oder wieso bist du so nett bei so einem Schuntpost?

    Zitat

    Labber kein BS
    Du weißt doch nichtma Welche Prozeduren man benötigt, und sowas kommt ganz bestimmt nicht in einem TUT vor.

    Mädel, ich glaub du bist derjenige der sich ein wenig mit PHP beschäftigen sollte und Bullshit labert. Weißt du eigentlich das eine Prozedur auch nur aus Queries besteht und man eben diese mit PHP genauso ausführen kann.

    Achja, irgendjemand meinte: such dir ein MSSQL Tut und du kannsts in 10 Minuten.
    Das is nicht richtig, wenn man sich vorher bereits mit Datenbanken z.B. MySQL auskennt ist es kein Problem. Aber von Grund auf ne Datenbankverwaltungssprache zu lernen ist auf jeden Fall keine Sache von 10 minuten.

    ~Lunatic

    Zitat

    nicht auf die Fehler zu achten sondern auf das positive.


    ... das ich bei dir vergeblich suchte :D

    Also wenn ich dich richtig verstehe möchtest du das die Leute aufhören pServer zu machen?

    ALSO LIEBE USER, BITTE HÖRT AUF pSERVER ZU MACHEN UND DIE DIE BEREITS ONLINE SIND MüSSEN ABGESCHALTET WERDEN SOFERN SIE SCHLECHT SIND

    ~Lunatic

    Ich setze voraus, dass du die Fertigkeiten dazu hast selbst ein Panel zu schreiben.
    Ich würde mich nicht trauen ohne Erfahrung für soetwas in ein Forum zu posten ohne jegliche Fähigkeiten im Gebiet. Naja ich setz sie erstmal voraus.

    Du connectest zu deiner mssql datenbank.
    Danach fetcht du die Userdaten des jeweiligen Users. Dabei ist dann auch die Anzahl der Penya. Dann sollte die ITEM_SEND_TBL (oder wie auch immer, hab sie so in Erinnerung) von Bedeutung sein.
    Dies scheint imo die einfachste und unkomplizierteste Möglichkeit zu sein Items zur Laufzeit an den User zu senden.
    Alles andere is selbsterklärend, ansonsten:

    PHP-Einfach.de - PHP lernen leicht gemacht
    Quakenet/#php Tutorial - de - Einleitung
    PHP - SELFPHP: Version 5.3.3 Befehlsreferenz - Tutorial &ndash; Kochbuch &ndash; Forum zum Thema PHP

    Das sollten gute Anlaufstellen sein ...

    Zitat

    Saufen ist bei mir tabu.


    Womit hat das zu tun. Religion, Einstellung?

    Ich find das ziemlich vorbildich. Ich weiß nicht wie alt du bist, aber wenn du so ein Jungspurd bist wie die meisten von uns dann ist das eine ziemlich löbliche Einstellung ; )

    ~Lunatic

    Äähm, darf ich dazu sagen... eh.. also das is nich wegen dem saufen... ähm, dass is die Gesellschaft die ich so mag... *räusper*

    Nein ernsthaft mein Freundeskreis geht eigentlich über Schule & Coden. Ganz oben steht zwar KIZ in der Hierarchie, dass is aber ne andere Sache =D

    Coden is halt ne Motivationssache :D Ich bin Saisonarbeiter. Manchmal hab ich extrem Bock manchmal raste ich aus wenn ich das Icon meiner PHP Entwicklungsumgebung sehe =D

    ~Lunatic

    Gutes Referat ; )

    Bushido suxXt allerdings. Damals einen auf "Alta isch bin hier gheddo, Berlin is voll craZz. Alle knallen sich gegenseitig ab und dealen mit Crack an jeder Ecke". Es war damals schon beschissen und jetzt wo er populär ist passt er sich dem Mainstream an.

    Der is dem Kommerz genauso verfallen wie Sido. Das ist echt peinlich ...

    Zu guter letzt noch ein bisschen Werbung für K.I.Z
    Es is einfach gute Musik. Die Texte sind genial. Pure Gesellschaftskritik in Ironie & Sarkasmus verpackt. Es ist einfach revolutionär wie stark die vom HipHop-Klischee abweichen.

    ~Lunatic

    Morgen kommt mein lang ersehntes K.I.Z T-Shirt mit dem ich meinen Geburtstag nachfeiern werde. Abends ne kleine Kneipentour. Anschließend werde ich stockbesoffen und todmüde ins Bett fallen. Am Samstag dann grillen und die Nacht dann durchcoden O: . Am Sonntag ausschlafen und mich mental auf die Schule vorbereiten indem ich code :A

    Gegen nen kleinen Obolus mach ich dir da gern was.
    Kriegst ne sichere Website, OOP coded, TemplateSystem (kannst ohne weitere PHP Kentnisse schnell neue Designs reinbauen) Und was du alles so brauchst.

    Mach nen Preisvorschlag und ich bin dabei ;O

    ~Lunatic