tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
905
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JamesT JamesT ist offline Mitglied Gold
    Registriert seit
    Jul 2004
    Beiträge
    112
    Hallo zusammen,

    erstmal vorab ich suche in diesem Thread nicht nach einer Problemlösung ich suche
    einfach nach Tipps von euch wie ich es besser machen könnte.

    Kurz zu mir, dies ist mein erster Versuch PHP zu programmieren, ich habe mich vorher
    durch viele Threads dieses Forums gekämpft, Tutorials gelesen, das PHP Handbuch im
    Internet und und und... Mit den gesammelten Informationen habe ich dann eine
    Druckerdatenbank programmiert, in der man geteste Drucker und Informationen zu deren
    Eigenschaften, Schnittstellenkonfigurationen etc. eintragen, löschen, bearbeiten und
    suchen kann.

    Nun habe ich folgende bitte an euch, ich bin dabei PHP zu lernen, und daher würde
    ich es klasse finden, wenn sich einige von euch ein bisschen Zeit nehmen würden meinen
    Code zu kommentieren, mir Verbesserungstipps zu geben, all das was mich nach vorne
    bringt.

    Und ich denke ihr könnt mich nur nach vorne bringen.

    Ich bin mir sicher das ich vieles viel zu umständlich programmiert habe, aber genau darum
    geht es, ich möchte diese Fehler ausmerzen und dadurch lernen, lernen lernen.

    Eure Antworten sind kein muss, dennoch würde ich mich freuen, wenn der ein oder
    andere hier postet.

    Im folgenden findet ihr einen Link zur Datenbank und darunter ein zip file, mit sql dump
    der datenbank und dem code.

    Ich danke euch im voraus für eure Zeit.

    Liebe Grüße

    Jamest

    Zugang zur Datenbank:

    user: "test" password: "test11"
    http://www.apex-design.de/printerdb
    Angehängte Dateien Angehängte Dateien
    Geändert von JamesT (16.01.06 um 14:49 Uhr)
     

  2. #2
    Avatar von helaukoenig
    helaukoenig helaukoenig ist offline Mitglied Brokat
    Registriert seit
    Feb 2005
    Beiträge
    390
    Meine Frage: hättest du dir die ellenlange select-liste ab zeile 412 nicht sparen können, indem du dir die werte mit select group by aus der datenbank ziehst?
    Ich hätte mir mehr kommentare gewünscht, aber für eine anfänger arbeit alle achtung.
    Im großen und Ganzen finde ich das mit Tipps immer sehr schwer, weil den din-gerechten weg gibt es nicht, stattdessen sind eine ganze reihe von prog-stilen auf den markt und es dauert schon eine weile bis man selbst seinen eigenen stil gefunden hat
     
    "Jetz is, wo früher inne Vergangenheit die Zukunft war." Herbert Knebel

    "Jetzt sind die guten alten Zeiten, nach denen wir uns in zehn Jahren zurücksehnen werden." Peter Ustinov

  3. #3
    Avatar von SilentWarrior
    SilentWarrior SilentWarrior ist offline Mitglied Diamant
    Registriert seit
    Dec 2001
    Beiträge
    3.078
    Ok, ein paar Tips:
    • Längere HTML-Blöcke solltest du nich mit Echo ausgeben, sondern einfach ein ?> vorne und ein <?php hintenransetzen, so dass du den HTML-Code ganz normal in die Datei schreiben kannst.
    • Sowas ist fucking ugly:
      PHP-Code:
                                if($row['anschluss']=="intern") echo '<OPTION value="intern" selected>intern</OPTION>';
                                else echo 
      '<OPTION value="intern">intern</OPTION>';
                                if(
      $row['anschluss']=="LPT1") echo '<OPTION value="LPT1" selected>LPT1</OPTION>';
                                else echo 
      '<OPTION value="LPT1">LPT1</OPTION>';
                                if(
      $row['anschluss']=="LPT2") echo '<OPTION value="LPT2" selected>LPT2</OPTION>';
                                else echo 
      '<OPTION value="LPT2">LPT2</OPTION>';
                                if(
      $row['anschluss']=="LPT3") echo '<OPTION value="LPT3" selected>LPT3</OPTION>';
                                else echo 
      '<OPTION value="LPT3">LPT3</OPTION>';
                                if(
      $row['anschluss']=="USB1") echo '<OPTION value="USB1" selected>USB1</OPTION>';
                                else echo 
      '<OPTION value="USB1">USB1</OPTION>';
                                if(
      $row['anschluss']=="USB2") echo '<OPTION value="USB2" selected>USB2</OPTION>';
                                else echo 
      '<OPTION value="USB2">USB2</OPTION>';
                                if(
      $row['anschluss']=="USB3") echo '<OPTION value="USB3" selected>USB3</OPTION>';
                                else echo 
      '<OPTION value="USB3">USB3</OPTION>';
                                if(
      $row['anschluss']=="USB4") echo '<OPTION value="USB4" selected>USB4</OPTION>';
                                else echo 
      '<OPTION value="USB4">USB4</OPTION>';
                                if(
      $row['anschluss']=="USB5") echo '<OPTION value="USB5" selected>USB5</OPTION>';
                                else echo 
      '<OPTION value="USB5">USB5</OPTION>';
                                if(
      $row['anschluss']=="COM") echo '<OPTION value="COM" selected>COM</OPTION>';
                                else echo 
      '<OPTION value="COM">COM</OPTION>'
      So ginge es einfacher:
      PHP-Code:
      $options = array('intern''LPT1''LPT2''LPT3''USB1''USB2''USB3''USB4''USB5''COM');
      if (
      in_array($row['anschluss'], $options)) {
          echo 
      '<option value="'.$row['anschluss'].'" selected>'.$row['anschluss'].'</option>';

    Wenn ich mir den Code aber so ansehe, würde ich dir empfehlen, dich lieber erstmal intensiv mit HTML und CSS auseinanderzusetzen, bevor du weiter in die PHP-Materie einsteigst – dein HTML ist gelinde gesagt grauenhaft.
     

  4. #4
    JamesT JamesT ist offline Mitglied Gold
    Registriert seit
    Jul 2004
    Beiträge
    112
    Vielen Dank schonmal für eure Tipps.

    @silentwarrior

    Danke für deinen Kommentar und dem Tipp zur verbesserung des codes. Ich weiss das das html ziemlich ugly ist. Werde das verbessern.

    Dann mal ne Frage.

    Da es ja schon einige Einträge sind hatte ich vor in der liste "alle anzeigen" bei jedem neuen buchstaben eine Leerzeile einzufügen oder sowas wie ab hier buchstabe C.

    Ausserdem hätte ich oben ganz gerne eine A-B-C-D-E.... leiste wo man sich nur die einträge von einem bestimmten buchstaben anzeigen lassen kann. Ich habe gestern schon den halben Tag danach gesucht, habe aber keine Beispiele gefunden die ich für meine DB verwenden könnte.

    Hättet ihr eine Idee?

    Danke und Gruß

    Jamest
     

  5. #5
    Ceppi Ceppi ist offline Mitglied Gold
    Registriert seit
    Jul 2003
    Ort
    BS (Niedersachsen)
    Beiträge
    181
    Die Ausgabe nach Anfangsbuchstaben könntest du so realisieren:
    Durch deine Liste mit den ganzen Anfangsbuchstaben wird eine Variable an das Script übergeben (z.B. XXX.php?buchstabe=F).
    In der mySQL-Abfrage könntest du dann in die WHERE-Bedingung einbauen:
    Code :
    1
    
    `druckername` LIKE '".$_GET['buchstabe']."%'
     

  6. #6
    Avatar von StefanR
    StefanR StefanR ist offline Mitglied Platin
    Registriert seit
    Apr 2003
    Ort
    Hude
    Beiträge
    582
    Hallo JamesT,

    als Tipp kann ich dir auf den Weg geben, arbeite dich in die Funktionsbildung, sowie wenn du soweit bist in die OOP- Sachen von PHP ein, weil bestimmte Sachen, wie die Tabellenbildung usw. kannst du ganz bequem in Funktionen packen und schreibst nicht ewig, den gleichen Kram.

    Zum einen, hast du wesentlich weniger Code und zum anderen werden die Dateien, nicht so imens groß. Denn dein Script in verschiedene Dateien auf, macht das Ganze auch gleich wieder Pflegeleichter, da du nicht in den großen Dateien nach bestimmten Abschnitten suchen musst.

    Auch wenn ich den Code nur kurz überflogen habe, muss ich sagen, sieht das gar nicht mal schlecht aus, als ich mit PHP angefangen habe, sah mein Code gaaanz anders aus...

    Gruß StefanR
     

  7. #7
    JamesT JamesT ist offline Mitglied Gold
    Registriert seit
    Jul 2004
    Beiträge
    112
    Hallo zusammen

    ich melde mich mal wieder zurück. Erstmal danke an Stefan für den Kommentar.
    Wegen den Fehlern in HTML und CSS. Ich gelobe Besserung *smile*

    Dann nochmal zurück zu meiner Frage wegen der Buchstabenleiste. Meine DB die
    ich hier hausintern habe, hat mittlerweile knapp 500 Einträge, und das laden der hauptseite (alle einträge) dauert daher sehr lange.

    Ich habe den Tipp von Ceppi versucht zu benutzen, aber irgendwie bekomme ich die WHERE abfrage nicht hin, ich weiss nicht ob mir hier noch hintergrund wissen fehlt oder ich mich einfach zu dumm anstelle, es will einfach nicht funktionieren.

    ich habe versucht einfach mal eine Where abfrage zu erstellen die mir alle Druckerhersteller anzeigt die mit H anfangen.

    Ich bekomms nich hin, und hoffe ihr könnt mir unter die Arme greifen mit ein paar Tipps.

    Viele Grüße

    Jamest
     

  8. #8
    Ceppi Ceppi ist offline Mitglied Gold
    Registriert seit
    Jul 2003
    Ort
    BS (Niedersachsen)
    Beiträge
    181
    OK, dann beschreibe ich die SQL-Abfrage noch mal genauer:
    Code :
    1
    
    SELECT * FROM drucker WHERE hersteller LIKE 'H%';
    Das Prozentzeichen % steht in SQL als Platzhalter für eine beliebige Anzahl anderer Zeichen. Weitere Hilfe findest du in der MySQL-Doku.
     

  9. #9
    Avatar von SilentWarrior
    SilentWarrior SilentWarrior ist offline Mitglied Diamant
    Registriert seit
    Dec 2001
    Beiträge
    3.078
    JamesT, falls du die Performance deines Scripts noch etwas steigern möchtest, empfehle ich dir den Einsatz von AJAX, um die Informationen zu den einzelnen Produkten erst bei Klick auf den »Info«-Link zu öffnen – so könntest du meines Erachtes rund 50% der Querys beim Laden der Seite weglassen.

    Falls du dich mit AJAX beschäftigen möchtest, kann ich folgendes Tutorial wärmstens empfehlen (englisch): http://www-128.ibm.com/developerwork...xw01MasterAJAX.
     

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 20.09.10, 10:41
  2. Code-Optimierung - Links und Tipps gesucht
    Von chmee im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 22.04.07, 19:16
  3. Antworten: 3
    Letzter Beitrag: 14.02.06, 12:52
  4. Antworten: 3
    Letzter Beitrag: 13.11.04, 12:11
  5. Suche Vorschläge und Tipps!
    Von DannyDeluxe im Forum Photoshop
    Antworten: 4
    Letzter Beitrag: 15.08.01, 21:20