Schleife soll nur einmalig durchlaufen werden - 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 RaveDave (33 Beiträge) am Mittwoch, 29.Januar.2003, 14:24.
    Schleife soll nur einmalig durchlaufen werden

      Hallo.

      Bin seit einigen Tagen daran meine erste eigene DB mit Baseportal aufzubauen.

      Nun kommen ich an einer Stelle nicht mehr weiter und hoffe, daß mir einer von Euch weiterhelfen kann.

      Ich habe eine Db namens "marken", welche neben einer Spalte mit verschiedenen Markennamen auch eine Spalte enthält, in welcher die jeweiligen Anfangsbuchstaben der Markennamen stehen.

      Nun wollte ich gern eine Ausgabe erzeugen, welche mir in drei Tabellenspalten das gesamte Alphabet ausgibt. Wenn einer der Buchstaben in meiner DB vorkommt, so soll der jeweilige Buchstabe auf der Website mit einem speziellen Link versehen werden.

      Meine Versuche dies zu realisieren sahen teilweise ganz vielversprechend aus. Mittlerweile erhalte ich aber immer nur noch Fehlermeldungen. Der letzte Versuch hängt sogar schon die DB auf, so daß gar keine Ausgabe mehr erscheint.

      Kann mir bitte jemand helfen?!?!??!

      Vielen Dank. David.
      _______________________________________________________

      Der jetzige Code sieht folgendermaßen aus: ([] = <>)


      [loop code=perl db=marken]

      %ABkurz ("A", "",
              "B", "");
      

      out "<table border=0 cellspacing=2 cellpadding=2>";
      out "<tr>";
      out "<td>";
      

      while ( $ABkurz{"A"} eq "" )
      {
      if($Anfangsbuchstabe eq "A")
      {
      $ABkurz{"A"} = "$Anfangsbuchstabe";
      out  "<a href=baseportal.pl?htx=/u_s_s/markennamen&Anfangsbuchstabe==A target=_top>A</a>";
      } else
      {
      out  "A";
      }
      }
      

      out "</td>";

      out "</tr>";
      out "</table>";
      

      [/loop]


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von RaveDave (33 Beiträge) am Mittwoch, 29.Januar.2003, 14:24.
    Schleife soll nur einmalig durchlaufen werden

      Hallo.

      Bin seit einigen Tagen daran meine erste eigene DB mit Baseportal aufzubauen.

      Nun kommen ich an einer Stelle nicht mehr weiter und hoffe, daß mir einer von Euch weiterhelfen kann.

      Ich habe eine Db namens "marken", welche neben einer Spalte mit verschiedenen Markennamen auch eine Spalte enthält, in welcher die jeweiligen Anfangsbuchstaben der Markennamen stehen.

      Nun wollte ich gern eine Ausgabe erzeugen, welche mir in drei Tabellenspalten das gesamte Alphabet ausgibt. Wenn einer der Buchstaben in meiner DB vorkommt, so soll der jeweilige Buchstabe auf der Website mit einem speziellen Link versehen werden.

      Meine Versuche dies zu realisieren sahen teilweise ganz vielversprechend aus. Mittlerweile erhalte ich aber immer nur noch Fehlermeldungen. Der letzte Versuch hängt sogar schon die DB auf, so daß gar keine Ausgabe mehr erscheint.

      Kann mir bitte jemand helfen?!?!??!

      Vielen Dank. David.
      _______________________________________________________

      Der jetzige Code sieht folgendermaßen aus: ([] = <>)


      [loop code=perl db=marken]

      %ABkurz ("A", "",
              "B", "");
      

      out "<table border=0 cellspacing=2 cellpadding=2>";
      out "<tr>";
      out "<td>";
      

      while ( $ABkurz{"A"} eq "" )
      {
      if($Anfangsbuchstabe eq "A")
      {
      $ABkurz{"A"} = "$Anfangsbuchstabe";
      out  "<a href=baseportal.pl?htx=/u_s_s/markennamen&Anfangsbuchstabe==A target=_top>A</a>";
      } else
      {
      out  "A";
      }
      }
      

      out "</td>";

      out "</tr>";
      out "</table>";
      

      [/loop]

     Antworten

    Beitrag von RaveDave (33 Beiträge) am Mittwoch, 29.Januar.2003, 14:27.
    Ergänzung

      In der DB "marken" sind einige Anfangsbuchstaben doppelt vergeben. Die Ausgabe auf der HTML-Seite soll jedoch jeden Buchstaben nur einmalig ausgeben.

     Antworten

    Beitrag von mk (966 Beiträge) am Mittwoch, 29.Januar.2003, 14:54.
    Re: Ergänzung

     Antworten

    Beitrag von RaveDave (33 Beiträge) am Mittwoch, 29.Januar.2003, 15:32.
    Re: Ergänzung

      Wie kriege ich das hin?

      So in der Art hatte ich es mir vorgestellt, nur daß ich lediglich die Anfangsbuchstaben ausgeben will, und falls einer dieser Buchstaben in der Datenbank existiert, dann wollte ich diesen Buchstaben verlinken, um auf einer sich dann öffnenden Seite die Unterbegriffe zu präsentieren.

     Antworten

    Beitrag von mk (966 Beiträge) am Mittwoch, 29.Januar.2003, 15:43.
    Re: Ergänzung

      So sieht mein Quelltext aus,
      du mußt natürlich noch viel rausschweißen und Felder und Datenbanken anpassen.
      Das ist zwar die englische Version, aber die verstehe sogar ich.
      Du kannst ja meine Homepage mal besuchen, da hab ich faßt alles mit Datenbanken gemacht.
      www.brueckenbau-links.de

      <html>
      <head>
      <title>Index for the companies, - bridging and book data base</title>
      <link rel="stylesheet" type="text/css" href="http://www.brueckenbau-links.de/bbstart600.css">
      </head>
      <body>
      <h2 align="center">Index</h2>
      

      <p align="center">For the companies, - bridging and book data base</p>


      <p align="center"><img src="http://www.brueckenbau-links.de/stichwort-en.jpg"  alt="Erläuterung der Einträge."></p>
      

      <table border="2" width="100%" bordercolor="#7EB8FF" cellspacing="0" cellpadding="0" bordercolorlight="#7EB8FF" bordercolordark="#7EB8FF">
      <tr>
      

      <perl>

      $ende=84;
      $i=0;
        get " Id=* sort=Suchwort_e", "Suchwort";
         while (get_next(Suchwort))
      

      {
       
      $i++;
              out "<td width='25%' valign='top'>" if $i==1;
       $Laenge = length($Suchwort);
       $suche=$Suchwort;
       $suche_a=$Suchwort_e;
      

      # hier kommt die Ausgabe

      out "<li><strong><font face='Arial' size='4' color='#000000'><strong>$suche</font></strong></li>" if $Laenge==1;
      

      out "<li><strong>$suche_a" if $Laenge>1;
      get "_fullsearch~~$suche fullsearch_match=300 range=0,1", "links" if $Laenge>1;
      

      out " " if $_amount_query>0;

      get "_fullsearch~~$suche fullsearch_match=300 range=0,1", "links" if $Laenge>1;
      out "<a href='http://koch.netpure.de/cgi-bin/baseportal.pl?htx=/koch/brueckenbau/linkliste&cmd=all&_fullsearch~~$suche&fullsearch_match=300
      &db=links' 
      target='_self'><font color='#FF00FF'> -$_amount_query-</a></strong></font></li>" if $Laenge>1 & $_amount_query>0;
      

      out " " if $_amount_query>0;

      get "_fullsearch~~$suche fullsearch_match=300 range=0,1", "brueckenbau" if $Laenge>1;
      out "<a href='http://koch.netpure.de/cgi-bin/baseportal.pl?htx=/koch/brueckenbau/ergebnis&cmd=all&mode=pictures&range=0,5&_fullsearch~~$suche&fullsearch_match=300&db=brueckenbau' 
      target='_blank'><font color='#8000FF'> -$_amount_query-</a></strong></font></li>" if $Laenge>1 & $_amount_query>0;
      

      out " " if $_amount_query>0;

      get "_fullsearch~~$suche fullsearch_match=300 range=0,1", "../buecher/buecher" if $Laenge>1;
      out "<a href='http://koch.netpure.de/cgi-bin/baseportal.pl?htx=/koch/buecher/buecher_3sp&cmd=all&_fullsearch~~$suche&fullsearch_match=300&db=../buecher/buecher' 
      target='_self'><font color='#008000'> -$_amount_query-</a></strong></font></li>" if $Laenge>1 & $_amount_query>0;
      

      #hier wird geprüft ob die Spalte voll ist

              if ($i>=$ende)
              {
                 out "</td>" ;
                 $i=0;
              }else
              {
                 out "<br>";
              }
      

      }
      out "</td>" if $i!=0;
      $Anzahl=int($ende)+1;
      

      </perl>
      </tr></table>
      

      <p align="center"><img src="http://www.brueckenbau-links.de/stichwort-en.jpg" alt="Erläuterung der Einträge."></p>

      <p align="center">Here if a keyword is missing, or you is not found here, write me <a href="mailto:mkburg@gmx.net">a Mail</a>.</p>
      

      </body></html>

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 29.Januar.2003, 15:28.
    Re: Schleife soll nur einmalig durchlaufen werden

      geh mal so vor:

      <loop code=perl db=marken>
      $buch{$Anfangsbuchstabe}++; # Buchstaben im hash aufnehmen
      </loop>
      <perl>
      foreach ("A".."Z")
      {
        if ($buch{$_})
        {
          out "<a href=baseportal.pl?htx=/u_s_s/markennamen&Anfangsbuchstabe==$_ target=_top>$_</a>";
        }else{
          out "$_";
        }
      }
      </perl>
      

      besser wäre natürlich, nicht die ganze db zu durchlaufen sondern die in einer extradb zu speichern und dann per Relation darauf zuzugreifen.

      Sander

     Antworten

    Beitrag von RaveDave (33 Beiträge) am Mittwoch, 29.Januar.2003, 15:43.
    DANKE !!!! --> aber...

      Hallo Sander!

      Habe es ausprobiert und es funktioniert super.

      Nur möchte ich den Code gern auch verstehen. Kannst Du mir bspw. mal folgende Zeilen kurz erläutern (bin ein absoluter Neuling !! ;-)

      1) ist $buch ein Hash (ich dachte, der müßte immer mit % anfangen?)
      $buch{$Anfangsbuchstabe}++; 
      

      2) Was bewirkt diese Schleife?
      foreach ("A".."Z")
      

      3) Was bedeutet denn das {$_}?
      if ($buch{$_})
        
      

      Danke für Deine Tipps?

      David

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 29.Januar.2003, 16:44.
    Re: DANKE !!!! --> aber...

      mit $buch{bla} greifst du auf den inhalt des hashes %buch beim feld bla zu.

      Einen Wert kannst du zb mit
      %buch=(bla=>"bluubb");
      oder mit
      $buch{bla}="blubb"; 
      
      zuweisen.

      2)Das ist ein temporäres Array mit den Inhalten A-Z
      1..23 wäre ein array mit Zahlen von 1-23

      3) $_ ist die durchlaufsvar bei den Schleifen. Jedes Element was an die Reihe kommt steckt in $_ drin.
      man könnte auch schreiben:
      foreach $var("A".."Z")
      {
      if ($buch{$_})
      {...
      

      so, hoffe, es ist einiges klarer...

      Grüße
      Sander

     Antworten

    Beitrag von RaveDave (33 Beiträge) am Mittwoch, 29.Januar.2003, 15:43.
    DANKE !!!! --> aber...

      Hallo Sander!

      Habe es ausprobiert und es funktioniert super.

      Nur möchte ich den Code gern auch verstehen. Kannst Du mir bspw. mal folgende Zeilen kurz erläutern (bin ein absoluter Neuling !! ;-)

      1) ist $buch ein Hash (ich dachte, der müßte immer mit % anfangen?)
      $buch{$Anfangsbuchstabe}++; 
      

      2) Was bewirkt diese Schleife?
      foreach ("A".."Z")
      

      3) Was bedeutet denn das {$_}?
      if ($buch{$_})
        
      

      Danke für Deine Tipps?

      David

     Antworten

    Beitrag von RaveDave (33 Beiträge) am Mittwoch, 29.Januar.2003, 18:06.
    VIELEN DANK EUCH BEIDEN. Es funktioniert !!!!!!

     Antworten


     
 Liste der Einträge von 40800 bis 40950: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.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!