Seite 1 von 1

[ERLEDIGT] Pagination

Verfasst: 12.01.2007 09:18
von Stupid
Hallo zusammen =)

Ich möchte gerne die Pagination umkehren, so dass die neusten Einträge auf der ersten Seite stehenund die ältesten auf der letzten. Wie mache ich das bzw was muss ich am folgenden Code ändern?

Code: Alles auswählen

// Beginn Startvariable auslesen und Pagination aufbauen  inkl. Tabellenanpassung (20 Zeilen)
        $zeilen = 10;
        $j = $_GET['start'];
        $pagination = generate_pagination("spendenliste.php?", count($don_row), $zeilen, $j, 1);
        for ($i=$j; $i<count($don_row); $i++) {
        $row = ($i%2) ? "row1" : "row2";
        echo "<tr>\n";
        echo "    <td class='" . $row . "'>" . $don_row[$i]['datum'] . "</td>\n";
        echo "    <td class='" . $row . "'>" . $don_row[$i]['name'] . "</td>\n";
        echo "    <td class='" . $row . "'>" . $don_row[$i]['betrag'] . "</td>\n";
        echo "</tr>";
        if ($i == ($j + $zeilen)) break;
        }
        // Ende Startvariable auslesen und Pagination aufbauen  inkl. Tabelleanpassung
   ?>
   <tr>
      <!-- Beginn Pagination ausgeben -->
      <td class="catBottom" colspan="3" align="right"><span class='nav'><?php print $pagination; ?></span></td>
      <!-- Ende Pagination ausgeben -->
Danke Euch schon mal im Voraus =)

lieben Gruss
Stupid

Re: Pagination

Verfasst: 12.01.2007 16:29
von nickvergessen
Stupid hat geschrieben:so dass die neusten Einträge auf der ersten Seite stehenund die ältesten auf der letzten. Wie mache ich das bzw was muss ich am folgenden Code ändern?
dann mach einfach nach der Abfrage aus der MySQL ein

Code: Alles auswählen

SELECT
    blab
FROM
    blub
ORDER BY
    datum DESC;
blab udn blub mit deinen Werten stehen lassen.

Verfasst: 14.01.2007 09:39
von Stupid
das ist die SQL-Abfrage.....

Code: Alles auswählen

$sql = "SELECT * FROM " . $table_prefix . "spendenliste"; 
if ( !($result = $db->sql_query($sql)) ) {
    message_die(GENERAL_ERROR, 'Konnte die Userdaten nicht auslesen', '', __LINE__, __FILE__, $sql);
}
$don_row = array();
$i = 0;
while ( $row = $db->sql_fetchrow($result) ) {
    $don_row[$i]['datum'] = $row['datum'];
    $don_row[$i]['name'] = $row['name'];
    $don_row[$i]['betrag'] = $row['betrag'];
    $i++;
}
$db->sql_freeresult($result); 

aber wenn ich ORDER BY... dahinter schreib, bekomm ich ständig nen Parse Error unexpected T_STRING

Code: Alles auswählen

$sql = "SELECT * FROM " . $table_prefix . "spendenliste" ORDER BY datum DESC; 

Code: Alles auswählen

$sql = "SELECT * FROM . $table_prefix . \"spendenliste\" ORDER BY datum DESC"; 
und hier bekomm ich

Code: Alles auswählen

Konnte die Userdaten nicht auslesen

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. "spendenliste" ORDER BY datum DESC' at line 1

SELECT * FROM . phpbb_ . "spendenliste" ORDER BY datum DESC

Line : 23
File : spendenliste.php
Was mache ich falsch? *verzweifelt guck

Verfasst: 15.01.2007 00:02
von gn#36
Stupid hat geschrieben:das ist die SQL-Abfrage.....

Code: Alles auswählen

$sql = "SELECT * FROM " . $table_prefix . "spendenliste"; 
if ( !($result = $db->sql_query($sql)) ) {
    message_die(GENERAL_ERROR, 'Konnte die Userdaten nicht auslesen', '', __LINE__, __FILE__, $sql);
}
$don_row = array();
$i = 0;
while ( $row = $db->sql_fetchrow($result) ) {
    $don_row[$i]['datum'] = $row['datum'];
    $don_row[$i]['name'] = $row['name'];
    $don_row[$i]['betrag'] = $row['betrag'];
    $i++;
}
$db->sql_freeresult($result); 

aber wenn ich ORDER BY... dahinter schreib, bekomm ich ständig nen Parse Error unexpected T_STRING

Code: Alles auswählen

$sql = "SELECT * FROM " . $table_prefix . "spendenliste" ORDER BY datum DESC; 
Das ist auch gut so, denn das ORDER BY datum DESC muss auch mit in die Anführungszeichen hinein...

Code: Alles auswählen

$sql = "SELECT * FROM . $table_prefix . "spendenliste" ORDER BY datum DESC"; 
und hier bekomm ich

Code: Alles auswählen

Konnte die Userdaten nicht auslesen

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. "spendenliste" ORDER BY datum DESC' at line 1

SELECT * FROM . phpbb_ . "spendenliste" ORDER BY datum DESC

Line : 23
File : spendenliste.php
das liegt daran, dass du jetzt überflüssige Anführungszeichen in deinem String drin hast. Richtig wäre so:

Code: Alles auswählen

$sql = "SELECT * FROM " . $table_prefix . "spendenliste ORDER BY datum DESC"; 

Verfasst: 15.01.2007 00:47
von Stupid
und ich dachte, das Wort spendenliste muss separat in Anführungszeichen bleiben, da es der Name der Tabelle in der Db ist....danke dir ganz lieb :grin: