kostenloser Webspace werbefrei: lima-city


Datenbank Tabelle in besonderer Form ausgeben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Danke dafür, allerdings find ich persönlich den ref="/tag/code">Code deutlich verwirrender, ist aber nicht weiter schlimm, ich hab mal wieder das Problem das ich mit Fehlermeldungen bombardiert werde die auf mich keinen Sinn ergeben,

    Parse error: syntax error, unexpected T_STRING in Zeile 3, hab ich dann mal raus genommen, da war der Fehler immer noch in Zeile 3, hab dann einen Absatz raus genommen da war der Fehler dann in Zeile 5.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. jhb schrieb:
    Danke dafür, allerdings find ich persönlich den Code deutlich verwirrender, ist aber nicht weiter schlimm, ich hab mal wieder das Problem das ich mit Fehlermeldungen bombardiert werde die auf mich keinen Sinn ergeben,

    Parse error: syntax error, unexpected T_STRING in Zeile 3, hab ich dann mal raus genommen, da war der Fehler immer noch in Zeile 3, hab dann einen Absatz raus genommen da war der Fehler dann in Zeile 5.
    in zeile 3 kann die besagte meldung nur dann kommen, wenn du den kode geändert hast. zeig deine version und dan sehen wir mal weiter.
    nebenbei: der kode ist kristall klar strukturiert ;) was findest daren verwirrend?

    Beitrag zuletzt geändert: 19.7.2012 14:43:53 von czibere
  4. Naja deine Art zu Programmieren kann man nicht als Standard bezeichnen.

    Durch den Einsatz von ? anstatt if oder <<< EOT anstatt echo leidet sehr die Lesbarkeit. Du solltest davon ausgehen das hier Anfänger am basteln sind. Dehalb sollte man auch einen Code aus meiner Sicht, nicht nur jemanden vor den Latz knallen, sondern auch ein paar Erklärungen beifügen. Fass das nicht lass Beleidigung auf, es soll nur ein Denkanstoß sein.


    Beitrag zuletzt geändert: 19.7.2012 15:42:18 von vctb
  5. vctb schrieb:
    Naja deine Art zu Programmieren kann man nicht als Standard bezeichnen.
    du schmeichelst mich direkt ;)
    Durch den Einsatz von ? anstatt if oder <<< EOT anstatt echo leidet sehr die Lesbarkeit.
    so '?' (kurzschreibweise fon 'if ... else ...') wie '<<<' (heredoc) gehören zu php standard (apropo, definiere standard).
    Du solltest davon ausgehen das hier Anfänger am basteln sind. Dehalb sollte man auch einen Code aus meiner Sicht, nicht nur jemanden vor den Latz knallen, sondern auch ein paar Erklärungen beifügen.
    ok. ich verchuche es kurz:
    1. '?' ist oft (nicht immer [warum?]) praktischer als 'if ... else ...'. im obigen beispiel gibt mysql_connect je nach ergebnis false oder #resource zurück. der rest sollte selbstredend sein. (ich teste alle mysql_... (aber andere dinge auch), die ergebnis oder false zurückgeben können auf diese art. es ist schon fast ein debuger. für geplagte progger ein segen, wenn etwas daneben geht, landest automatisch mit abbruch in der erklärung des fehlers + zeilenangabe. schöner könnte es kaum sein ;)
    2. heredoc ist praktisch weil - wie du im oberen beispiel sehen kannst - ganz schnell und ohne viel ', " und " . " ... 'vorformatierte'(!) texte auch gleich mit wariablen-inhalte aufnehmen kann. außerdem die geschwindigkeit gegenüber 'etwas in die variable, echo <variable>' ist geradeaus atemberaubend. also ganz schön resource-schonend.
    nebenbei: ich gebe nie und nirgendst in meinen php seiten irgendwas mit echo aus. echo mal da mal dort ist der beste weg zum spaghetti-code. das schlimmse ist allerdings zwischen html und php zu wechseln - echt spaghetti. ich fasse php so auf, dass es mir über den webserver html generiert! und weder umgekehrt noch gemischt. (es geht einiges richtung klarheit. html wird durch css vom style bereinigt &c.)
    3. ich strukturiere meine php-codes so, dass ich der reihe nach alle aufgaben erledige, die ergebnisse in (möglichst) eine einzige variable (wie im beispiel oben in $res [als result]) kumulativ abspeichere, füge in die seite ein (da kommt wieder heredoc) und vertschüse ich mich mit einem exit (was mir ja in einem ruck die ganze - noch so komplizierte seite - ausgibt und beendet sauber das ganze brimborium).

    Fass das nicht lass Beleidigung auf, es soll nur ein Denkanstoß sein.
    ich bin schwer zu beleidigen und denkanstöße sind immer gut ;)

    Beitrag zuletzt geändert: 19.7.2012 16:36:33 von czibere
  6. Als Standard würde ich den Programmierkodex für sauberes Programmieren ansehen.

    Ich kann zumindest verstehen wenn man die ? Anweisung verwendet, da sie viel Tiparbeit spart. Heredoc kann ich aber nichts abverlangen, da ich sie vollkommen unlesbar und als fehleranfälliger erachte zudem ist echo" "; kürzer und hat das selbe Ergebnis. Liegt aber wohl daran, dass ich sie auch noch nie benutzt habe.

    Beitrag zuletzt geändert: 19.7.2012 17:09:14 von vctb
  7. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Naja ich habe eigendlich nix geändert, bloß den Pfad in "Localhost" Nutzer in "root" und im query dann Datenbankname und Tabellenname angegeben.

    Mehr hab ich nicht geändert, hab es wahrscheinlich irgendwie falsch gemacht deshalb hier mal der Code:

    <?php
     
    error_reporting(E_ALL | E_STRICT);
     
    // ---- connect ----------------------------------------------------------------
    $conn = ($c = mysql_connect('localhost', 'root', ';) ;) ;)')) ?
      $c:
      sql_error(__LINE__);
     
    // ---- query ------------------------------------------------------------------
    $q = <<< EOT
    select concat('<td>',
                  <col_1>,
                  '<br />',
                  <col_2>,
                  '<br />',
                  <col_3>,
                  '</td>')
    from <homepage>.<projekte>
    EOT;
    $r = ($r = mysql_query($q)) ?
      $r:
      sql_error(__LINE__);
     
     
    // ---- get resultset into php-var ---------------------------------------------
    $count = 0;
    $cols  = 4; // number of cols
    $res   = "<table border=\"1\"><br />\n";
    while($row = mysql_fetch_assoc($r)) {
      $res .= (($cc = $count % $cols) === 0) ? '<tr>': '';
      foreach($row as $k => $v) {$res .= "$v";}
      $res .= (($count % $cols) === ($cols - 1)) ? '</tr>': '';
      $res .= "\n";
      $count++;
    }
    $res .= "\n</table>";
     
    // ---- show site --------------------------------------------------------------
    exit(<<< EOT
    <!DOCTYPE html>
    <html>
      <head>
        <title>table view</title>
      </head>
      <body>
     
        <header>
          <h3>table view</h3>
        </header>
     
        <section>
    $res
        </section>
     
      </body>
    </html>
    EOT
    );
     
     
     
     
    // ---- sqlerror() -------------------------------------------------------------
    function sql_error($l) {
      $res = print_r(array("<strong>mysql_error in line $l</strong>", mysql_errno(), mysql_error()), true);
      exit(<<< EOT
    <!DOCTYPE html>
    <html>
      <head>
        <title>mysql_error</title>
      </head>
      <body>
        <header>
          <h3>mysql_error</h3>
        </header>
        <section>
          <pre>
    $res
          </pre>
        </section>
      </body>
    </html>
    EOT
    );
    }


  8. $conn = ($c = mysql_connect('localhost', 'root', ';) ;) ;)'))

    In dem Teil mit
    ';) ;) ;)'  <-------- dort das SQL-Passwort
    also nach 
    'root',

    musst du dein Passwort einfügen.

    Mir fällt gerade auf die query mit Concat ist wirklich eine nette Sache, so hab ich die Funktion noch nie benutzt. Wäre ich auch nie drauf gekommen.

    Beitrag zuletzt geändert: 19.7.2012 20:19:01 von vctb
  9. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Naja, die Lokale Datenbank von Xampp hat kein Passwort, und bei mir hat es immer funktioniert wenn ich es einfach weggelassen habe, wenn ich es so ändere das dort kein "leerer Bereich" mehr ist also sprich die Entsprechenden Zeichen entferne ändert das auch nichts,
  10. jhb schrieb:
    Naja, die Lokale Datenbank von Xampp hat kein Passwort, und bei mir hat es immer funktioniert wenn ich es einfach weggelassen habe, wenn ich es so ändere das dort kein "leerer Bereich" mehr ist also sprich die Entsprechenden Zeichen entferne ändert das auch nichts,
    du hast grobe mängel an deiner editierarbeit!

    richtig heißt die zeile
    $conn = ($c = mysql_connect('localhost', 'root', '')) ?
    und daran ist nichts zu diskutieren (ich hoffte, du übersiehst meinen groben unfug nicht ;). ich würde es aber nicht dabei belassen! lese nach, wie du root einen ordentlichen passwd verpassen kanst!

    was noch zu ersetzen ist im query
    <col_1>, <col_2>, <col_3>. das sind die spaltennamen, die du abfragst.

    außerdem hatte ich 2 flüchtigkeitsfehler eingebaut: <homepage>.<projekte>. also die query sollte eher so aussehen:
    select concat('<td>',
                  <col_1>,
                  '<br />',
                  <col_2>,
                  '<br />',
                  <col_3>,
                  '</td>')
    from <db_name>.<table_name>
    und natürlich <db_name> und <table_name> müssen an deine situation angepasst - sprich - überschrieben werden.


    vctb schrieb:
    Als Standard würde ich den Programmierkodex für sauberes Programmieren ansehen.

    Ich kann zumindest verstehen wenn man die ? Anweisung verwendet, da sie viel Tiparbeit spart. Heredoc kann ich aber nichts abverlangen, da ich sie vollkommen unlesbar und als fehleranfälliger erachte zudem ist echo" "; kürzer und hat das selbe Ergebnis. Liegt aber wohl daran, dass ich sie auch noch nie benutzt habe.
    'Programmierkodex für sauberes Programmieren' hat schon aus dem grund keine globale gültigkeit, weil es von dem zeug etliche gibt (sogar allein für php auch). daher sollte man statt kodex kodices sagen (was ja an der sache nichts ändert ;).

    vctb schrieb:
    ... Mir fällt gerade auf die query mit Concat ist wirklich eine nette Sache, so hab ich die Funktion noch nie benutzt. Wäre ich auch nie drauf gekommen.
    löbliche tendenz! (siehe vorige worte von dir) flexibilität ist wichtiger für einen progger als starre kodices ;)

    kodices haben auf eine saubere arbeit nur bedingt eine einwirkung. sie werden kreiert, dass eine gruppe von progger eine arbeit einheitlich anfertigen kann (sonst kennt sich kein aas mehr aus, was wo ist und warum). saubere arbeit braucht viel mehr viel erfahrung und ordentliche progstrukturen.
  11. Das stimmt aber man eignet sich natürlich selber marotten an (auf mich bezogen), die will man eigentlich nicht groß ändern. Ich habe kein Problem damit wenn jemand in einem anderen Stil programmiert. Ich sehe es halt aus der Sicht des Anfängers, da sind unkonventionellere Programmierstile teilweise schwer zu verstehen.
    Das mit den Kodexen oder wie auch immer ist mir klar :), aber die meisten haben doch parallele Ansätze.

    PS: ich hoffe es ist diesmal nicht negativ rüber gekommen, sollte es vorher auch nicht.

    Wenn du mein Beispiel mit einer festen Breite für die Tabellen angibst müsste es ungefähr so aussehen.

    http://vctb.lima-city.de/images/tabellen.png

    Beitrag zuletzt geändert: 19.7.2012 23:38:10 von vctb
  12. vctb schrieb:
    ... Ich sehe es halt aus der Sicht des Anfängers, da sind unkonventionellere Programmierstile teilweise schwer zu verstehen.
    ja!

    und das ist richtig so!

    der anfänger soll dor hin kommen, wo der erfahrene ist! sonst werden wir wieder affen, vom baum runterhängend ;)
    also fange nicht an, sondern fahre vort (schmunzel! also doch lieber) fort!

    das ist aber 'ot'!

    Beitrag zuletzt geändert: 20.7.2012 12:16:21 von czibere
  13. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Okay, tut mir leid das die Antwort etwas auf sich warten ließ. Hab selbst noch n bisschen rumprobiert (Mit nem eigenen Script) aber das ist alles nichts geworden)

    Hab jetzt nochmal das von hier genommen und so geändert wie gesagt, und ich kann mir einfach immer noch nicht erklären wie dort vollgender Fehler auftreten kann:

    http://emil-online.square7.ch/Sonstiges/fehler.png

    Wenn ich Zeile Zeile 3 Komplett raus nehme ist der Fehler in Zeile 4

    Und mehr als in dem Script zu sehen ist hab ich auch noch nicht geändert, Ich Arbeite in der Regeleinfach die Fehler in Chronologischer Reihenfolge ab


  14. Schalt mal in Notepad++ unter Ansicht -> Nicht druckbare Zeichen -> Alle Zeichen anzeigen an. Ich hatte mal ein Problem mit einem kopierten Sonderzeichen.

    Ansonsten könnte es an der von dir verwendeten PHP-Version liegen, da E_Strict die PHP Version 5 benötig und auch aktivert sein muss.

    Falls du möchtest kannst du den Programmcode als Datei hier anhängen (gepackt oder umbenannt als .txt) dann kann man ihn sich mal angucken wo Fehler sind.
  15. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Also bei mir ist Version 5.3.8 aktiviert.
    Versteckte Sonderzeichen sind dort nicht vorhanden.

    Hier ist die Datei:
    Klick mich
  16. jhb schrieb:
    ... Hier ist die Datei:
    Klick mich
    ja und ich muss noch immer auf das hinweisen!!!! bitte mache endlich die query fertig! gut, das hat mit dem seltsamen fehler nichts zu tun, aber trotzdem.

    am computer können immer wieder seltsame dinge passieren. probiere mal aus, eine neue datei zu erzeugen und dort das ganze von hand eintippen. es ist nicht so tragisch groß. sonst kann ich dir nichts raten. bin kein windows mann.
  17. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Okay, dann besteht doch nochmal erklärungs- bedarf was an der Query angepasst werden muss.
  18. jhb schrieb:
    Okay, dann besteht doch nochmal erklärungs- bedarf was an der Query angepasst werden muss.
    ;o)) ok
    gib mir bitte die drei spaltennamen die du abfragen willst, den namen der database und den namen der tabelle.
  19. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Hmm also im grunde sind es:

    name
    image
    description
    link

    Link soll benutzt werden um die 3 anderen als ganzes zu verlinken (Divbox um die Tabelle, Link um die Divbox) Hoffe die information kommt nicht zu spät.

    Datenbank: homepage
    Tabelle: projekte

    Dabei noch eine kleine frage am rande, kann man die Datenbank bei limacity auch umbenennen? Also nicht den Pfad sondern naja, Den Datenbanknamen.
  20. jhb schrieb:
    Hmm also im grunde sind es:

    name
    image
    description
    link

    Link soll benutzt werden um die 3 anderen als ganzes zu verlinken (Divbox um die Tabelle, Link um die Divbox) Hoffe die information kommt nicht zu spät.

    Datenbank: homepage
    Tabelle: projekte

    Dabei noch eine kleine frage am rande, kann man die Datenbank bei limacity auch umbenennen? Also nicht den Pfad sondern naja, Den Datenbanknamen.
    also dann die query sieht so aus
    select concat('<td>',
                  name,
                  '<br />',
                  image,
                  '<br />',
                  desription,
                  '<br />',
                  link,
                  '</td>') td
    from homepage.projekte
    damit überschreibst also die alte query.

    bist du sonst sicher, dass das stimmt?
    Datenbank: homepage
    Tabelle: projekte


    das ist mir leider unklar:
    Divbox um die Tabelle, Link um die Divbox
    das hieße ja link um die ganze tabelle? oder??
  21. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    jhb schrieb:
    Dabei noch eine kleine frage am rande, kann man die Datenbank bei limacity auch umbenennen? Also nicht den Pfad sondern naja, Den Datenbanknamen.
    Nein, das kannst du nicht, aber wozu auch?


    czibere schrieb:
    das ist mir leider unklar:
    Divbox um die Tabelle, Link um die Divbox
    das hieße ja link um die ganze tabelle? oder??
    Er meint vermutlich eher:
    Divbox zum die Zelle, Link um die Divbox
    Aber wozu braucht er dann die Divbox? Ein Link um den Content reicht doch dann auch...
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!