Spieler Liste

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

Re: Vorschlag

Beitrag von donner_blitz »

Mc hat geschrieben:Das mit der Spielerliste müsste so funktionieren:

Zwei neue Tabellen anlegen:

Code: Alles auswählen

CREATE TABLE `con_spieler` (
`id` INT NOT NULL AUTO_INCREMENT,
`vorname` VARCHAR( 25 ) NOT NULL ,
`name` VARCHAR( 25 ) NOT NULL ,
`kategorie` INT NOT NULL ,
PRIMARY KEY ( `id` ) 
);


CREATE TABLE `con_spieler_kategorie` (
`id` INT NOT NULL AUTO_INCREMENT,
`kategorie` VARCHAR( 25 ) NOT NULL ,
PRIMARY KEY ( `id` ) 
);
Tabellen zunächst "per Hand bestücken". Ich habe mir für ähnliche Dinge ein Modul erstellt, mit dem ich im geschützten Bereich im frontend die Daten eingeben kann.

Modul erstellen (nur output):

Code: Alles auswählen

<?php
/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname  :      Spielerliste
* Author(s)   :     Mc
* Created     :     13-03-2006 
************************************************/ 

$dbConnect = new DB_Contenido;


    // alle Kategorien abfragen aus Tabelle con_spieler_kategorie
    $sql1 = "SELECT id, kategorie FROM con_spieler_kategorie";
    $result1 = @mysql_query($sql1);
    if (!$result1) {
        echo("<p>Fehler bei der Ausf&uuml;hrung der Abfrage: " . mysql_error() . "</p>");
        exit();
    }
  
    // Kategorien ins array $row auslesen
    while ( $row1 = mysql_fetch_array($result1) ) {
        $id_kategorie = $row1["id"];
        $kategorie = $row1["kategorie"];
        echo "<b>$kategorie</b><br>";
          
          //Spieler der dazugehoerigen Kategorie abfragen; die id der Kategorie wird an die Abfrage uebergeben
          $sql2 = "SELECT vorname, name, kategorie FROM con_spieler WHERE kategorie = $id_kategorie ORDER BY name";
          $result2 = @mysql_query($sql2);
          if (!$result2) {
              echo("<p>Fehler bei der Ausf&uuml;hrung der Abfrage: " . mysql_error() . "</p>");
              exit();
          }

          while ( $row2 = mysql_fetch_array($result2) ) {
              $vorname = $row2["vorname"];
              $name = $row2["name"];
         
              echo $vorname." ".$name."<br>";
          }         
        echo "&nbsp;<br>"; 
    }
?>
Formatierungen wurden noch nicht vorgenommen.
Bitte um Nachsicht, bin php-Anfänger

Gruß Mc
Ich würde das Modul gerne erweitern. Ich möchte gerne dem Spielr noch einen Verein hinzufügen. Also erfolgt eine weitere Tabelle mit dem Namen con_verein. Diese Tabelle hat nur zwei felder (id / verein). Wie kann ich das Ausgabe Modul nun so erweitern, das zum Spieler nicht nur die Kategorie sondern auch der Verein angezeigt wird. Bei meinem Veruch das richtig zu organisieren zeigt er mir leider immer nur den ersten Datensatz an.

Was ist daran falsch?

Hier mein Versuch:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Spielerliste
* Author(s)   :     Mc
* Created     :     13-03-2006
************************************************/

$dbConnect = new DB_Contenido;


    // alle Kategorien abfragen aus Tabelle con_spieler_kategorie
    $sql1 = "SELECT id, kategorie FROM con_spieler_kategorie";
    $result1 = @mysql_query($sql1);
    if (!$result1) {
        echo("<p>Fehler bei der Ausf&uuml;hrung der Abfrage: " . mysql_error() . "</p>");
        exit();
    }


    // alle Vereine abfragen aus Tabelle con_verein
    $sql2 = "SELECT id, verein FROM con_verein";
    $result2 = @mysql_query($sql2);
    if (!$result2) {
        echo("<p>Fehler bei der Ausf&uuml;hrung der Abfrage: " . mysql_error() . "</p>");
        exit();
    }

    // Kategorien und Vereine ins array $row auslesen
    while ( $row1 = mysql_fetch_array($result1) and  $row2 = mysql_fetch_array($result2) ) {
        $id_kategorie = $row1["id"];
        $kategorie = $row1["kategorie"];
        $id_verein = $row2["id"];
        $verein = $row2["verein"];

        echo "<b>$kategorie"." "."$verein</b><br>";

          //Spieler der dazugehoerigen Kategorie abfragen; die id der Kategorie wird an die Abfrage uebergeben
          $sql3 = "SELECT vorname, name, kategorie, verein FROM con_spieler WHERE kategorie =$id_kategorie and verein = $id_verein ORDER BY name";
          $result3 = @mysql_query($sql3);
          if (!$result3) {
              echo("<p>Fehler bei der Ausf&uuml;hrung der Abfrage: " . mysql_error() . "</p>");
              exit();
          }

          while ( $row3 = mysql_fetch_array($result3) ) {
              $vorname = $row3["vorname"];
              $name = $row3["name"];

              echo $vorname." ".$name."<br>";
          }
        echo "&nbsp;<br>";
    }
?>
Vielen Dank schon mal im Vorraus
Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

lookup-Tabelle

Beitrag von Mc »

@donner_blitz
Deinen echo-Befehlen entnehme ich Folgendes:

Beispiel:
Basketball - Verein 1
Spieler 1
Spieler 2
Spieler 3
Basketball - Verein 2
Spieler 4
....

Handball - Verein 1

Hier können zu einer Sportart viele Vereine gehören, ein Verein kann aber auch viele Sportabteilungen haben. Also eine viele-zu-viele-Beziehung. Das müsstest du mit einer lookup-Tabelle erstellen, in der Sportart und Verein verknüpft werden.

Vielleicht hat ja ein Profi eine bessere Lösung.

Da ich gerade selbst das neu lerne, kann ich dir das leider noch nicht gleich hinschreiben.
Ich werd's aber mal in den nächsten Tagen probieren.

Gruß Mc
Da Maxl
Beiträge: 26
Registriert: Mo 4. Apr 2005, 12:41
Wohnort: München
Kontaktdaten:

Beitrag von Da Maxl »

Mc hat geschrieben:Die Übersichtsseite der Ausgabe könnte so aussehen:

http://www.wirtschaftsrat-erlangen.de/f ... p?idcat=18
Das sieht richtig gut aus! Problem ist nur, dass beim Filter auch Buchstaben angeklickt werden für die es keinen Namen gibt. Abhilfe wäre eine vorgeschaltetet SQL-Abfrage mit ..

Code: Alles auswählen

SELECT DISTINCT LEFT(name,1) FROM `tab_personen` ORDER BY name
.. und die Buchstaben werden in einer Schleife ausgegeben.[/code]
... denn sie wissen nicht was sie tun ...
Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

alphabetische Ausgabe

Beitrag von Mc »

Hallo Da Maxl,

vielen Dank für den Hinweis. Ich habe mal das entsprechende Codestück angehängt.
Ein Problem: In der Liste ist eine Nachname "von ...". Da wird dann ein kleines v ausgelesen.

Noch schöner wäre es natürlich, wenn alle Buchstaben des Alphabetes angezeigt würden, aber nur die vorkommenden verlinkt würden. Hast du da eine Idee?

Gruß Mc

Code: Alles auswählen

<tr>
<td class="text" bgcolor="#E2E2E2"><tt>
<?php
$result = @mysql_query("SELECT DISTINCT LEFT(Nachname,1) AS Buchstaben  FROM con_adressen ORDER BY Nachname");
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"];
    echo "<a href=\"".$pfad."&alpha=".$Buchstabe." \">".$Buchstabe."</a>&nbsp;";        
}               
?>
<a href="<?php echo $pfad ?>">alle</a><br>
</tt></td>
</tr>
Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Beitrag von Mc »

Hier das überarbeitete Modul zur Ausgabe einer Mitgliederliste:
- Vorschlag von Da Maxl eingearbeitet
- Sortierung verbessert: Es kann jetzt innerhalb eines Buchstabens nach Nachname, Beruf, Ort, PLZ sortiert werden.

siehe: http://www.wirtschaftsrat-erlangen.de/f ... p?idcat=18

Gruß Mc

Code: Alles auswählen

<?php

/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname:    Mitgliederliste 1
* Author(s):    Mc 
* Created:      13-03-2006
* 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 idcat des aktuellen Artikels in der Variablen $pfad 
* Beispiel:     http://www.wirtschaftsrat-erlangen.de/front_content.php?idcat=18
* ToDo:         Verlinkung auf den vollständigen Datensatz
************************************************/ 


$sort = $_GET['sort'];
$alpha = $_GET['alpha'];
$pfad = "front_content.php?idcat=18"; //idcat des aktuellen Artikels

$dbConnect = new DB_Contenido;

//-----------------------

?>
<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"><tt>
<?php
// es werden nur diejenigen Buchstaben des Alphabetes ausgelesen, zu denen ein Nachname existiert  
$result = @mysql_query("SELECT DISTINCT LEFT(Nachname,1) AS Buchstaben  FROM con_adressen ORDER BY Nachname");
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"];
    echo "<a href=\"".$pfad."&alpha=".$Buchstabe." \">".$Buchstabe."</a>&nbsp;";        
}               
?>
<a href="<?php echo $pfad ?>">alle</a><br>
</tt></td>
</tr>
</table>
</p>
<?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=1 ORDER BY $sort, Nachname");
}
elseif (isset($alpha) && empty($sort)){
    $result = @mysql_query("SELECT id, Titel, Vorname, Nachname, Beruf, PLZ, Ort, aktiv FROM con_adressen WHERE aktiv=1 AND Nachname LIKE '$alpha%' ORDER BY Nachname");
}
elseif ($alpha && $sort){
    $result = @mysql_query("SELECT id, Titel, Vorname, Nachname, Beruf, PLZ, Ort, aktiv FROM con_adressen WHERE aktiv=1 AND Nachname LIKE '$alpha%' ORDER BY $sort, Nachname");
}
else {
    $result = @mysql_query("SELECT id, Titel, Vorname, Nachname, Beruf, PLZ, Ort, aktiv FROM con_adressen WHERE aktiv=1 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 bgcolor=\"#FFFFFF\"><td bgcolor=\"#E2E2E2\"><b><a href =\"".$pfad."&sort=Nachname&alpha=".$alpha."\">Name</a>, Titel Vorname </b></td>  <td bgcolor=\"#E2E2E2\"><b><a href =\"".$pfad."&sort=Beruf&alpha=".$alpha."\">Beruf/Firma</a></b></td> <td bgcolor=\"#E2E2E2\"><b><a href =\"".$pfad."&sort=PLZ&alpha=".$alpha."\">PLZ</a></b></td> <td bgcolor=\"#E2E2E2\"><b><a href =\"".$pfad."&sort=Ort&alpha=".$alpha."\">Ort</a></b></td></tr>";

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=\"#FFFFFF\"><td bgcolor=\"#E2E2E2\"><nobr>" . $Nachname . ", " . $Titel . " " . $Vorname ."</nobr></td>  <td bgcolor=\"#E2E2E2\">" . $Beruf ."</td>  <td bgcolor=\"#E2E2E2\">" . $PLZ ."</td>   <td bgcolor=\"#E2E2E2\">". $Ort . "</td></tr>";
}

//Nur notwendig, wenn auch Anfangsbuchstaben angegeben werden, zu denen kein Datensatz vorliegt
/*if (empty($Nachname)) {
    echo "<tr><td class=\"text\">&nbsp;<br>Zu diesem Anfangsbuchstaben liegt kein Datensatz vor</td></tr>";
}*/    
echo "</table>";

?>
Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Spieler mit kategorie und Verein

Beitrag von Mc »

@donner_blitz

Hier mal eine Lösung. Geht wahrscheinlich eleganter. Funktioniert aber.

Gruß Mc

Code: Alles auswählen

/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname  :      Spielerliste mit zwei Kategorien (Kategorie, Verein)
* Author(s)   :     Mc
* Created     :     24-03-2006 
************************************************/ 

$dbConnect = new DB_Contenido;

    // alle Kategorien abfragen aus Tabelle con_spieler_kategorie
    $sql1 = "SELECT id, Kategorie FROM con_spieler_kategorie";
    $result1 = @mysql_query($sql1);
    if (!$result1) {
        echo("<p>Fehler bei der Ausf&uuml;hrung der Abfrage: " . mysql_error() . "</p>");
        exit();
    }
    // Kategorien ins array $row auslesen
    while ( $row1 = mysql_fetch_array($result1) ) {
        $id_kategorie = $row1["id"];
        $kategorie = $row1["Kategorie"];
        
          
          //Vereine der dazugehoerigen Kategorie abfragen; die id der Kategorie wird an die Abfrage uebergeben
          $sql2 = "SELECT DISTINCT kid, vid, con_spieler_verein.id, Verein FROM con_spieler, con_spieler_verein WHERE kid = $id_kategorie AND vid = con_spieler_verein.id ORDER BY Verein";
          $result2 = @mysql_query($sql2);
          if (!$result2) {
              echo("<p>Fehler bei der Ausf&uuml;hrung der Abfrage: " . mysql_error() . "</p>");
              exit();
          }
          while ( $row2 = mysql_fetch_array($result2) ) {
              $id_verein = $row2["vid"];
              $verein = $row2["Verein"];
              echo "<b>$kategorie&nbsp;-"."&nbsp;$verein</b><br>";
              
          //Spieler abfragen
              $sql3 = "SELECT DISTINCT con_spieler.id, Vorname, Name, kid, vid FROM con_spieler WHERE kid = $id_kategorie AND vid = $id_verein ORDER BY Name";
              $result3 = @mysql_query($sql3);
              if (!$result3) {
                echo("<p>Fehler bei der Ausf&uuml;hrung der Abfrage: " . mysql_error() . "</p>");
                exit();
              }
              while ( $row3 = mysql_fetch_array($result3) ) {
                $vorname = $row3["Vorname"];
                $name = $row3["Name"];
                echo $vorname." ".$name."<br>";
              }//Ende while Spieler         
          }//Ende while Verein         
         echo "&nbsp;<br>"; 
         
        
    }//Ende while Kategorie
?>
Und hier die Tabellen:

Code: Alles auswählen

/*************************
Drei neue Tabellen anlegen

CREATE TABLE `con_spieler` (
`id` INT NOT NULL AUTO_INCREMENT,
`vorname` VARCHAR( 25 ) NOT NULL ,
`name` VARCHAR( 25 ) NOT NULL ,
`kid` INT NOT NULL ,
`vid` INT NOT NULL ,
PRIMARY KEY ( `id` ) 
);


CREATE TABLE `con_spieler_kategorie` (
`id` INT NOT NULL AUTO_INCREMENT,
`Kategorie` VARCHAR( 25 ) NOT NULL ,
PRIMARY KEY ( `id` ) 
);

CREATE TABLE `con_spieler_verein` (
`id` INT NOT NULL AUTO_INCREMENT,
`Verein` VARCHAR( 40 ) NOT NULL ,
PRIMARY KEY ( `id` ) 
);
***********************/
Zuletzt geändert von Mc am Do 30. Mär 2006, 14:33, insgesamt 1-mal geändert.
walsi24
Beiträge: 95
Registriert: Di 25. Okt 2005, 20:48
Kontaktdaten:

Spielerliste -> Skorerliste?

Beitrag von walsi24 »

Hallo danke erstmals an MC für die Liste... nun eine Frage wäre das schwer draus eine Skorerliste zu machen... d.H einfach noch ein Feld wo man die Goals, Assists und Punkte reinknallen kann und danach sortieren?
So wie man das in Excel kann?

Gruzz walsi24
Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Beitrag von Mc »

@ walsi24

Nimm doch einfach die verbesserte Mitgliederliste und tausche z. B. PLZ gegen Score aus.

Interessanter stelle ich mir das Eingabemodul vor. Hier sollte man nach jedem Spiel nur die neuen Punkte eintragen, die dann automatisch in der Datenbank hinzuaddiert werden. Müsste gehen, aber wie gesagt, bin auch Anfänger.
Müssten nicht auch nach Goals, Assists und Punkten getrennt werden in extra Feldern?

Hast du mal eine Beispielseite?

Gruß Mc
walsi24
Beiträge: 95
Registriert: Di 25. Okt 2005, 20:48
Kontaktdaten:

Skorerliste

Beitrag von walsi24 »

so was wie hier http://www.ihcsf.ch/inhalt/scorerliste. ... wyear=2005 doch hier weiss ich das es mit excel gemacht wurde und naja das wäre dann die einfache unsaubere lösung...
donner_blitz
Beiträge: 103
Registriert: Mi 28. Sep 2005, 08:50
Kontaktdaten:

Re: Spieler mit kategorie und Verein

Beitrag von donner_blitz »

Hallo MC,

ich habe deinen Code übernommen und getestet, jedoch zeigt mir das System immer noch ein Fehlermeldung an. Ich habe mir drei Tabellen angelegt:

Code: Alles auswählen

CREATE TABLE `con_spieler` ( 
`id` INT NOT NULL AUTO_INCREMENT, 
`vorname` VARCHAR( 25 ) NOT NULL , 
`name` VARCHAR( 25 ) NOT NULL , 
`kategorie` INT NOT NULL , 
`verein` INT NOT NULL , 
PRIMARY KEY ( `id` ) 
); 


CREATE TABLE `con_spieler_kategorie` ( 
`id` INT NOT NULL AUTO_INCREMENT, 
`kategorie` VARCHAR( 25 ) NOT NULL , 
PRIMARY KEY ( `id` ) 
); 

CREATE TABLE `con_spieler_verein` ( 
`id` INT NOT NULL AUTO_INCREMENT, 
`verein` VARCHAR( 25 ) NOT NULL , 
PRIMARY KEY ( `id` ) 
); 
Wie du siehst, füge ich dem Spieler jeweils die id-nummer der Tabelle con_spieler_kategorie und con_spieler_verein ein.

In der Ausgabe deines Moduls wird mir allerdings folgender Fehler angezeigt:

Code: Alles auswählen

Fehler bei der Ausführung der Abfrage: Unknown column 'kid' in 'field list'
Woran kann das liegen?
Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Beitrag von Mc »

@donner_blitz

Sorry, hatte die Bezeichnungen geändert.
Ich habe nun zum Modul die Tabellen angehängt.

In der con_spieler ist kid die id der Kategorie und vid die id des Vereins.

Gruß Mc
BlackFX
Beiträge: 21
Registriert: Sa 9. Jul 2005, 10:03
Kontaktdaten:

Beitrag von BlackFX »

Hi,

könntest Du Dein Modul für die Eingabe der Daten auch mal posten? Wäre klasse... ;)

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

Beitrag von donner_blitz »

BlackFX hat geschrieben:Hi,

könntest Du Dein Modul für die Eingabe der Daten auch mal posten? Wäre klasse... ;)

Danke
Bislang bin ich noch dabei alles per Hand in die Datenbank einzugeben. Ich programmiere aber zur Zeit das passende Modul. Wenn es fertig ist, werde ich posten.
Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Modul Mitgliederliste überarbeitet (nicht Spielerliste!!)

Beitrag von Mc »

Das Modul Mitgliederliste (nicht Spielerliste!!) wurde überarbeitet, u. a. werden jetzt alle Buchstaben des Alphabetes angegebn, nur die tatsächlich in den Nachnamen vorkommenden Anfangsbuchstaben sind verlinkt.

siehe: http://www.wirtschaftsrat-erlangen.de/f ... p?idcat=18

Code: Alles auswählen

<?php

/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname:    Mitgliederliste 1
* Author(s):    Mc 
* Erstellt:     13-03-2006
* 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 idcat des aktuellen Artikels in der Variablen $pfad 
* 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
************************************************/ 


$sort = $_GET['sort'];
$alpha = $_GET['alpha'];
$pfad = "front_content.php?idcat=18"; //idcat des aktuellen Artikels
$aktiv = 1;//aktiv =1: nur die aktiven Datensaetze
$dbConnect = new DB_Contenido;

//-----------------------

?>
<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");
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");
}
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");
}
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");
}
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>";

?>
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Super! Wäre es Dir möglich, alles mit einer Beschreibung zusammenzustellen und ein neues Topic unter Module aufzumachen?

Dann muss man nicht durch das ganze Topic, um alle Informationen und den Code zu finden... Danke.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt