oliver: Seitensteuerung

Beitrag lesen

Hallo,

ich bin fast am Verzweifeln.
Ich versuche eine Seitensteuerung mit MSSQL aufzubauen, finde im Internet aber nur was fuer ODBC oder Mysql. Mit MySQL geht es ja ser einfach mit LIMIT. Ich nutze aber einen MSSQL7 Server, damit geht das nicht so einfach. Im PHP 4 Buch von Hot Stuff habe ich jetzt so etwas ueber ODBC gefunden. Da dachte ich mir, das kann ich eben auf MSSQL umstricken, hab mich wohl getaeuscht.
Hat evtl jemand lust oder Ahnung wie ich das hin bekomme??

Ich gebe schon mal den Text mit.

Danke im Vorraus
Oliver

<html><head>
<title>Der Shop Artikelliste</title>
</head><body bgcolor="#FFFFFF">

<?
   if (!isset($Gruppe)) {
     $Gruppe = "Sonstiges";
   }

$ODBC_Name = "Artikel";
   $Benutzer = "peter";
   $Passwort = "geheim";
   $SQLString = "SELECT ArtikelNr, Artikelname, ".
                        "Preis, Lieferzeit ".
                "FROM Artikel ".
                "WHERE Artikelgruppe ='$Gruppe'";
   $Quelle = odbc_connect($ODBC_Name, $Benutzer, $Passwort);
   $Ergebnis = odbc_exec($Quelle, $SQLString);

$SatzNr = 1;
   while (odbc_fetch_row($Ergebnis, $SatzNr)) {
      $Spalte1[] = odbc_result($Ergebnis, 1);
      $Spalte2[] = odbc_result($Ergebnis, 2);
      $Spalte3[] = odbc_result($Ergebnis, 3);
      $Spalte4[] = odbc_result($Ergebnis, 4);
      $SatzNr++;
   }
?>

<?
   //---- Seitensteuerung ---------------------
   $Zeilen = 11;
   $Max = count($Spalte1);
   $Seiten = ceil($Max / $Zeilen);

if (isset($Seite)) {
      $Start = ($Seite * $Zeilen) - $Zeilen;
      $Ende =  $Seite * $Zeilen -1;
   }
   else {
      $Start = 0;
      $Ende = $Zeilen - 1;
   }
   if ($Ende > $Max) {
      $Ende = $Max - 1;
   }
?>

<? //----- Tabellenkopf ----------------------- ?>
<table border="0" width="100%">
  <tr>
    <td width="100%" bgcolor="#339966" colspan="5">
      <h2 align="center"><font color="#FFFFFF">
         <? echo $Gruppe, " (", $Start + 1, " - ", $Ende + 1, ")" ?>
         </font>
      </h2>
    </td>
  </tr>
  <tr bgcolor="#339966">
    <td width="10%"><font color="#FFFFFF">
        ArtikelNr</font></td>
    <td width="35%"><font color="#FFFFFF">
        Artikelbezeichnung</font></td>
    <td width="15%" align="center">
        <font color="#FFFFFF">
        Preis (Euro)</font></td>
    <td width="20%" align="center">
        <font color="#FFFFFF">
        Lieferzeit</font></td>
    <td width="20%"></td>
  </tr>

<?
   //---- Datenausgabe ---------------------------
   for ($n = $Start; $n <= $Ende; $n++ ) {
       if (($n % 2) == 1) {
          $Farbe = "#DDFFDD";
       }
       else {
          $Farbe = "#FFFFFF";
       }
?>
  <tr bgcolor="<? echo $Farbe ?>">
    <td width="10%">
        <? echo $Spalte1[$n] ?>
    </td>
    <td width="35%">
        <? echo $Spalte2[$n] ?>
    </td>
    <td width="15%" align="right">
        <? echo number_format($Spalte3[$n], 2, ",", ".") ?>
    </td>
    <td width="20%">
        <? echo $Spalte4[$n] ?>
    </td>
    <td width="20%">
       <a href="Artikel.php?ArtikelNr=<?
                echo trim(strval($Spalte1[$n])),
               "&Gruppe=", $Gruppe ?>">
          In den Korb
       </a>
    </td>
  </tr>
<?  } ?>

<tr bgcolor="#339966">
    <td width="10%" height="10"></td>
    <td width="35%"></td>
    <td width="15%"></td>
    <td width="20%"></td>
    <td width="20%"></td>
  </tr>
</table>

<? //---- Links für Seitensteuerung ----------------- ?>
<table border="0" width="100%">
  <tr>
    <td width="20%">
       <a href="start.php">
          Artikelgruppen
       </a>
    </td>
    <td width="20%"></td>
    <td width="20%"></td>
    <td width="20%">
    <? for ($n = 1; $n <= $Seiten; $n++) { ?>
       <a href="artikelliste.php?Gruppe=<?
         echo $Gruppe,"&Seite=", $n ?>">
         [ <? echo $n ?> ]
       </a>
    <? } ?>
    </td>
    <td width="20%">
    </td>
  </tr>
</table>

</body>
</html>