Sascha: Tabelle mit n Einträgen und möchte auf jeder Seite m anzeigen.

Beitrag lesen

Hallo Martin,

erstmal besten Dank für deine Antwort im Forum von SELFHTML.
Nun habe ich mal mein Script verändert aufgrund deiner Antwort und es sieht
nun so aus:

//Blätterfunktion Test Beginn
//diese Funktion ist eingebunden in config.php4

function showonelinktest($id,$schriftfarbe,$schriftart,$h_titel,$h_beschr) {

// Datendefinition für Datenbankverbindung.

$table    = "downloadprogramme";    // Der Name der Datenbanktabelle

// Datendefinition für die Clientausgabe
$start = (isset($start)) ? abs((int)$start) : 0;
$limit = 5;                     // Datensätze pro Ausgabeseite

// Feststellen der Anzahl der verfügbaren Datensätze.
$resultID = @mysql_query("SELECT COUNT(ID) FROM ".$table);
$total    = @mysql_result($resultID,0);

// Ggf. $start korrigieren (falls Parameter in
// der URL manipuliert wurde)
$start    = ($start >= $total) ? $total - $limit : $start;

// Datenbankabfrage ausführen.
$abfrage    = "SELECT ID,* FROM ".$table
           ." LIMIT ".$start.",".$limit;
$resultID = @mysql_query($abfrage);

if ($neu=='5') {
        $dead = "#C67878";
        } else {
        $dead = "#CDCDCD";
        }
                $hplink = urlencode($hplink);
                $programmlink = urlencode($programmlink);
                $screenshotlink = urlencode($screenshotlink);
                $datum_array = split("-","$datum");

$datum = "$datum_array[2].$datum_array[1].$datum_array[0] ";
                if ($bb=='') {
                $bb = "-";
                }

// Ergebnisse lesen und an den Client ausgeben
while ($data = mysql_fetch_array($resultID))
{

echo "
 <table border rules=groups width="500" border="1" cellpadding="2"
cellspacing="1">
  <tr>
     <td colspan="2" align="left" nowrap bgcolor="$h_titel">

<font face="$schriftart" size="2"> <b>";

echo '<a href="index.php4?session=dl&id='. urlencode $data[id] . '">' .
htmlspecialchars $data[titel] . '</a>';

echo "</b></font>

</td>
  </tr>
  <tr>
     <td bgcolor="$h_beschr">
        <div align="left"><font face="$schriftart"
size="1">Aufgenommen am: $data[datum] </font></div>
      </td>
   </tr>
   <tr>
      <td bgcolor="#FFFFFF" valign="top">
        <div align=justify><font face="$schriftart"
size="2">Kurzbeschreibung:<br><br>$data[kurzbeschreibung]</font></div>
      </td>
    </tr>
    <tr>
      <td bgcolor="$h_beschr" height="20">
        <div align="left"> <img src="$data[sprache]"
alt="Sprache" border="0">    <font
face="$schriftart" size="1">Lizenz: $data[lizenz] </font>
     
<font face="$schriftart" size="1">System-Voraussetzung:
$data[braucht]</font></div>
        </td>
     </tr>

<tr>
        <td bgcolor="$h_titel">
      <!--<div align="left"><font face="$schriftart" size="2"> <a
href="deadlink.php4?id=$id&bereich=$bereich"><font
color="#FF0000">[Defekter Link?]</font></a> </font></div>-->
<div align="left"><font face="$schriftart" size="2"> Dateigröße:
$data[gross] $data[masseinheit] </font>  |  <font
face="$schriftart" size="2">Hits: $data[hits]   |   Vote:
$data[bb] </font></div>
        </td>
     </tr>
  </table>  <br><br> ";
  }

// Zurück- und Vorblättern
if ($start > 0)
{
  $newStart = ($start - $limit < 0) ? 0 : ($start-$limit);
  echo "<a href=".$PHP_SELF."?start=".$newStart
      ."><< zurück</a>";
}

if ($start + $limit < $total)
{
  $newStart = $start + $limit;
  echo " <a href=".$PHP_SELF."?start=".$newStart
      .">vor >></a>";

}
//Blätterfunktion Test Ende

Nur ich bekomme nach wie vor nach Einbindung von dieser Funktion in meiner
config.php4 einen Haufen an Fehlermeldungen, wenn ich die index.php4
aufrufe, obwohl in der index.php4 die Funktion noch nicht mal eingefügt bzw.
aufgerufen wird per Funktionsnamen.

Hier die Fehlermeldungen:

Warning: Can't connect to local MySQL server through socket
'/tmp/mysql.sock' (111) in /homepages/beta-version/index.php4 on line 262

Warning: MySQL Connection Failed: Can't connect to local MySQL server
through socket '/tmp/mysql.sock' (111) in /homepages/beta-version/index.php4
on line 262

Warning: MySQL: A link to the server could not be established in
/homepages/beta-version/index.php4 on line 262

Warning: Supplied argument is not a valid MySQL result resource in
/homepages/beta-version/index.php4 on line 264

Warning: Can't connect to local MySQL server through socket
'/tmp/mysql.sock' (111) in /homepages/beta-version/config.php4 on line 78

Warning: MySQL Connection Failed: Can't connect to local MySQL server
through socket '/tmp/mysql.sock' (111) in
/homepages/beta-version/config.php4 on line 78

Warning: MySQL: A link to the server could not be established in
/homepages/beta-version/config.php4 on line 78

Warning: Supplied argument is not a valid MySQL result resource in
/homepages/beta-version/config.php4 on line 79

Warning: Can't connect to local MySQL server through socket
'/tmp/mysql.sock' (111) in /homepages/beta-version/config.php4 on line 78

Warning: MySQL Connection Failed: Can't connect to local MySQL server
through socket '/tmp/mysql.sock' (111) in
/homepages/beta-version/config.php4 on line 78

Warning: MySQL: A link to the server could not be established in
/homepages/beta-version/config.php4 on line 78

Warning: Supplied argument is not a valid MySQL result resource in
/homepages/beta-version/config.php4 on line 79

Ich frage mich echt, warum da in der index.php4 diese Fehler auftauchen,
zumal diese Funktion dort noch nicht eingebunden ist!?

Hast du darauf vielleicht eine Erklärung bzw. eine Lösung, wie ich das
funktionsfähig bekommen könnte?

Besten Dank im voraus.

Mfg.

Sascha

Hi Sascha,

Ich habe diese Funktion in meine Configdatei reingeschrieben. Sobald ich diese Funktion in meiner Config drin habe, lässt sich meine Startdatei nicht mehr fehlerfrei ausführen. Der Fehler muß also in dieser Funktion meines Wissen nach drin sein, denn sobald die Funktion draussen ist, funktioniert alles bestens.

Es wäre hilfreich zu wissen welche Fehler ausgetreten sind - dann wird die Fehlersuche gleich um einiges einfacher, aber mal von kurz drüberfliegen:

// Datenbankabfrage ausführen.
$abfrage    = "SELECT ID,* FROM ".$table
           ." LIMIT ".$start.",".$limit;
$resultID = @mysql_query($abfrage);

$abfrage enthält nur den String für die eigenliche Abfrage, erst $resultID führt diese dann durch, daher kann

list($id,$titel,$beschreibung,$preis,$braucht,$hits,$bb,$neu,$datum,$bereich
,$hplink,$programmlink,$screenshotlink,$emaillink,$sprache,$lizenz,$gross,$m
asseinheit,$kurzbeschreibung) = mysql_fetch_row($abfrage);

auf keinen Fall funktionieren, da wie gesagt $abfrage nur den String deiner Abfrage enthält.

// Ergebnisse lesen und an den Client ausgeben
while ($data = mysql_fetch_array($resultID))
{

erst hier werden die Ergebnisse wirklich ausgelesen ($resultID)

htmlspecialchars ($titel) . '</a>';

daher können deine Ausgaben in dieser Form auch nicht funktionieren - richtiger wäre hier statt $titel -> $data[Titel] (falls die Spalte in der Datenbank wirklich _Titel_ heisst)

Wie gesagt, am besten mal die Fehlermeldung oder das Problem schildern, dann wirds einfacher.

liebe gruesse aus oesterreich
Martin