Re: Tabellenausgabe/Sorry, Tippfehler - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Claus (4645 Beiträge) am Freitag, 31.Dezember.2004, 12:11.
    Re: Tabellenausgabe/Sorry, Tippfehler

      <perl>
      #hier musst Du allerdings erstmal den 1. Datensatz holen!! Außerdem müssen die Anführungszeichen innerhalb von "out" weg!!!!!
      

      Richtig!!!!

      get "Id==*"; "verzeichnis"; 
      

      Claus


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Gert (6 Beiträge) am Mittwoch, 29.Dezember.2004, 15:50.
    Tabellenausgabe

      Hallo,

      habe ein Problem bei der Datenausgabe.
      Ich möchte innerhalb des body-Teils meiner html-seite tabellen erzeugen die mit meinen ausgelesenen Daten gefüllt werden.

      Mit loop funktioniert das ganze aber nicht wenn ich die schleife selbst wie folgt programmiere:



      <perl>
      while(get_next("verzeichnis"))
      {
      
        out "<table border="0" width="600">               <tr>                 <td width="189">$firma</td>                 <td width="141">$plz</td>                 <td width="109">$ort</td>                 <td width="135">$telefon</td>               </tr>             </table>";
      }
      </perl>
      



      Was mache ich da falsch? Würde mich sehr über eine Antwort freuen.

      Gruß Gert

     Antworten

    Beitrag von Peter Pan (1 Beitrag) am Mittwoch, 29.Dezember.2004, 16:17.
    Re: Tabellenausgabe

      versuch es mal so...
      Tabelle vor der eigentlich Schleife einleiten...
      In der Schleife nur neue Zeilen (Table Rows (tr)) erzeugen...
      Nach der Schleife die Tabelle schliessen.


      <perl>
      out "<table border="0" width="600">
      get "firma==*","verzeichnis";
      while(get_next("verzeichnis"))
      {
      out<<EOF
      <tr>
      <td width="189">$firma</td>
      <td width="141">$plz</td>
      <td width="109">$ort</td>
      <td width="135">$telefon</td>
      </tr>
      EOF;
      }
      out "</table>";
      </perl>
       
      
      Gruss

      Peter Pan

     Antworten

    Beitrag von Gert (6 Beiträge) am Donnerstag, 30.Dezember.2004, 17:46.
    Re: Tabellenausgabe

      Habe es mit dem Quelltext hier versucht aber es funktioniert leider nicht. Kann sich das nochmal jemand ansehen bitte, irgendwas scheint nicht zu stimmen. Hab schon etliche Konstellationen ausprobiert aber es führt immer wieder zu Fehlermeldungen...

     Antworten

    Beitrag von richard (1187 Beiträge) am Donnerstag, 30.Dezember.2004, 17:52. WWW: posaunenchor-rhoden.de
    Re: Tabellenausgabe

      Was funktioniert nicht?

      Wann kommen welche Fehlermeldungen?

      Link zu Deiner Seite?

     Antworten

    Beitrag von richard (1187 Beiträge) am Donnerstag, 30.Dezember.2004, 18:22. WWW: posaunenchor-rhoden.de?subject=Wg. baseportal-F
    Re: Tabellenausgabe

      Vorneweg mal soviel.

      Du mußt Deine Anführungszeichen aufräumen.

      Was per out ausgegeben wird steht zwischen Anführungszeichen mit ; am Ende.

      out "";
      

      Wenn innerhalb dieses Bereichs, also wischen den doppelten Anführungszeichen, weitere eingesetzt werden sollen, müssen das andere sein, zum Beispiel einfache wie '. Bsp.: (width='200')

     Antworten

    Beitrag von Gert (6 Beiträge) am Donnerstag, 30.Dezember.2004, 18:19.
    Re: Tabellenausgabe

      Der Quelltext der Seite sieht nach Berücksichtigung der Antwort von Peter Pan so aus:


      <html>
      

      <head>

      <perl>
      

      </perl>

      $aa = $begriff;
      $bb = $ortschaft;
      my $i = 0;
      if ($bb eq "alle Ortschaften")
       { 
         get "Id==*", "verzeichnis";
       }
      else
       {
         get "ort==$bb", "verzeichnis";
       }
      

      </perl>

      </head>
      

      <body>


      <perl>
      

      out"
      <table border="0" width="700">
        
      while(get_next("verzeichnis"))
      {
      out<<EOF
      <tr>
          <td>$name</td>
          <td>$vorname</td>
          <td>$strasse</td>
          <td>$hn</td>
          <td>$plz</td>
          <td>$ort</td>
        </tr>
      

      EOF;

      }
      out "</table>";
      </perl>
      

      </body>

      </html>
      




      Folgende Fehlermeldungen erscheinen:

      Can't modify numeric gt (>) in scalar assignment at (eval 22) line 5, at EOF ]

      Search pattern not terminated at (eval 24) line 22. ]

     Antworten

    Beitrag von Gert (6 Beiträge) am Donnerstag, 30.Dezember.2004, 18:23.
    Re: Tabellenausgabe

      Der Quelltext der Seite sieht nach Berücksichtigung der Antwort von Peter Pan so aus:


      <html>
      

      <head>

      <perl>
      

      </perl>

      $aa = $begriff;
      $bb = $ortschaft;
      my $i = 0;
      if ($bb eq "alle Ortschaften")
       { 
         get "Id==*", "verzeichnis";
       }
      else
       {
         get "ort==$bb", "verzeichnis";
       }
      

      </perl>

      </head>
      

      <body>


      <perl>
      

      out"
      <table border="0" width="700">
        
      while(get_next("verzeichnis"))
      {
      out<<EOF
      <tr>
          <td>$name</td>
          <td>$vorname</td>
          <td>$strasse</td>
          <td>$hn</td>
          <td>$plz</td>
          <td>$ort</td>
        </tr>
      

      EOF;

      }
      out "</table>";
      </perl>
      

      </body>

      </html>
      




      Folgende Fehlermeldungen erscheinen:

      Can't modify numeric gt (>) in scalar assignment at (eval 22) line 5, at EOF ]

      Search pattern not terminated at (eval 24) line 22. ]

     Antworten

    Beitrag von Claus (4645 Beiträge) am Freitag, 31.Dezember.2004, 12:08.
    Re: Tabellenausgabe

      Hallo Gert,

      wieso schreibt Du eigentlich einige der Perl-Angaben in den <head>-Bereich???

      Dann kommt <perl> </perl> und nachdem Du Perl beendet hast, kommen erst die Perl-Anweisungen.
      und was bitte soll das hier bedeuten??? out "</table>";

      Schreibe doch mal, was Du eigentlich bewirken willst.

      Eigentlich war Dein erster Ansatz doch schon fast richtig!!!!



      <perl>
      #hier musst Du allerdings erstmal den 1. Datensatz holen!! Außerdem müssen die Anführungszeichen innerhalb von "out" weg!!!!!
      get $Id)==*"; "verzeichnis";
      while(get_next("verzeichnis"))
      {
       
      
        out "<table border=0 width=600>               <tr> <td width=189>$firma</td> <td width=141>$plz</td> <td width=109>$ort</td> <td width=135>$telefon</td> </tr> </table>"; } </perl>

      Hoffe, das hilft Dir erstmal weiter.
       

      Gruß

      Claus

     Antworten

    Beitrag von Claus (4645 Beiträge) am Freitag, 31.Dezember.2004, 12:11.
    Re: Tabellenausgabe/Sorry, Tippfehler

      <perl>
      #hier musst Du allerdings erstmal den 1. Datensatz holen!! Außerdem müssen die Anführungszeichen innerhalb von "out" weg!!!!!
      

      Richtig!!!!

      get "Id==*"; "verzeichnis"; 
      

      Claus

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 31.Dezember.2004, 13:42.
    Re: Tabellenausgabe

      Sorry, dass ich noch mal im alten Jahr meckern muss, aber es ist momentan wieder mal so, dass wahrscheinlich manche Neulinge unter den Forumsteilnehmern nicht so richtig lesen können oder aber der Meinung sind, Denken macht müd und tut weh...
      Lest doch erst mal die Doku - solche Sachen wie hier sind weiss gott nix was unter die Kategorie "jeder hat mal angefangen" fällt - grundlegende Syntaxfehler zumal noch klar die Fehlerzeilen da stehen.
      Und wer schon was mit Perl machen will, der sollte sich wenigstens ein paar Grundkenntnisse aneignen - nur hoffen ist nicht ausreichend, auch selber tun und lernen hilft manchmal weiter ....

      Aber zu deinem "Problem":
      erster Fehler in Zeile 5 - na dann schaun mer mal: Gezählt werden vom Interpreter alle Zeilen die jeweils zwischen <perl> und </perl> stehen, wobei Blockbegrenzungen (die geschw. Klammern) und Leerzeilen nicht mit gezählt werden.
      Somit wäre hier der Fehler um die Zeilen
      ---schnipp
      out"
      <table border="0" width="700">
      while(get_next("verzeichnis"))
      {
      
      ---schnapp
      zu suchen.
      Da gehen wir dann mal in die Doku um zu sehen, wie die richtige Syntax von out ist: http://baseportal.de/baseportal/doku/wiki&kennung=93
      und siehe da - wir werden fündig: out als Befehl und dann in Quotes(Anführungszeichen - je nach Sinn und gewünschtem Ergebnis einfache oder doppelte) auf der g l e i c h e n Zeile die Ausgaben, abgeschlossen mit einem StrichPunkt(Semikolon).
      Problem Quotes innerhalb der Ausgabe - Doku lesen!
      dann wird aus diese fehlerhaften Zeile folgendes:
      ---schnipp
      out "<table border=\"0\" width=\"700\">";
      while(get_next("verzeichnis"))
      {
      
      ---schnapp
      Weiter, Fehler in Zeile 22 - gut das ist nicht eindeutig, aber wieder mal die Doku hergenommen und siehe man kann leider nix finden.
      Das kommt von dem blöden WIKI - es verschluckt die EOFs, deshalb erkläre ich es hier nochmal:
      Wenn man langen HTML-Text oder was auch immer, ausgeben möchte, kann man das in sogenannten HERE-Docs vornehmen.
      Die Funktionsweise ist an den Umgang mit Daten von Dateiinhaltenauf Betriebssystemebene angelehnt und recht einfach, wenn man die einzigen zwei wichtige Regeln beachtet.
      Ein HERE-Doc wird von Begrenzern (das sind ganz normale Alphanumerische Namen, die den Namenskonventionen von Variablen im wesentlichen entsprechen, also keine Sonderzeichen, nicht mit Zahl beginnen, keine internen Funktionsnamen und Schlüsselwörter) "eingerahmt", alles was zwischen diesen steht, wird so ausgegeben, wie es dort steht, es werden keine Funktionen oder ähnliches interpretiert.
      Das Gerüst eines HERE-Dokuments sieht so aus:
      out<<BEGRENZER;
      

      BEGRENZER
      Die Grundlegenden Regeln sind:
      a) HERE-DOC einleiten und dem Perl-Interpreter bekannt machen in der folgenden Art und Weise:
      - Wohin sol dass HERE-DOC ausgegeben werden [Befehl oder Variablenname]
      in unserem Falle in den Befehl out, der das wiederum an den Webserver zur Aufbereitung als HTML-Text ausgibt, denkbar wäre auch, die Ausagaben in eine Variable zu machen)
      - Einleitungszeichen, damit Perl weiss, das folgende soll einfach nur ausgegeben werden [ die Zeichen <<]
      - unmittelbar an die Eileitungszeichen den Begrenzernamen des HERE-DOCs [ üblicherweise EOF für End Of File - es geht aber auch anderes, wie HEREDOC oder GIBAUS oder was auch immer nach den Namenskonventionen]
      - dann der Befehlsbegrenzer, also ein Strichpunkt
      Dann beginnt man das HERE-DOC auf einer neuen Zeile
      Alles was man hier reinschreibt wird einfach ausgegeben, Zeilenumbrüche werden als solche erkannt, Sonderzeichen sind möglich.
      Perl-Funktionen muss man interpolieren, das ist aber dann schon ziemlich kompliziert und nur was für Fortegeschrittenere.
      b) Ende des HERE-DOCs und dem Perl-Interpreter bekannt machen, dass jetzt wieder richtiges Perl losgeht, was er bitte interpretieren möchte
      - die genau identische Zeichenfolge wie bei der Einleitung und zwar an den Anfang einer neuen Zeile, ganz alleine, ohne weitere Zeichen, einzig ein New-Line muss unmittelbar hinter diesen Namen, schon ein Leerzeichen führt zur Fehlermeldung!
      Wichtig: der HERRDOC-Namen allein am Anfang einer Zeile ohne weitere Zeichen

      Beispiele:
      ---schnipp
      $variable =<<ENDE;
      
      das steht dann in Variable
      und das ist die zweite Zeile, für HTML ist aber ein <br>
      erforderlich
      ENDE

      out $variable;
      
      ---schnapp
      ---schnipp
      out <<EOF;
      
      gib das aus
      EOF
      ---schnapp
      Man kann sich als Eselsbrücke auch die Syntax so ins Deutsche übersetzt vorstellen:
      out <<EOF;   gib aus (out) alles folgende(<<) bis zur Zeichenfolge EOF (EOF)
      

      Sinnvoll ist der Einsatz mit Variablen, um beispielsweise an einer Stelle im HTML-Text je nach Situation im Programm unterschiedliche Sachen auszugeben. Man erspart sich somit oft unnötig dopelten HTML-Text.

      So, wenn du nun das durchgearbeitet hast, dann kannst du deine Fehler auch selber korrigieren.
      Die Zeile
      out<<EOF
      wird zu out<<EOF;
      
      die Zeile
      EOF;
      wird zu
      EOF
      
      und du wirst sehen, es wird dann laufen.....

      Viele Grüße und guten Rutsch an alle

      Ruben

     Antworten

    Beitrag von richard (1187 Beiträge) am Freitag, 31.Dezember.2004, 15:11. WWW: posaunenchor-rhoden.de
    Re: Tabellenausgabe

      Um hier mal wieder etwas Übersicht rein zu bekommen, schlage ich die nachstehende Version mal als neuen Ausgangspunkt vor.

      Wenn es nicht funktioniert bitte mal das Ergebnis und die Fehlermeldungen mitteilen.

      -------------- neu -----------------

      <html><head></head>
      <perl>
      $aa = $begriff;
      $bb = $ortschaft;
      my $i = 0;
      

      if ($bb eq "alle Ortschaften")
      { 
      get "Id==*", "verzeichnis";
       }
      else
      {
      get "ort==$bb", "verzeichnis";
       }
      </perl>
      

      <body><table>
      <perl> 
      while(get_next("verzeichnis"))
      {
      out "<tr><td>$name</td><td>$vorname</td><td>$strasse</td><td>$hn</td><td>$plz</td><td>$ort</td></tr>";
      }
      </perl>
      </table></body></html>
      

     Antworten

    Beitrag von richard (1187 Beiträge) am Freitag, 31.Dezember.2004, 15:17.
    Re: Tabellenausgabe

      Das sieht jetzt so aus, als würde nach out ein Zeilenumbruch stehen, das ist natürlich falsch, gedaahct ist das so:

      out "<tr><td> ... ... ...
      

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Samstag, 1.Januar.2005, 10:19.
    Re: Tabellenausgabe

      Ein gesundes, erfolgreiches Jahr wünsche ich allen.

      Hab mal fix die Fehler im DOKU-WIKI Kapitel out rausgemacht, jetzt müsste es richtig lesbar sein.

     Antworten

    Beitrag von Gert (6 Beiträge) am Donnerstag, 30.Dezember.2004, 18:55.
    Re: Tabellenausgabe

      Danke das ist auf jedenfall schonmal gut zu wissen, aber funktionieren tut es leider immer noch nicht.

     Antworten

    Beitrag von richard (1187 Beiträge) am Donnerstag, 30.Dezember.2004, 19:27. WWW: posaunenchor-rhoden.de
    Re: Tabellenausgabe

      Na, dann stell das Ergebnis doch mal wieder hier rein. Natürlich nur die geänderten Stellen. Und natürlich die Fehlermeldungen.

     Antworten

    Beitrag von Gert (6 Beiträge) am Sonntag, 2.Januar.2005, 20:08.
    Re: Tabellenausgabe / Danke an alle

      Wollt mich nur kurz bedanken für die vielen Ratschläge.

      @hempelr: Du hast natürlich recht, die Fehler mit den Anführungszeichen hätte ich mir sparen können, das hab ich einfach übersehen weil ich dachte das Problem läge wo anders.
      
      Das mit dem "Begrenzer" wurde mir aber auch in der Doku nicht wirklich klar.

      Versuche Euch das nächste Mal mit etwas "geistreicheren" Problemen zu konfrontieren oder es gleich selbst zu lösen...

      Gutes Neues!

      Gert

     Antworten


     
 Liste der Einträge von 26250 bis 26325:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.04s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!