Ankündigung

Einklappen
Keine Ankündigung bisher.

Mein eigenes kleines Projekt

Einklappen

Neue Werbung 2019

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

  • Mein eigenes kleines Projekt

    Hallo.
    Ich habe vor langer Zeit mal PHP gelernt mittels eines Buchs von Kevin Yank. Ich sage einfach mal was ich machen m�chte:

    Es soll eine Tabelle existieren die folgendes beinhaltet:
    Es soll in einer Tabelle einige Daten gezeigt werden: Es geht um Konsolenbefehle eines Computerspiels. Ich m�chte diese weiter erl�utern. in der Tabelle wird also stehen: der Name der Konsolenbefehls, der Standardparameter den man direkt nach dem Befehl eingeben soll/kann, und dann noch ein gr��eres Textfeld mit der Beschreibung und Empfehlungen. Nat�rlich werden nicht nur ein Befehl, sondern gleich eine ganze Menge Befehle erkl�rt. Es soll also erst eine Tabelle erstellt werden mit dem Inhalt f�r den ersten Eintrag, dann dadrunter eine baugleiche Tabelle mit dem zweiten Eintrag usw usw, bis alle Eintr�ge gezeigt sind. Die Eintr�ge sollen nach dem Alphabet geordnet sein, und zwar soll sich die Reihenfolge nach dem Haupteintrag "Konsolenbefehl" richten.

    Meine MySQL-Tabelle sieht im Kopf folgenderma�en aus:
    ID, befehlsname, sdwert (f�r "standardwert"), beschreibung.

    Ich denke ich mache mir zwei php dateien.
    Eine php datei die einfach alle datens�tze anzeigt (also die seite die der normale surfer sehen soll). also soweit ich weiss muss ich einfach eine while-schleife erstellen. ich baue also erstmal in dieser php datei eine verbindung zu datenbank auf, lasse dann alle datens�tze selektieren (und sie dabei irgendwie nach dem alphabet ordnen). dann die while-schleife, indem ich mysql_fetch_array meiner selectanfrage mache, dann �ber $array["befehlsname" etc.] meine neuen variablen raushole und diese dann echo'n lasse (mitsamt der n�tigen Tags f�r die Tabelle und den zwischenr�umen der tabellen)

    bei der zweiten datei gestaltet es sich schon etwas schwieriger: sie ist die Administrationsseite. Ich habe vermutlich keine Lust auch noch ein Loginscript per php zu machen, drum werd ich zum schutz einfach htaccess benutzen.

    Die adminseite soll eine �bersicht aller konsolenbefehle zeigen. also nicht gleich zu jedem konsolen befehl die ganze tabelle, sondern nur die befehle selbst, alle untereinander (einfach um mehr �bersicht zu haben).

    ganz oben (oder ganz unten, wie man will) soll ein Link sein der "neuen eintrag erstellen" heisst. klicke ich ihn an, werden die ganzen befehle ausgeblendet und es erscheint eine Rohtabelle die eigentlich so aussieht wie die vielen Tabellen mit Inhalt die der End-benutzer sieht, nur dass anstatt des Texts eben Eingabefelder da sind mittels denen ich einen neuen Datensatz erstellen kann. klicke ich dann auf "absenden" wird der neue dateneintrag erstellt. man kehrt zur�ck zur haupt-adminseite.

    rechts neben jedem befehl soll es zwei links geben: "�ndern" und "l�schen". klickt man auf l�schen, wird der Konsolenbefehl (und auch die dazugeh�rigen werte wie "sdwert" und "beschreibung") gel�scht. klickt man auf "�ndern", so wird die seite die ich vorhin beschrieben haben (die zum Neu-Erstellen eines Datensatzes) ge�ffnet, allerdings sind die Felder bereits ausgef�llt, eben mit den Werten die der Datensatz den ich �ndern will, bereits hat. Ich kann dann in den Feldern �nderungen vornehmen und diese einfach speichern.

    soweit das Konzept.
    also eigentlich glaube ich, dass ich genug weiss, um das alles selbst zu coden. habe durch das Kevin Yank Buch auch viel Unterst�tzung . "Schwierig" k�nnte f�r mich die Umstellung auf die SuperGlobal irgendwas-dinger werden, oder auch sonst k�nnte ich irgendwo h�ngen bleiben.

    Was mir zun�chst mal auff�llt: bei der adminseite werde ich eine ganze menge Fallunterscheidungen machen m�ssen. also hier w�ren das:
    "user will neuen eintrag machen>Tabelle mit leeren Formular zeigen"
    "user will einen Eintrag �ndern>>Tabelle mit bereits ausgef�lltem Formular zeigen"
    "user hat nichts spezielles gemacht>>einfach eine auflistung der befehle zeigen"
    "user hat auf Absenden f�r einen neuen/ge�nderten Eintrag geklickt>>soll auf die Standard-adminseite zur�ckgeschickt werden (wobei es auch hier dann den unterschied gibt dass entweder der update befehl oder insert befehl ausgef�hrt wird)"
    "user hat auf den 'löschen'-link neben einem eintrag geklickt >> Eintrag soll gelöscht werden und man gelangt auf die hauptseite"

    das sind vorerstmal alle Fälle die mir einfallen. jetzt stellt sich mir die Frage: wie macht man solche unterscheidungen "Konkret" (also codebeispiel?)

    und wie löse ich folgendes codetechnisch:
    a) ich erstelle für jeden Fall einen eigenen abschnitt in der php datei und schreibe die kompletten aktionen die zu tun sind, also auch droppen/updaten/inserten und danach anzeigen der standardseite bei jedem abschnitt rein - oder...
    b) am anfang der php datei lasse ich zunächst überprüfen, ob die seite mit den formularen geöffnet wurde, falls ja steht in der if schleife am ende "exit()" damit die normale auflistung der befehle nicht angezeigt wird. danach folgen die "script soll beitrag gegebenenfalls löschen/updaten/inserten, da auf einen löschen link, bzw auf einen Absenden/Updaten button geklickt wurde" und danach die normale auflistung des codes (zu der es ja nur kommt wenn das php script nicht ge-exit'ed wurde). funktioniert das ? istdas besser so ?

    Jo, sorry is ne Menge info auf einmal ^^. Ich möchte einfach Feedback hören ob ich das alels soweit richtig geplant habe, ob ihr tipps habt usw.

    MfG

  • #2
    ok, also wie ich es vorausgesagt habe hänge ich am code fest:

    PHP-Code:
    <style>
    #uebertext   { font-size:13px; padding-left:5px;}
    #haupttext {font-size:10px; padding-left:5px;padding-top:2px;padding-bottom:2px;}
    #uebertext2   { font-size:12px;}
    </style>
    <?php
    $conn
    =mysql_connect("localhost","***","***");
    if (
    $conn) {
        echo (
    "Erfolgreich zu MySQL verbunden!
    "
    );
    }

    if (@
    mysql_select_db("***"))
    {
        echo (
    "DB gefunden!");
    }

    ?>
    ....
    <?php //Erstellung der while-Schleife
    $ergebnis=mysql_query("SELECT id, name, sdwert, beschr, empf FROM tunings");

    while (
    $row mysql_fetch_array($ergebnis) )
    {
    $namen $row["name"];
    $standardwert $row["sdwert"];
    $beschreibung $row["beschr"];
    $empfehlung $row["empf"];
    echo 
    "<table style="border-collapse:collapsecolor#fff;" align="center" width="650">"; //echo für zeile eins, meines wissens nach korrektes syntax, interpreter macht aber alarm
    echo "<tr><td width="78%" height="20" align="left" valign="top" bgcolor="#335A6E" style="border:1px solid #000;" align="center"><div id="uebertext">[b]" . $namen "[/b]</div></td>"; 
    //echo für zeile 2. Syntax korrekt. WÜRDE aber sicherlich auch fehler geben. evtl kommt php mit der css direktformatierung und deren semikolons nicht zurecht?
    //ich versuche es nicht mehr weiter, da zwecklos
        
    <th width="22%" height="20" align="left" valign="top" bgcolor="#335A6E" style="border:1px solid #000;"><div id="uebertext">[b]Standardwert:[/b$standardwert</div></td>
        </
    tr>
        </
    table>
        
        <
    table style="border-collapse:collapse; color: #fff;" align="center" width="650">
        <
    tr>
        <
    td align="left" valign="top" bgcolor="#2B3F50" style="border:1px solid #000;"><div id="haupttext">
        <
    div id="uebertext2">[b]Beschreibung:[b]</div>

        
    $beschreibung.
        </
    td></tr>
        <
    tr><td align="left" valign="top" bgcolor="#2B3F50" style="border:1px solid #000;">
        <
    div id="haupttext">
        <
    div id="uebertext2">[b]Empfehlung:[b]</div>

        
    $empfehlung    
        
    </div></td></tr>
        </
    table>
    }
    ?>
    ...
    ich habe entsprechende vermerke in form von kommentaren gemacht

    MfG

    Kommentar


    • #3
      *g*
      evtl kommt php mit der css direktformatierung und deren semikolons nicht zurecht?
      also....du kannst nicht (z.b.):
      PHP-Code:
      <?php
      echo "<input type="text">";
      ?>
      benutzen!!

      damit interpretiert der parser den echo befehl genau bis: "<input type="

      benutze:
      PHP-Code:
      <?php
      //1. möglichkeit:
      echo '<input type="text">';
      //2. möglichkeit:
      echo "<input type=\"text\">";
      ?>
      du hast eh ein riesen chaos in deinem code (php <--> html)

      stego87

      Kommentar


      • #4
        ach ja...innerhab von phptags kannst du nicht einfach html hinscheiben

        alles innerhalb von <?php inhalt ?> wird an den php-interpreter geschickt und was will der mit html...klar macht der ein error

        mein tip: lern PHP

        stego87

        Kommentar


        • #5
          ah, es hat geklappt in dem ich die Anführungsstriche durch ' ersetzt habe

          mir kam das zuerst nich in den sinn da ich ein tutorial mal durchgemacht hatte, dass das nicht beinhaltet hat und es trotzdem funktioniert hatte

          naja, matrix halt ;D

          Kommentar


          • #6
            @NameZero912:
            Kosten Zeilenumbrüche bei Deinem Webhoster extra?
            Wenn nicht würde ich dringend mal empfehlen, die super extra mega langen und damit unlesbaren Zeilen mal zu kürzen.
            Dann sieht man die im Editor auch wieder ganz und hier sieht es auch nicht so besch***en aus.

            Wär nett, wenn Du das mal editieren könntest.
            **********************************
            Nein, ich bin nicht die Signatur.
            Ich putze hier nur.
            **********************************

            Kommentar


            • #7
              @Gerhard: habs versucht etwas lesbarer zu machen ^^

              nun eine ganz andere frage:
              ich baue mir zur zeit die administrations-php-datei. man kann dadurch sowohl neue einträge erstellen als auch welche editieren.
              In die großen formularfelder, die den Hauoptbestandteil ausmachen, werden aber auf jeden fall Zeichen wie ", ä, ü, ö, ß vorkommen.
              ich weiss bis jetzt um die funktionen html specialchars und htmlentities, bin mir aber nicht sicher ob, und vor allem an welcher stelle ich sie einbauen soll.

              ich muss dazu sagen, dass ich ja die einträge gegebenfalls wieder editieren möchte, udn ich habe dann keine lust, mich dann auf der editseite im komischen html-schlamassel wiederzufinden .

              Was ich soweit sagen kann ist: wenn ich einen Eintrag über das Formular mache, sieht der, wenn ich ihn mir dann in phpmyadmin anschaue, eigentlich korrekt aus. zeilenumbrüche, ö,ä,ß,ü," usw. werden da auch richtig dargestellt.
              wenn ich es aber dann in einer php datei ausgeben lassen stimmt zwar die darstellung dieser sonderzeichen, allerdings stehen diese auch als solche im quelltext, und nicht etwa in form von &ouml; sondern "ö" etc.
              Ausserdem wurden die Zeilenumbrüche nicht übernommen, ka wieso.

              Kommentar


              • #8
                zeilenumbrücheübernehmen: nl2br()

                Kommentar


                • #9
                  vielen dank

                  hauptproblem aus meinem anderen thread habe ich übrigens beheben können. war letzendlich (neben ein paar anderen fehlern) nur eine vertauschung von GET mit POST

                  Kommentar

                  Lädt...
                  X