Mitgliederliste mit Seitennavigation

Gesperrt
donner_blitz
Beiträge: 103
Registriert: Mi 28. Sep 2005, 08:50
Kontaktdaten:

Mitgliederliste mit Seitennavigation

Beitrag 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?
gruß donner_blitz
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag 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.
donner_blitz
Beiträge: 103
Registriert: Mi 28. Sep 2005, 08:50
Kontaktdaten:

Danke für die schnelle Antwort

Beitrag 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.
gruß donner_blitz
Contenider
Beiträge: 503
Registriert: Do 6. Apr 2006, 01:40
Kontaktdaten:

Beitrag von Contenider »

Warum benutzt Du nicht einfach vorher die Suche? Die Suchfuktion dieses Boards findest Du oben zwischen FAQ und der Mitgliederliste.
Ειμαστε στη μεση απο κατι...
php0815
Beiträge: 373
Registriert: Mi 26. Okt 2005, 12:12
Wohnort: Schwarzwald
Kontaktdaten:

Beitrag 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>";
}
In der Ruhe liegt die Kraft den wer suchet der findet
Wer Rechtschreibfehler findet kann sie behalten, Codefehler können gemeldet werden.
donner_blitz
Beiträge: 103
Registriert: Mi 28. Sep 2005, 08:50
Kontaktdaten:

Danke für die Antwort

Beitrag 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>";
}
gruß donner_blitz
php0815
Beiträge: 373
Registriert: Mi 26. Okt 2005, 12:12
Wohnort: Schwarzwald
Kontaktdaten:

Beitrag 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>";
}

?>

Zuletzt geändert von php0815 am So 8. Okt 2006, 17:34, insgesamt 1-mal geändert.
In der Ruhe liegt die Kraft den wer suchet der findet
Wer Rechtschreibfehler findet kann sie behalten, Codefehler können gemeldet werden.
donner_blitz
Beiträge: 103
Registriert: Mi 28. Sep 2005, 08:50
Kontaktdaten:

Fehler in der Ausführung

Beitrag 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?
gruß donner_blitz
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag 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'");
donner_blitz
Beiträge: 103
Registriert: Mi 28. Sep 2005, 08:50
Kontaktdaten:

Immer noch Fehler

Beitrag 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.
gruß donner_blitz
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: Immer noch Fehler

Beitrag 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
donner_blitz
Beiträge: 103
Registriert: Mi 28. Sep 2005, 08:50
Kontaktdaten:

Re: Immer noch Fehler

Beitrag 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?
gruß donner_blitz
php0815
Beiträge: 373
Registriert: Mi 26. Okt 2005, 12:12
Wohnort: Schwarzwald
Kontaktdaten:

Beitrag 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
In der Ruhe liegt die Kraft den wer suchet der findet
Wer Rechtschreibfehler findet kann sie behalten, Codefehler können gemeldet werden.
Gesperrt