Ausgabe der Daten in einer Unterschriftenliste.

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
derd
Mitglied
Beiträge: 1176
Registriert: 19.04.2004 19:30
Wohnort: Aue
Kontaktdaten:

Ausgabe der Daten in einer Unterschriftenliste.

Beitrag von derd »

Hallo,

ich habe eine Unterschriftenliste http://derd.rof-aue.de/unterschriften .
Das Problem ist das die alten einträge als erste angezeigt werden.

Gibt es ein möglichkeit die Datenbank so auszulesen das die neuen Einträge als erstes angezeigt werden?

Die Liste wird so ausgebeben

Code: Alles auswählen

<!-- ########## Anzeigen der Liste -->

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY background="http://derd.ath.cx/grafik/back.jpg" text="#004080" link="#004080" vlink="#004080" alink="#004080">
<table border="0" cellpadding="2" align="center" bgcolor="#FFCC33" height="0">
    <tr bgcolor="#FFFFFF"> 
      <td height="31"><a href="http://titanic-museum-germany.de/" target="_blank"><img src="http://derd.157046.vserver.de/phpBB2/templates/subSilver/images/logo_phpBB.gif" width="177" height="67" border="0"></a></td>
    </tr>
  </table><br><br><br>
<?

$db = mysql_connect("$mysql_host","$mysql_user","$mysql_pass") or die ( "<H3>Datenbankserver nicht erreichbar oder Verbindungsdaten nicht korrekt.</H3>");
mysql_select_db("$mysql_db",$db) or die ( "<H3>Datenbank-Auswahl fehlgeschlagen.</H3>");

$r = mysql_query("SELECT COUNT(id) FROM $mysql_tabelle",$db);
$total = @mysql_result($r,0);

$limit = 25;

if (!isset($page) || !intval($page))
 { $page = 1; }

if (!$total)
 { $total_pages = 0; }
elseif ($total <= $limit)
 { $total_pages = 1; }
elseif ($total % $limit == 0)
 { $total_pages = $total / $limit; }
else
 { $total_pages = ceil($total / $limit); }

if ($page > $total_pages)
 { $page = 1; }

if (!$total)
 { $first = 0; }
else
 { $first = $limit * $page - $limit + 1; }

if (!$total)
 { $last = 0; }
elseif ($page == $total_pages)
 { $last = $total; }
else
 { $last = $limit * $page; }

$offset = $limit * $page - $limit;
$paging_next = "&raquo;";
$paging_back = "&laquo;";
$range = "5";

$offset = $offset;

$html = "";

if ($total_pages > 1)
{
 $page_back = $page - 1;
 $page_next = $page + 1;

 if ($page_back > 0) {
   $html .= "<a href=\"?page=1\">Erste Seite</a>&nbsp;&nbsp;";
   $html .= "<a href=\"?page=$page_back\"><<<</a>&nbsp;&nbsp;";
  }

  for ($page_num = 1; $page_num <= $total_pages; $page_num++) {
   if ($page_num >= ($page-$range) && $page_num <= ($page+$range))
    {
     if ($page == $page_num)
      { $html .= "<b>$page_num</b>&nbsp;&nbsp;"; }
     else
      { $html .= "<a href=\"?page=$page_num\">$page_num</a>&nbsp;&nbsp;"; }
     }
   }
 
     if ($page_next <= $total_pages)
      { 
       $html .= "<a href=\"?page=$page_next\">>>></a>&nbsp;&nbsp;";
       $html .= "<a href=\"?page=$total_pages\">Letzte Seite</a>";
      }
  }

$res = mysql_query("SELECT *, DATE_FORMAT(datum,'%d.%m.%Y') as wann FROM $mysql_tabelle LIMIT $offset,$limit",$db);
$num = mysql_num_rows($res);

?>
<table cellspacing="0" cellpadding="0" width="50%" align="center">
  <tr> 
    <td>
      <p><b><u><font color="#FF0000">Wofür unterschreibe ich?</font></u></b><br>
      </p>
      <p><b>Mit Ihrer Unterschrift bringen Sie ihre persönliche Befürwortung der 
        <a href="zielsetzung.htm" target="_blank">Zielsetzung</a> dieser Initiative 
        zum Ausdruck.<br>
        Ihre E-Mail wird weder veröffentlicht noch an dritte weitergegeben.<br>
        Nach dem erfolgreichen Ende der Initiative werden Ihre Daten gelöscht. </b></p>
    </td>
  </tr>
</table><br><br>
<center><a href="?a=eintragen"><b><font size="4" color="#FF0000">Hier eintragen</font></b></a><p></center>

<table width=50%  align=center border=1 cellpadding="2" cellspacing="0" bordercolorlight="#FFCC33" bordercolordark="#FFCC33" bgcolor="#FFFFFF">

<?

while ($daten = mysql_fetch_array($res))
{
?>
<tr>
<td><?php echo $daten[vorname] ?> <?php echo $daten[nachname] ?></td>
<td><?php echo $daten[ort] ?></td>
<td><?php echo $daten[wann] ?></td>
</tr>

<?

}

?>

</table><p>

<?

echo "<center>Einträge: <b>$total</b> auf <b>$total_pages</b> Seite(n). Zeige Eintrag <b>$first</b> bis <b>$last</b>.<p></center>";
echo "$html";

?>

</BODY>
</HTML>

<!-- ########## Anzeigen der Liste -->
Ich habe schon vieles versucht. Aber leider mehr versaut als das´sich etwas geändert hat. Vieleicht kann mir ja einer von euch helfen :P

Bye derd
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Wie wärs mit Table sortieren ?

Ich seh nirgendwo ein Order By......
Und da es dieses nicht gibt ist default die Sortierung aufsteigend sprich ascending (asc) aktiv.......

Gegenteil von asc ist desc (descending).....

Aber das ist alles schön im MySQL Manual z.B. erklärt sofern man sich die mühe macht................
Benutzeravatar
derd
Mitglied
Beiträge: 1176
Registriert: 19.04.2004 19:30
Wohnort: Aue
Kontaktdaten:

Beitrag von derd »

Also Tabellen Sortieren habe ich probiert aber er behällt die Einstellungen nicht bei.

Ich habe mich Extra belesen:

http://dev.mysql.com/doc/mysql/de/sorting-rows.html

Ich habe den Befehl ausgeführt:

Code: Alles auswählen

SELECT `id` , `datum` , `nachname` , `vorname` , `ort` , `email` 
FROM `aktion` 
WHERE 1 
ORDER BY `id` DESC  LIMIT 0 , 30

Ich suche immer erst die Manuell durch eh ich Fragen stelle. Meist komme ich weiter. Nur bei dieser kleinen Unterschriftenliste. Meist liegt ja der Hund im Detail begraben :P

EDIT:

Irgendwie muss also noch die Funktion ORDER BY id DESC (in der Art)
eingebaut werden aber wo und wie. Das ist die Große Frage :o :roll: . Bisher bekomme ich nur parse error.
Vieleicht hat ja jemand nen Tip bzw Denkanstoß.
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

ehm du willst das Datum chronologisch ordnen. Aber du sortierst nach der id die fortlaufend ist aber überhaupt gar nicht nach dem Datum was im eigentlichen Sinne das Alter des Datensatzes angibt.......

Demzufolge ist die jetzige Reihenfolge reiner Zufall.....
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Blutgerinsel hat geschrieben:Ich seh nirgendwo ein Order By......
Und da es dieses nicht gibt ist default die Sortierung aufsteigend sprich ascending (asc) aktiv.......
ohne order by wird gar nicht sortiert. Bei MySQL kommen die Ergebnisse dann i.d.R. in der Reihenfolge, in der sie eingefügt wurden. Aber bei anderen DBMS kann es schon ganz anders aussehen.
KB:knigge
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Ja Chef, hab richtig gedacht aber falsch beschrieben.....:wink:

BTW: Zum Glück liest hier Jemand noch mit.....

<ot>
und nu lass ich mich mit Hustensaft vollaufen
</ot>
Benutzeravatar
derd
Mitglied
Beiträge: 1176
Registriert: 19.04.2004 19:30
Wohnort: Aue
Kontaktdaten:

Beitrag von derd »

Hallo,

das Problem ist gelöst.

Ein bekannter hat es mir umgeschriben. Der auch die Unterschriftenliste geschrieben hat.

gesucht:

Code: Alles auswählen


$res = mysql_query("SELECT *, DATE_FORMAT(datum,'%d.%m.%Y') as wann FROM 
Ersetzt durch:

Code: Alles auswählen

$res = mysql_query("SELECT *, DATE_FORMAT(datum,'%d.%m.%Y') as wann FROM $mysql_tabelle ORDER BY datum DESC LIMIT $offset,$limit",$db);
Bye derd
Antworten

Zurück zu „Coding & Technik“