Seite 1 von 1

Mitgliederliste mit Seitennavigation

Verfasst: Fr 6. Okt 2006, 08:32
von donner_blitz
Hallo zusammen,

hat schon mal jemand versucht die Mitgliederliste so umzustricken, dass man zum Beispiel nach 20 Mitgliedern einen Seitenwechsel hat.

Es kann ja durchaus passieren, dass man 40 oder mehr Mitglieder in seiner Datenbank hat. Jetzt sollen aber pro Seite maximal 20 Mitglieder angezeigt werden.

Hat das jemand mit Seitenumbruch schon mal probiert und möglicherweise schon eine Lösung?

Verfasst: Fr 6. Okt 2006, 08:45
von Dodger77
Meinst du dieses Modul?

http://www.contenido.org/forum/viewtopi ... iederliste

Es könnte Sinn machen, in dem Thread selbst mal zu fragen. Aber bisher hat zumindest keiner etwas in der Art veröffentlicht.

Danke für die schnelle Antwort

Verfasst: Fr 6. Okt 2006, 09:12
von donner_blitz
Da sollte übrigens auch die Frage rein. Nur habe ich versehentlich auf NEW TOPIC geklickt und geschrieben statt auf QUOTE.

Ist das möglich dass man die Frage dorthin verschiebt?

Dodger77 hat geschrieben:Meinst du dieses Modul?

http://www.contenido.org/forum/viewtopi ... iederliste

Es könnte Sinn machen, in dem Thread selbst mal zu fragen. Aber bisher hat zumindest keiner etwas in der Art veröffentlicht.

Verfasst: Sa 7. Okt 2006, 05:42
von Contenider
Warum benutzt Du nicht einfach vorher die Suche? Die Suchfuktion dieses Boards findest Du oben zwischen FAQ und der Mitgliederliste.

Verfasst: Sa 7. Okt 2006, 07:08
von php0815
Das habe ich auch hier aus dem Bord
Input

Code: Alles auswählen

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
 <tr class=\"text_medium\">
  <td>Datensätze pro Seite</td>
  <td><input type=\"text\" name=\"CMS_VAR[0]\" value=\"CMS_VALUE[0]\" size=\"2\"/></td>
 </tr>";
echo"</table>";
im output folgendes einfügen bzw. ändern
Ganz oben einfügen

Code: Alles auswählen

// Datendefinition für die Clientausgabe
$start = (isset($start)) ? abs((int)$start) : 0;
$limit = $CMS_VALUE[0];

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

Code: Alles auswählen

ORDER BY $sort, Nachname
LIMIT '.$start.','.$limit.' ");
nach der Bildschirmausgabe einfügen

Code: Alles auswählen

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

if ($start + $limit < $total)
{
  $newStart = $start + $limit;
  echo " <a href=front_content.php/?idcat=".$idcat."&start=".$newStart
      .">vor >></a>";
}

Danke für die Antwort

Verfasst: Sa 7. Okt 2006, 11:30
von donner_blitz
Danke für die Info, aber irgendwie scheine ich wohl ein bisschen blöd zu sein. Es funktioniert überhaupt nicht. Das mit dem $start usw. passst nicht zusammen.

Gibt es das Modul als komplettes Modul zum downloaden?

Ich glaube das wäre dann für mich einfacher. Denn irgendwie blicke ich durch den Code nicht mehr durch.

php0815 hat geschrieben:Das habe ich auch hier aus dem Bord
Input

Code: Alles auswählen

echo "<table cellspacing="0" cellpadding="10" border="0">
 <tr class="text_medium">
  <td>Datensätze pro Seite</td>
  <td><input type="text" name="CMS_VAR[0]" value="CMS_VALUE[0]" size="2"/></td>
 </tr>";
echo"</table>";
im output folgendes einfügen bzw. ändern
Ganz oben einfügen

Code: Alles auswählen

// Datendefinition für die Clientausgabe
$start = (isset($start)) ? abs((int)$start) : 0;
$limit = $CMS_VALUE[0];

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

Code: Alles auswählen

ORDER BY $sort, Nachname
LIMIT '.$start.','.$limit.' ");
nach der Bildschirmausgabe einfügen

Code: Alles auswählen

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

if ($start + $limit < $total)
{
  $newStart = $start + $limit;
  echo " <a href=front_content.php/?idcat=".$idcat."&start=".$newStart
      .">vor >></a>";
}

Verfasst: Sa 7. Okt 2006, 18:39
von php0815
Hatte gerade meine soziale Stunde und habe es dir eingebaut auf eigene Gefahr, habe es nicht getestet.

Code: Alles auswählen

<?php


/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname:    einfache Mitgliederliste - Datenausgabe
* Author(s):    Mc
* Erstellt:     13-03-2006
* Modifiziert:  10.04.2006 $idcatart als Variable fuer Anpassung des Pfades
* Motifiziert:  09.04.2006 aktiv als Variable; alle Buchstaben des Alphabets werden angezeigt, nur die vorhandenen Anfangsbuchstaben bei den Nachnamen werden fuer die Auswahl verlinkt; feste Zellenbreite fuer die Tabelle; MouseOver bei Ueberfahren des Datensatzes
* Beschreibung: Ausgabe von Adressdaten aus der Tabelle con_adressen (muss vorher neu angelegt werden) mit verschiedenen Sortier- und Auswahlmöglichkeiten
* Anpassung:    Angepasst werden muss die idcatart des aktuellen Artikels in der Variablen $idcatart
* Beispiel:     http://www.wirtschaftsrat-erlangen.de/front_content.php?idcat=18
* ToDo:         Verlinkung auf den vollständigen Datensatz; erfolgt im angegebenen Beispiel wegen des Datenschutzes nicht
************************************************/

// Anzahl der Datensätze auslesen
$resultsum = @mysql_query("SELECT Count(id) FROM con_adressen WHERE aktiv=$aktiv");  
while ( $row = mysql_fetch_array($resultsum) ) {

           $total= $row["Count(id)"]; 
}
// Datendefinition für die Clientausgabe
$start = (isset($start)) ? abs((int)$start) : 0;
$limit = $CMS_VALUE[0];

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

//Anpassungen
$idcatart = "48"; //idcatart des aktuellen Artikels
$pfad = "front_content.php?idcatart=" . $idcatart;
//Anpassungen Ende

$dbConnect = new DB_Contenido;

$sort = $_GET['sort'];
$alpha = $_GET['alpha'];
$aktiv = 1;//aktiv =1: nur die aktiven Datensaetze
//-----------------------

?>
<p>
<table class="text" width="100%" cellspacing=1 cellpadding=2 bgcolor="#CCCCCC">
  <tr>
    <td class="text" bgcolor="#E2E2E2">alphabetische Auswahl</td>
  </tr>
  <tr>
    <td class="text" bgcolor="#E2E2E2" valign="top">

<!--------------------- alphabetische Auswahl ------------------>

<?php
// Array erstellen mit den Buchstaben des Alphabetes
$Aliste = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");

// es werden nur diejenigen Buchstaben des Alphabetes ausgelesen, zu denen ein Nachname existiert
// und dann im Array $array gespeichert
$array = array(); // Hierdurch wird ein Array namens $array ohne Inhalt initialisiert
$result = @mysql_query("SELECT DISTINCT LEFT(Nachname,1) AS Buchstaben  FROM con_adressen WHERE aktiv = $aktiv ORDER BY Nachname LIMIT '$start','$limit'");
if (!$result) {
    echo("<p>Fehler bei der Ausf&uuml;hrung der Abfrage: " . mysql_error() . "</p>");
    exit();
}
while($row = mysql_fetch_array($result)) {
    $Buchstabe = $row["Buchstaben"];
    $array[] = $Buchstabe;
}
//ab hier Ausgabe des Alphabetes mit Verlinkung der vorhandenen Buchstaben
for ($i=0; $i<28; $i++) {
    $text = $Aliste[$i]; //Buchstaben des Alphabetes auslesen
      if(in_array($text, $array)) {//Ueberpruefung, ob der Buchstabe $text im array enthalten ist
        $text = "<a href=\"".$pfad."&alpha=".$text."\">".$text."</a>";
      }
echo $text."&nbsp;&nbsp;";
}
?>

      <a href="<?php echo $pfad; ?>">alle</a><br>
    </td>
  </tr>
</table>
<!--------------------- Ende alphabetische Auswahl ------------------>

<?php
// Datensaetze abfragen mit unterschiedlichen Sortiervorgaben: $sort (Nachname, PLZ, Ort, ..) bzw. $alpha (Ausgabe nur derjenigen Datensätze mit entsprechendem Anfangsbuchstaben im Nachnamen; wenn weder $sort noch $alpha übergeben wurde, erfolgt Ausgabe aller Datensätze sortiert nach dem Nachnamen. Wenn $alpha vorgewaehlt wurde, kann innerhalb des Buchstabens nach Nachname, Beruf usw. sortiert werden.


if(isset($sort) && empty($alpha)){
    $result = @mysql_query("SELECT id, Titel, Vorname, Nachname, Beruf, PLZ, Ort, aktiv FROM con_adressen WHERE aktiv=$aktiv ORDER BY $sort, Nachname LIMIT '$start','$limit'");
}
elseif (isset($alpha) && empty($sort)){
    $result = @mysql_query("SELECT id, Titel, Vorname, Nachname, Beruf, PLZ, Ort, aktiv FROM con_adressen WHERE aktiv=$aktiv AND Nachname LIKE '$alpha%' ORDER BY Nachname LIMIT '$start','$limit'");
}
elseif ($alpha && $sort){
    $result = @mysql_query("SELECT id, Titel, Vorname, Nachname, Beruf, PLZ, Ort, aktiv FROM con_adressen WHERE aktiv=$aktiv AND Nachname LIKE '$alpha%' ORDER BY $sort, Nachname LIMIT '$start','$limit'");
}
else {
    $result = @mysql_query("SELECT id, Titel, Vorname, Nachname, Beruf, PLZ, Ort, aktiv FROM con_adressen WHERE aktiv=$aktiv ORDER BY Nachname");
}

// jeden Datensatz in einer Zeile anzeigen

echo "<table align=\"left\" class=\"text\" width=\"100%\" cellspacing=1 cellpadding=2 bgcolor=\"#CCCCCC\">";
echo "<tr><td bgcolor=\"#E2E2E2\" width=\"190px\"><b><a href =\"".$pfad."&sort=Nachname&alpha=".$alpha."\">Name</a>, Titel Vorname </b></td><td bgcolor=\"#E2E2E2\" width=\"360px\"><b><a href =\"".$pfad."&sort=Beruf&alpha=".$alpha."\">Beruf/Firma</a></b></td><td bgcolor=\"#E2E2E2\" width=\"50px\"><b><a href =\"".$pfad."&sort=PLZ&alpha=".$alpha."\">PLZ</a></b></td><td bgcolor=\"#E2E2E2\" width=\"140px\"><b><a href =\"".$pfad."&sort=Ort&alpha=".$alpha."\">Ort</a></b></td></tr>\n";

while ( $row = mysql_fetch_array($result) ) {

           $id = $row["id"];
           $Titel = $row["Titel"];
           $Vorname = $row["Vorname"];
           $Nachname = $row["Nachname"];
           $Beruf = $row["Beruf"];
           $PLZ = $row["PLZ"];
           $Ort = $row["Ort"];
           $aktiv = $row["aktiv"];


    echo "<tr bgcolor=\"E2E2E2\" onMouseOver=this.style.backgroundColor=\"#E2EDD7\"; onMouseOut=this.style.backgroundColor=\"#E2E2E2\"; valign=\"top\"><td><nobr>" . $Nachname . ", " . $Titel . " " . $Vorname ."</nobr></td>  <td>" . $Beruf ."</td><td>" . $PLZ ."</td><td>". $Ort . "</td></tr>\n";
}

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

if ($start + $limit < $total)
{
  $newStart = $start + $limit;
  echo " <a href=front_content.php/?idcat=".$idcat."&start=".$newStart
      .">vor >></a>";
}

?>


Fehler in der Ausführung

Verfasst: So 8. Okt 2006, 10:41
von donner_blitz
Danke zunächst mal, aber leider taucht da ein Fehler bei der Ausführung auf.

Code: Alles auswählen

Fehler bei der Ausführung der Abfrage: 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 ''.-10.','.10.'' at line 1
Die Anzahlübergabe funktioniert wohl. Aber es wird statt der Liste halt dieser Fehler angezeigt. Woran kann das liegen?

Verfasst: So 8. Okt 2006, 11:49
von stese
an den punkten in den sql statements. nimm mal in allen sql statements die punkte da raus (denn die resultieren noch aus ner anderen schreibweise):

Code: Alles auswählen

'.$start.','.$limit.'");
das muss so lauten

Code: Alles auswählen

'$start','$limit'");

Immer noch Fehler

Verfasst: So 8. Okt 2006, 12:48
von donner_blitz
Ich habe die Punkte rausgenommen, aber der Fehler erscheint immer noch.

Code: Alles auswählen

Fehler bei der Ausführung der Abfrage: 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 ''-10','10'' at line 1
Kann das sein das der Fehler im folgenden Code steckt?

Code: Alles auswählen

// Datendefinition für die Clientausgabe 
$start = (isset($start)) ? abs((int)$start) : 0; 
$limit = $CMS_VALUE[0];


// Ggf. $start korrigieren (falls Parameter in der URL manipuliert wurde) 
$start = ($start >= $total) ? $total - $limit : $start; 
Ich bin da ein wenig ratlos, denn der Befehl mit dem ? ist mir noch nicht geläufig. Davon habe ich noch nichts gehört oder gelesen.

Re: Immer noch Fehler

Verfasst: So 8. Okt 2006, 13:08
von Dodger77
donner_blitz hat geschrieben:Ich bin da ein wenig ratlos, denn der Befehl mit dem ? ist mir noch nicht geläufig. Davon habe ich noch nichts gehört oder gelesen.
Dann lies mal hier:

http://de3.php.net/manual/de/language.o ... arison.php

Re: Immer noch Fehler

Verfasst: So 8. Okt 2006, 13:17
von donner_blitz
OK. Soweit glaube ich habe ich es verstanden. Ich denke dass ich den Fehler entdeckt habe aber nicht weiss wie ich es korrigieren muss. In dem Code

Code: Alles auswählen

// Datendefinition für die Clientausgabe 
$start = (isset($start)) ? abs((int)$start) : 0; 
$limit = $CMS_VALUE[0];

// Ggf. $start korrigieren (falls Parameter in der URL manipuliert wurde) 
$start = ($start >= $total) ? $total - $limit : $start; 
wird mit der Variablen $total gerechnet. Nur wird diese Variable nirgends definiert, bzw. wird nirgends errechnet.

Wie also kann das jetzt berechnet werden?

Verfasst: So 8. Okt 2006, 17:16
von php0815
Weis nicht ob das richtig ist aber ich habe das vergessen mit rein zu machen :cry:

Code: Alles auswählen

     $resultsum = @mysql_query("SELECT Count(id) FROM con_adressen WHERE aktiv=$aktiv");  
while ( $row = mysql_fetch_array($resultsum) ) {

           $total= $row["Count(id)"]; 
}
bin nicht der php Guru hoffe der Code stimmt :(

habe es oben abgeändert