Re: zufällige Ausgabe über merere Seiten - 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 Michael Koch (344 Beiträge) am Sonntag, 5.Mai.2002, 19:04.
    Re: zufällige Ausgabe über merere Seiten

      gibt es wirklich keine Lösung für das Blättern bei einer zufälligen Ausgabe ?

      Oder kann man die Ausgabe teilen ?

      Auch ein NEIN währe eine Antwort.


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Michael Koch (344 Beiträge) am Samstag, 4.Mai.2002, 18:39.
    zufällige Ausgabe über merere Seiten

      Hallo,

      Wie erreiche ich es, dass alle Datensätze ausgegeben werden?
      und dann auch noch über merere Seiten ?
      Auf einer Seite eine bestimmte Anzahl geht wunderbar mit nachvolgenden Quelltext.
      Den ich selber nicht ganz verstehe.:
      <html>
      <head>
      <title>zufällige Brückenfotos zum Preisausschreiben</title>
      

      </head>
      <body>
      <perl>
      for($i=0; $i<30;)
      {
      
      do
      {
          get "Id==? ", "bild";
        } while (index($ids, "$_id,")>=0);
      if($i>0) {
      #Beginn der Ausgabe
      

      hier ist meine Ausgabe

      #Ende der Ausgabe
      }
        $ids.="$_id,";
        $i++ ;
      } 
      </perl>
      <center>
      <include src=linksp>
      </center></div>
      </body></html>
      

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 4.Mai.2002, 20:38.
    Re: zufällige Ausgabe über merere Seiten

      Wenn Du alle Datensätze einer Datenbank zufällig sortiert ausgeben willst geht das sehr einfach mit "sort=?":

      <loop sort=?>
      
      ...die ausgabe...
      </loop>

     Antworten

    Beitrag von Michael Koch (344 Beiträge) am Samstag, 4.Mai.2002, 21:04.
    Re: zufällige Ausgabe über merere Seiten

      das hab ich hingekrigt,

      aber was muß im beim blättern mit übergeben ?

      Bei meinen anderen Seiten habe ich es so gemacht:
      (nur für deas Feld IDE)
      <perl>
            $append = $append."&IDE~=$IDE" if $IDE ne "";
      </perl>
      

     Antworten

    Beitrag von Olaf Mertgen (263 Beiträge) am Sonntag, 5.Mai.2002, 01:34. WWW: auto-surf.de
    Re: zufällige Ausgabe über merere Seiten

      Geht das auch mit PERL? Ich will z.B. 5 zufällige Datensätze. Ich hab mal folgendes probiert:
      get "sort=? range=0,5";
      
      Das geht aber nicht und das hier geht zwar, liefert aber immer die ersten 5 Datensätze:
      get "Id==* sort=? range=0,5";

     Antworten

    Beitrag von Michael Koch (344 Beiträge) am Sonntag, 5.Mai.2002, 17:17.
    Re: zufällige Ausgabe über merere Seiten

      Hier der Quelltext, mit dem ich 5 zufällige Bücher ausgebe:
      <html>
      <head>
      <title>zufällige Brücken- und Baufachbücher</title>
      <link rel="stylesheet" type="text/css" href="http://www.brueckenbau-links.de/brueckenbuch/bbuch5.css">
      </head>
      <body>
      <table  border="1" width="170" bordercolor="#7EB8FF" cellspacing="0" cellpadding="0"
      bordercolorlight="#7EB8FF" bordercolordark="#7EB8FF">
      <tr>
          <td width="100%"><p align="center"><a href="http://www.brueckenbau-links.de/brueckenbuch/index.htm" target="_blank">
          <img src="http://www.brueckenbau-links.de/brueckenbuch/buton/b-brueckenbuch-gr.jpg" 
          width="170" height="30" alt="Brueckenbuch.de" border="0"></a><br>
          <a href="http://www.brueckenbau-links.de/brueckenbuch/index.htm"
          target="_blank">Bridges bookstore</a></td>
      </tr>
      <perl>
      for($i=0; $i<6;)
      {
      
      do
      {
          get "Id==? Vorschau<>3x3.gif", "buecher";
        } while (index($ids, "$_id,")>=0);
      if($i>0) {
      out <<EOF;
      <tr>
       <td width="170"><small><p align="center"><a href="http://koch.netpure.de/cgi-bin/baseportal.pl?htx=/koch/buecher/buecher_3sp&cmd=all&Id==$_id" 
       target="_blank">$Titel<br>
       <img src="http://www.brueckenbau-links.de/brueckenbuch/$Vorschau" 
       alt="$Titel" border="0">
       </a><br>
       </td>
      </tr>
      EOF
      }
        $ids.="$_id,";
        $i++ if $Vorschau ne "3x3.gif";
      } 
      </perl>
      </table> 
      </body></html>
      

     Antworten

    Beitrag von Michael Koch (344 Beiträge) am Sonntag, 5.Mai.2002, 19:04.
    Re: zufällige Ausgabe über merere Seiten

      gibt es wirklich keine Lösung für das Blättern bei einer zufälligen Ausgabe ?

      Oder kann man die Ausgabe teilen ?

      Auch ein NEIN währe eine Antwort.

     Antworten

    Beitrag von Olaf Mertgen (Webmaster) (1 Beitrag) am Sonntag, 5.Mai.2002, 19:29. WWW: www.linkex4u.de
    Re: zufällige Ausgabe über merere Seiten

      Ich will mich da jetzt nicht festlegen, aber widerspricht sich das nicht. Blättern kann ich nur in einer geordneten Folge und die fehlt doch bei einer zufälligen Ausgabe. Meines Erachtens kann die Antwort daher nur "Nein" lauten.

     Antworten

    Beitrag von Michael Koch (344 Beiträge) am Sonntag, 5.Mai.2002, 20:55.
    Re: zufällige Ausgabe über merere Seiten

      ich bin ja ein Leihe in Perl,

      kann mann nicht auf der ersten Seiten alle Einträge zufällig auslesen und auf den Folgenden Seiten nach und nach ausgeben ?

     Antworten

    Beitrag von Olaf Mertgen (263 Beiträge) am Mittwoch, 8.Mai.2002, 18:15. WWW: auto-surf.de
    Re: zufällige Ausgabe über merere Seiten

      OK, man könnte sich natürlich die zufällige Reihenfolge einmalig erzeugen lassen, diese speichern und dann die Einträge entsprechend ausgeben. Dann könnte man auch eine Blätterfunktion bauen, aber das wäre alles ziemlich auffwendig, das würde ich mir gründlich überlegen, zumal wenn du noch Leihe in Perl bist.

      Gruß, Olaf

     Antworten

    Beitrag von Olaf Mertgen (263 Beiträge) am Sonntag, 5.Mai.2002, 19:27. WWW: auto-surf.de
    Re: zufällige Ausgabe über merere Seiten

      So hab ich das ja bis jetzt auch, du lässt aber nicht zufällig sortieren, sondern du holst dir einen Eintrag mit einer zufälligen ID.

      Das hat 2 entscheidene Nachteile:
      1.) Es kann passieren, dass du den gleichen Eintrag nochmal erhälst. Das kann man allerdings ausgleichen, indem man sich die erhaltenen IDs merkt und die Schleife verlängert, bis man 5 unterschiedliche Einträge hat.
      2.) Ich kann keine zusätzlichen Bedingungen stellen, denn wenn ich z.B. schreiben Id==?&Aktiv==1, dann kann es passieren, dass ich gar nichts zurückbekomme. Auch hier kann ich die Schleife natürlich solange durchlaufen, bis ich 5 passende Einträge habe.

      In beidem Fällen komme ich durch eine Verlängerung der Schleife zum gewünschten Ergebnis, aber ich benötige mehr Datenbankzugriffe. Besser wäre es, wenn ich in den Bedingungen und über über range 5 Einträge bekommen könnte und den Zufall über die zufällige Sortierung erreichen könnte. Man mag jetzt einwerfen, ob die Schleife jetzt 5 oder 10 mal durchlaufen wird, das macht ja keinen großen Unterschied. Das stimmt aber nur, wenn das Template insgesamt selten aufgerufen wird. Erfolgt der Zugriff aber mehrfach pro Sekunde, dann kommt es ganz entscheidend darauf an, so wenige Zugriffe auf die Datenbank wie möglich zu haben.

     Antworten

    Beitrag von Michael Koch (344 Beiträge) am Sonntag, 5.Mai.2002, 20:56.
    Re: zufällige Ausgabe über merere Seiten

      bei mir kommen keine doppelten Ausgaben bei einem Aufruf.
      Und sekundlich wird bei mir nicht abgefragt.

     Antworten

    Beitrag von Olaf Mertgen (263 Beiträge) am Mittwoch, 8.Mai.2002, 18:13. WWW: auto-surf.de
    Re: zufällige Ausgabe über merere Seiten

      Also das die nicht doppelt erscheinen, liegt daran, dass du überprüfst, ob die schon vorkommen:
      do {
        get "Id==? ", "bild";
      } while (index($ids, "$_id,")>=0);
      

      Du speicherst die bisherigen IDs und lässt get so oft aufrufen, bis die ID noch nicht in dem gespeicherten String steht. Das kostet eben Performance, geht aber, wenn die Seite nicht allzuoft aufgerufen wird.

      So wie du das hast, ist es aber gefährlich, da das ganze eine Endlosschleife gibt, wenn nicht genügend Datensätze in der Tabelle sind. Du willst insgesamt 6 Einträge haben, wenn in der Tabelle nur 5 drin sind, dann läuft sich die Schleife tot. Besser ist es, zusätzlich noch einen Counter einzubauen, dass z.B. spätestens nach 100 Durchläufen abbricht.

      Gruß, Olaf

     Antworten


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