Ersatz zum HTML <div> Statement

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ersatz zum HTML <div> Statement

    Hallöle,

    ich habe da ein kleines Problem mit der positionierung der Anzeige mit "div". Um das zu Umgehen würde ich gerne die Anzahl der Datensätze meiner Ausgabe beschränken (auf 15). Bernie hat mir vor einiger Zeit zu dem Problem einen link auf die demoBrowsDB.php gemailt, aber leider bin ich mit meinen Anfänglichen PHP Kenntnissen nicht in der Lage das auf mein Anliegen anzupassen. Deshalb nochmals dieser Schrei nach Hilfeeeeeee!!!. In meinen Script gebe ich die Datensätze nach einer Abfage auf die DB (siehe unten) aus. Nun würde ich gerne diese Anzeige gerne beschränken so das pro Seite nur 15 Datensätze angezeigt werden und die Seite mit "vor" und "zurück" Buttons oder ähnliches versehen.
    Bitte helft einem verzweifelten PHP Einsteiger.

    Hier mein ScriptTeil:
    _________________________________________________
    function tab_outdvd($result,$Kennung)
    {
    global $Basis_R;
    echo "<div id='dvdout' style='position:absolute; Height:200; width:700; left:250; top:80'>";
    echo "<table width=100% height=20px border=0 cellpadding='2' cellspacing='2'>";
    echo "<tr bgcolor='#0066FF'>";
    echo "<th width='15%'><font color='#FFFFFF'>Bestell-Nr</font></th>";
    echo "<th width='5%'><font color='#FFFFFF'></font></th>";
    echo "<th><font color='#FFFFFF'>Artikel (zur Detailbeschreibung bitte anklicken)</font></th>";
    echo "<th width='15%'><font color='#FFFFFF'>Preis</font></th>";
    echo "</tr>";
    echo "<tr>";
    while ($row = mysql_fetch_array($result,MYSQL_NUM))
    {
    echo "<td align='center'><font size='-1'>$row[3]</font></td>";
    if ($row[18]=="1")
    {echo "<td><img src='$Basis_R/bilder/tabneu.jpg' align='middle'></td>";}
    if ($row[18]=="")
    {echo "<td><img src='$Basis_R/bilder/tabnneu.gif'></td>";}
    if ($row[18]=="0")
    {echo "<td><img src='$Basis_R/bilder/tabnneu.gif'></td>";}
    echo "<td><font size='-1'><a href='$Basis_R/beschreibung_dvd.php?A_ArtNr=$row[3]&Kennung=$Kennung'>$row[4]</a>
    </font></td><td><font size='-1'><b><center>$row[6] DM </center></b></font></td>";
    echo "</tr>";
    }

    echo "</table>"; echo "</div>";
    } // tab_outDVD
    ________________________________________
    (Momentan wird diese Seite immernoch bei der Anzeige mit einem Scrollbalken versehen, denn ich wie schon erwähnt durch die Beschränkte Anzeige ersetzen möchte)

    Tausend Dank im voraus
    Euer Wombel

    Markus Schulz
    www.marbrilu.de

  • #2
    mit dem LIMIT-Befehl im Query kannst du das erreichen:

    $result=mysql_query("SELECT * FROM tabellenname WHERE feldname=bedingung ORDER BY feldname LIMIT 0,15");

    LIMIT 0,15 sorgt dafür, daß nur die ersten 15 Datensätze im Resultset selektiert werden bzw. diese Resultset erzeugen. Die nächsten 15 Treffer würdest du mit LIMIT 15,15 bekommen, also die erste Zahl ist der Startpunkt und die zweite die Laufweite.

    Zweite Möglichkeit wäre ein Zähler in der While-Schleife, die dann nur noch bis 15 läuft:

    $i=0;
    while ($i<15) {
    $row = mysql_fetch_array($result,MYSQL_NUM);
    ...
    $i++;
    }

    Kommentar


    • #3
      Einen Schritt weiter

      Super,

      ich bin ich einen Schritt weiter. Danke. Hast Du villeicht noch eine Idee wie ich das mit der Anzeige Seitenwesie hinbekomme?? Ich muss jetzt ja auch einen dynamischen link erstellen so, das er immmer nur 15 Dtensätze anzeigt.

      Gruß
      Wombel
      Markus Schulz
      www.marbrilu.de

      Kommentar


      • #4
        du meinst doch sicher, daß du 15 Datensätze gezeigt haben möchtest und noch einen Button für "Seite vorwärts" bzw. "Seite zurück", oder??
        Okay, wenn du den Query mit dem LIMIT-Befehl durchführst, geht das eigentlich relativ einfach, in dem du als Parameter den Startpunkt des LIMIT übergibst. Schrittweite ist ja immer gleich bei 15 Datensätzen. Ist der Parameter nicht gesetzt (erster Aufruf), dann gehts los bei 0.
        Code:
        if ($limit=="") $limit=0;
        $resultgesamt=mysql_query("SELECT * FROM tabellenname WHERE feldname=bedingung");
        $gesamt_anzahl=mysql_num_rows($resultgesamt);
        $result=mysql_query("SELECT * FROM tabellenname WHERE feldname=bedingung ORDER BY feldname LIMIT $limit,15"); 
        
        if ($limit>15) {
        	echo "<a href=\"pfad/dieses_skript.php3?limit=".($limit-15)."\" target=\"_self\">zurück</a>";
        	}
        if (($limit+15)<$gesamt_anzahl) {
        	echo "<a href=\"pfad/dieses_skript.php3?limit=".($limit+15)."\" target=\"_self\">vorwärts</a>";
        	}
        
        while ($row = mysql_fetch_array($result,MYSQL_NUM)) { 
        // Ausgabe der 15 Datensätze 
        }

        Kommentar


        • #5
          Einen Schritt weiter

          Hallöle,
          erstmal supergroßen Dank für den Tip. Ich bin einen Schritt weiter, allerdings habe ich noch ein Problem mit dem link. Wenn ich auf "vorwärts" klicke wird leider nur eine leere Seite angezeigt und ich weiss noch nicht wo ich einen Denkfehler gemacht habe. Hier mal einen Auszug aus meinem Script (erst der Alte Teil und unten dann die angepaaste Seitenweise Version)
          ________________________________________________
          $myartikel =new artikel;
          mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw");
          $Kennung=get_id($Kennung);
          ShopMenue($Basis_R,$Kennung);
          $result=mysql("$db","SELECT * FROM artikel WHERE ArtGrNr='$AGN' AND ArtUGrNr='$AUGN' ORDER BY ArtName");
          AusgF("Arial","Artikelauswahl: <br><br>");
          tab_outdvd($result,$Kennung);

          // die Funktion tab_outdvd sieht wie folgt aus:
          // function tab_outdvd($result,$Kennung) {
          // global $Basis_R;
          // ...hier folgen ein paar Tabellen Angaben
          // while ($row = mysql_fetch_array($result,MYSQL_NUM))
          // {
          // echo "<td><font size='-1'><div align='center'>$row[3]
          // </font></div></td>";
          // <a href='$Basis_R/beschreibung_dvd.php?A_ArtNr=$row[3]&Kennung=$Kennung'>$row[4]</a>
          // </font></div></td><td><font size='-1'><b><center>$row[6]
          // DM </center></b></font></td>";
          // echo "</tr>";
          // }
          // echo "</table>";
          // } // tab_outDVD

          # das ist meine Urfassung
          ## NEU - hier die angepasste Version

          $myartikel =new artikel;
          mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw");
          $Kennung=get_id($Kennung);
          ShopMenue($Basis_R,$Kennung);
          AusgF("Arial","Artikelauswahl: <br><br>");

          if ($limit=="") $limit=0;
          $resultgesamt=mysql_query("$db","SELECT * FROM artikel WHERE ArtGrNr='$AGN' AND ArtUGrNr='$AUGN' ORDER BY ArtName");
          $gesamt_anzahl=mysql_num_rows($resultgesamt);
          $result=mysql_query("SELECT * FROM artikel WHERE ArtGrNr='$AGN' AND ArtUGrNr='$AUGN' ORDER BY ArtName LIMIT $limit,15");
          if ($limit>15) {
          echo "<a href=\"$Basis_R/artikel.php?Kennung=$Kennung&limit=".($limit-15)."\" target=\"_self\">zurück</a>";
          }
          if (($limit+15)<$gesamt_anzahl) {
          echo "<a href=\"$Basis_R/artikel.php?Kennung=$Kennung&limit=".($limit+15)."\" target=\"_self\">vorwärts</a>";
          }
          while ($row = mysql_fetch_array($result,MYSQL_NUM)) {
          // Ausgabe der 15 Datensätze
          }
          tab_outdvd($result,$Kennung);
          }
          (Leider wird hier momentan nur auf eine leere Seite gelinkt, anstatt wie gewünscht die nächsten 15 Treffer anzuzeigen).
          ______________________________________________________
          Wäre echt super wenn mir jemand mitteilen kann, wo ich denn hier den Fehler gemacht habe.

          Gruß
          Euer Wombel
          Markus Schulz
          www.marbrilu.de

          Kommentar


          • #6
            ich würde mal sagen, daß dir die Parameter für deinen Select beim erneuten Aufruf fehlen -> du mußt auch noch ...&AGN=".$AGN."&AUGN=".$AUGN."... in die Links reinhängen. Dafür ist deine Kennung überflüssig, da beim erneuten Aufruf sowieso die Connect neu hergestellt wird.

            Kommentar


            • #7
              Super Dank! Hat funktioniert!

              Original geschrieben von BrainBug
              ich würde mal sagen, daß dir die Parameter für deinen Select beim erneuten Aufruf fehlen -> du mußt auch noch ...&AGN=".$AGN."&AUGN=".$AUGN."... in die Links reinhängen. Dafür ist deine Kennung überflüssig, da beim erneuten Aufruf sowieso die Connect neu hergestellt wird.
              Hallöle,

              Super herzllichen Dank! Ich habe es hinbekommen. Ich wollte mich nur noch mal bedanken.
              Bis denn

              Euer Wombel
              Markus Schulz
              www.marbrilu.de

              Kommentar

              Lädt...
              X