Ankündigung

Einklappen
Keine Ankündigung bisher.

Gruppierte Tabelle aus MySQL Datenbank

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gruppierte Tabelle aus MySQL Datenbank

    Hallo Forumsgemeinde
    Ich komme da nicht weiter,da ich denke dass ich vom falschen Ansatz aus gehe.
    Ich habe eine MySQL-Tabelle mit folgenden Feldern:
    ID,Marke,Modell,Kategorie,Jahrgang,KM,Farbe,Klima, Optionen,Bild,Preis,aktiv
    Ich kann via PHP (mit Dreamweaver) eine Tabelle af der Website anzeigen die aller Fahrzeuge enthält.

    SO, nun zu meinem Problem:
    Ich möchte eine gruppierte Tabelle, alsi in etwa so:

    ¦Kategorie 1¦
    ¦ID¦Marke¦Modell¦Jahrgang¦KM¦Farbe¦Klima¦Optionen¦ Bild¦Preis¦aktiv¦
    Fahrzeug 1....................
    Fahrzeug 2....................

    ¦Kategorie 2¦
    ¦ID¦Marke¦Modell¦Jahrgang¦KM¦Farbe¦Klima¦Optionen¦ Bild¦Preis¦aktiv¦
    Fahrzeug 7....................
    Fahrzeug 19..................

    ¦Kategorie 3¦
    ¦ID¦Marke¦Modell¦Jahrgang¦KM¦Farbe¦Klima¦Optionen¦ Bild¦Preis¦aktiv¦
    Fahrzeug 5....................
    Fahrzeug 9..................

    etc.

    Ich versuch das mit 'Group BY' aber dann wirdnur noch ein Fahrzeug pro Kategorie angezeigt....

    1. Was mache ich falsch?
    2. Wie mache ich es richtig?

    Vielen Dank für Eure Hilfe


  • #2
    Gruppenbruch (Standardverfahren - PHP.de Wiki)

    Kommentar


    • #3
      Vielen Dank für den hilfreichen Tipp!!! (siehe Anhang)

      Ich hoffe doch, dass es noch einen etwas inhaltsvolleren Tipp gibt, als den Link auf eine leere Seite

      Kommentar


      • #4
        @ ChrisB: Dein Link führt zu einer leeren Seite - Ups

        Zum Thema: GROUP BY fasst alle Einträge in einer Spalte mit gleichem Inhalt zusammen. Der Sinn besteht darin, dass, wenn Du eine Autovermietung hast, und wissen willst welche Fahrzeugtypen angeboten werden, ist dies der richtige Weg.
        Deine Zielsetzung sollte über ORDER BY kategorie, fahrzeug zu realisieren sein.
        Oder Du machst mehrere Abfragen hintereinander wobei Du jede mit WHERE kategorie = "nummer" einer Kategorie zuordnest.

        Kommentar


        • #5
          Sorry, die automatische Verlinkung erkennt die schließende Klammer im Link nicht.

          Hier noch mal in Textform:
          http://www.php.de/wiki-php/index.php/Gruppenbruch_(Standardverfahren)

          Kommentar


          • #6
            ok, das hab ich dank deinem Link gefunden, da ich o gewusst habe, nach was ich googel muss.

            Trotzdem ist mir nicht klar, wo ich den Code einfügen muss, damit meine Tabelle gruppiert wird. Mein COde sieht im Moment, ohne gruppierung so aus:

            PHP-Code:
            <?php require_once('Connections/braun.php'); ?>
            <?php
            header
            ('Content-Type: text/html; charset=utf-8');
            if (!
            function_exists("GetSQLValueString")) {
            function 
            GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
            {
              if (
            PHP_VERSION 6) {
                
            $theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
              }

              
            $theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

              switch (
            $theType) {
                case 
            "text":
                  
            $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
                  break;    
                case 
            "long":
                case 
            "int":
                  
            $theValue = ($theValue != "") ? intval($theValue) : "NULL";
                  break;
                case 
            "double":
                  
            $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
                  break;
                case 
            "date":
                  
            $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
                  break;
                case 
            "defined":
                  
            $theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
                  break;
              }
              return 
            $theValue;
            }
            }

            $maxRows_rs_alle_aktiven_fahrzeuge 20;
            $pageNum_rs_alle_aktiven_fahrzeuge 0;
            if (isset(
            $_GET['pageNum_rs_alle_aktiven_fahrzeuge'])) {
              
            $pageNum_rs_alle_aktiven_fahrzeuge $_GET['pageNum_rs_alle_aktiven_fahrzeuge'];
            }
            $startRow_rs_alle_aktiven_fahrzeuge $pageNum_rs_alle_aktiven_fahrzeuge $maxRows_rs_alle_aktiven_fahrzeuge;

            mysql_query("SET NAMES 'utf8'");
            mysql_query("SET CHARACTER SET 'utf8'");
            mysql_select_db($database_braun$braun);
            $query_rs_alle_aktiven_fahrzeuge "SELECT * FROM vw_alleFZ WHERE vw_alleFZ.aktiv = 'Ja' ORDER BY vw_alleFZ.Marke ASC";
            $query_limit_rs_alle_aktiven_fahrzeuge sprintf("%s LIMIT %d, %d"$query_rs_alle_aktiven_fahrzeuge$startRow_rs_alle_aktiven_fahrzeuge$maxRows_rs_alle_aktiven_fahrzeuge);
            $rs_alle_aktiven_fahrzeuge mysql_query($query_limit_rs_alle_aktiven_fahrzeuge$braun) or die(mysql_error());
            $row_rs_alle_aktiven_fahrzeuge mysql_fetch_assoc($rs_alle_aktiven_fahrzeuge);

            if (isset(
            $_GET['totalRows_rs_alle_aktiven_fahrzeuge'])) {
              
            $totalRows_rs_alle_aktiven_fahrzeuge $_GET['totalRows_rs_alle_aktiven_fahrzeuge'];
            } else {
              
            $all_rs_alle_aktiven_fahrzeuge mysql_query($query_rs_alle_aktiven_fahrzeuge);
              
            $totalRows_rs_alle_aktiven_fahrzeuge mysql_num_rows($all_rs_alle_aktiven_fahrzeuge);
            }
            $totalPages_rs_alle_aktiven_fahrzeuge ceil($totalRows_rs_alle_aktiven_fahrzeuge/$maxRows_rs_alle_aktiven_fahrzeuge)-1;

            ?>
            und der Code für die Tabelle sieht so aus: (Teilausschnitt)

            PHP-Code:
                    <div id="content">
                            <div class="wrapper">
                              <div class="col2">
                              <div class="row1 box">
                                        <h2>Fahrzeuge</h2>
                                <p>Hier finde Sie laufend unsere aktuellen Angebote an Neu- und Vorführwagen sowie unsere Occasionen                            </p>
                                <p>&nbsp;</p>
                                <table border="0" cellpadding="0" cellspacing="0">
                                  <tr>
                                    <td><h4>ID</h4></td>
                                    <td><h4>Marke</h4></td>
                                    <td><h4>Modell</h4></td>
                                    <td><h4>Kategorie</h4></td>
                                    <td><h4>Jahrgang</h4></td>
                                    <td align="right"><h4>KM</h4></td>
                                    <td><h4>Farbe</h4></td>
                                    <td align="center"><h4>Klima</h4></td>
                                    <td><h4>Optionen</h4></td>
                                    <td><h4>Bild</h4></td>
                                    <td><h4>Preis</h4></td>
                                  </tr>
                                  <?php do { ?>
                                    <tr>
                                      <td><?php echo $row_rs_alle_aktiven_fahrzeuge['ID']; ?></td>
                                      <td><?php echo $row_rs_alle_aktiven_fahrzeuge['Marke']; ?></td>
                                      <td><?php echo $row_rs_alle_aktiven_fahrzeuge['Modell']; ?></td>
                                      <td><?php echo $row_rs_alle_aktiven_fahrzeuge['Kategorie']; ?></td>
                                      <td><?php echo $row_rs_alle_aktiven_fahrzeuge['Jahrgang']; ?></td>
                                      <td align="right"><?php echo $row_rs_alle_aktiven_fahrzeuge['KM']; ?></td>
                                      <td><?php echo $row_rs_alle_aktiven_fahrzeuge['Farbe']; ?></td>
                                      <td align="center"><?php echo $row_rs_alle_aktiven_fahrzeuge['Klima']; ?></td>
                                      <td><?php echo $row_rs_alle_aktiven_fahrzeuge['Optionen']; ?></td>
                                      <td><img src="images/fahrzeuge/<?php echo $row_rs_alle_aktiven_fahrzeuge['Bild']; ?>" alt="" width="60"/></td>
                                      <td><?php echo $row_rs_alle_aktiven_fahrzeuge['Preis']; ?>.--</td>
                                    </tr>
                                    <?php } while ($row_rs_alle_aktiven_fahrzeuge mysql_fetch_assoc($rs_alle_aktiven_fahrzeuge)); ?>
                                </table>
                                <p>&nbsp;</p>
                              </div>
            ...
            PHP-Code:
            <?php
            mysql_free_result
            ($rs_alle_aktiven_fahrzeuge);
            ?>

            Kommentar


            • #7
              Zitat von alkusa Beitrag anzeigen
              Trotzdem ist mir nicht klar, wo ich den Code einfügen muss, damit meine Tabelle gruppiert wird.
              Zuerst mal: Das ist die Beschreibung eines Verfahrens, das du verstehen solltest, um es anzuwenden. Erwarte nicht, dass du nur drei Zeilen per Copy&Paste übernehmen musst, und gut.


              Du sortierst deine Daten so, dass sie in der Reihenfolge vorliegen, in der du sie ausgeben willst.
              Und während der Ausgabe fragst du dann ab, ob vor der Ausgabe eines Datensatzes eine neue Kategorie-Überschrift ausgegeben werden muss.

              Kommentar


              • #8
                Zitat von ChrisB Beitrag anzeigen
                Das ist die Beschreibung eines Verfahrens, das du verstehen solltest, um es anzuwenden.
                OK, danke... aber vielleicht kannst Du mir ja noch ein wenig unter die Arme greifen...

                1. Ich sortiere die Daten mit der SQL-Abfrage so wie ich sie haben will. In meinem Beispiel wäre das nach Kategorie und innehalb der Kategorie nach Marke.
                => Das krieg ich hin. So habe ich eine Tabelle mit allen Daten, nach Kat. und Marke sortiert.

                Und nun kommt eben 2. Wo kommt der Code hin??
                => Wenn Du mir da noch einen kleinen Tipp geben kannst, ev. mit einem Beispiel, dann kann ich ja ausprobieren bis es klappt.

                Kommentar


                • #9
                  Zitat von alkusa Beitrag anzeigen
                  Wo kommt der Code hin??
                  Dadurch, dass du die Frage einfach wiederholst, wird's nicht besser.


                  Noch mal: Verstehe das Prinzip. Die genannte Seite hat unter Punkt 2) ein Beispiel, das es deutlich macht.
                  Und danach überlegst du dir, wo innerhalb deiner Ausgabeprozedur das für deinen Fall angewendet werden muss.

                  Kommentar


                  • #10
                    SO hab mal versucht das ganze gemäss deinen umfangreichen Erklärungen und dem Beispiel welche ich hier noch gefunden habe umzusetzen. Aber wie zu erwarten funktioniert es natürlich nicht!!

                    Ich erlaube mir den Code der neu erstellen Seite mal hier rein zu stellen in der Hoffnung (die Hoffnung stirbt zuletzt) das mir jemand eine aufschlussreiche Erklärung geben kann was da falsch ist.

                    PHP-Code:
                    <?php require_once('Connections/braun.php'); ?>
                    <?php
                    if (!function_exists("GetSQLValueString")) {
                    function 
                    GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
                    {
                      if (
                    PHP_VERSION 6) {
                        
                    $theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
                      }

                      
                    $theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

                      switch (
                    $theType) {
                        case 
                    "text":
                          
                    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
                          break;    
                        case 
                    "long":
                        case 
                    "int":
                          
                    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
                          break;
                        case 
                    "double":
                          
                    $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
                          break;
                        case 
                    "date":
                          
                    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
                          break;
                        case 
                    "defined":
                          
                    $theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
                          break;
                      }
                      return 
                    $theValue;
                    }
                    }

                    mysql_select_db($database_braun$braun);
                    $query_rs_alle_aktiven_FZ_Test "SELECT * FROM vw_alleFZ WHERE vw_alleFZ.aktiv = 'Ja' ORDER BY vw_alleFZ.KatID ASC,  vw_alleFZ.Marke ASC";
                    $rs_alle_aktiven_FZ_Test mysql_query($query_rs_alle_aktiven_FZ_Test$braun) or die(mysql_error());
                    $row_rs_alle_aktiven_FZ_Test mysql_fetch_assoc($rs_alle_aktiven_FZ_Test);
                    $totalRows_rs_alle_aktiven_FZ_Test mysql_num_rows($rs_alle_aktiven_FZ_Test);
                    ?>
                    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                    <html xmlns="http://www.w3.org/1999/xhtml">
                    <head>
                    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                    <title>Unbenanntes Dokument</title>
                    <link href="ew3/templates/style_braun_ew3.css" rel="stylesheet" type="text/css" />
                    <link href="ew3/templates/layout_braun_ew3.css" rel="stylesheet" type="text/css" />
                    </head>

                    <body>
                    <?php                    
                    $cat_old 
                    '';
                    $cat_new '';

                    while(
                    $row mysql_fetch_assoc($rs_alle_aktiven_fahrzeuge))
                        {
                        
                    $cat_new $row_rs_alle_aktiven_fahrzeuge['Modell'];
                        
                        if(
                    $cat_old != $cat_new) {
                        echo 
                    $row_rs_alle_aktiven_fahrzeuge['Modell'];

                    echo 
                    $row_rs_alle_aktiven_fahrzeuge['ID']; 
                    echo 
                    $row_rs_alle_aktiven_fahrzeuge['Marke'];
                    echo 
                    $row_rs_alle_aktiven_fahrzeuge['Modell']; 
                    echo 
                    $row_rs_alle_aktiven_fahrzeuge['Kategorie']; 
                    echo 
                    $row_rs_alle_aktiven_fahrzeuge['Jahrgang']; 
                    echo 
                    $row_rs_alle_aktiven_fahrzeuge['KM']; 
                    echo 
                    $row_rs_alle_aktiven_fahrzeuge['Farbe']; 
                    echo 
                    $row_rs_alle_aktiven_fahrzeuge['Klima'];
                    echo 
                    $row_rs_alle_aktiven_fahrzeuge['Optionen']; 
                    echo 
                    $row_rs_alle_aktiven_fahrzeuge['Bild'];
                    echo 
                    $row_rs_alle_aktiven_fahrzeuge['Preis'];
                                                      }
                    /*echo echo $row_rs_alle_aktiven_fahrzeuge['Modell'];*/
                    $cat_old $cat_new
                    ?>

                    </body>
                    </html>
                    <?php
                    mysql_free_result
                    ($rs_alle_aktiven_FZ_Test);
                    ?>

                    Kommentar


                    • #11
                      Stelle bitte das error_reporting auf E_ALL und display_errors auf 1.
                      Dann hat PHP die Chance dich darauf hinzuweisen, wo du Fehler machst.

                      Kommentar


                      • #12
                        Zitat von ChrisB Beitrag anzeigen
                        Stelle bitte das error_reporting auf E_ALL und display_errors auf 1.
                        Dann hat PHP die Chance dich darauf hinzuweisen, wo du Fehler machst.
                        Das einzige weas ich da erhalte ist:
                        Parse error: syntax error, unexpected $end in /mnt/sites/garage-braun.ch/web/newsite/test.php on line 87

                        in der Zeile 87 steht aber "nur"
                        PHP-Code:
                        85: <?php
                        86
                        mysql_free_result($rs_alle_aktiven_FZ_Test);
                        87?>

                        Kommentar


                        • #13
                          Zitat von silen Beitrag anzeigen
                          @ ChrisB: Dein Link führt zu einer leeren Seite - Ups

                          Zum Thema: GROUP BY fasst alle Einträge in einer Spalte mit gleichem Inhalt zusammen. Der Sinn besteht darin, dass, wenn Du eine Autovermietung hast, und wissen willst welche Fahrzeugtypen angeboten werden, ist dies der richtige Weg.
                          Deine Zielsetzung sollte über ORDER BY kategorie, fahrzeug zu realisieren sein.
                          Oder Du machst mehrere Abfragen hintereinander wobei Du jede mit WHERE kategorie = "nummer" einer Kategorie zuordnest.
                          Eben, das mit GROUP BY funktioniert eben nicht. DIes mache ich ja schon in der SQL-Abfrage. DIe Abfrage als solche funktioniert ja, ich habe nur das Problem mit der Anzeige...

                          Die sollte einfach nur so (oder ähnlich) aussehen wie (siehe Anhang)

                          Kommentar


                          • #14
                            Ich habe ein kleines Beispiel zusammen gestellt. Wobei ich denke, SQL ist nicht dafür geeignet die Aufgaben eines Reports (also Leerzeile, Einrückungen, etc.) zu übernehmen. Das wäre dann die Aufgabe von PHP oder so.

                            Code:
                            CREATE TABLE autos (
                             id INT NOT NULL,
                             kategorie VARCHAR(20) NOT NULL,
                             marke VARCHAR(50) NOT NULL,
                             modell VARCHAR(50) NOT NULL,
                             jahrgang DATE NOT NULL,
                             km INT NOT NULL,
                             farbe VARCHAR(20) NOT NULL,
                             klima VARCHAR(10) NOT NULL,
                             optionen VARCHAR(100),
                             
                             PRIMARY KEY (id)
                              
                            );
                            
                            INSERT INTO autos VALUES 
                            (1 ,'G', 'Peugeot', '318-X', '2001-01-01', 200000, 'Blue', 'nein',NULL),
                            (2 ,'N', 'Peugeot', '328-X', '2010-07-01', 200, 'Grün', 'ja','Hybrid'),
                            (3 ,'J', 'Skoda', 'SX-2X', '2008-07-01', 20000, 'ohne', 'nein','2. Lenkrad'),
                            (4 ,'J', 'BWM', 'M-33', '2008-07-01', 21, 'malfarbe', 'ja','mit allem');
                            
                            SELECT a.gruppe, a.kategorie, a.marke, a.id, a.modell, a.jahrgang, a.km, a.farbe, a.klima, a.optionen
                              FROM  ( SELECT @merk_kategorie := NULL ) AS init ,
                                    ( SELECT CASE 
                                              WHEN @merk_kategorie IS NULL THEN kategorie
                                              WHEN kategorie != @merk_kategorie THEN kategorie
                                             ELSE NULL
                                             END AS gruppe,
                                             kategorie, marke, id, modell, jahrgang, km, farbe, klima, optionen, 
                                             @merk_kategorie := kategorie AS dummy
                                       FROM autos
                                      ORDER BY kategorie ) AS a;
                                      
                            +--------+-----------+---------+----+--------+------------+--------+----------+-------+------------+
                            | gruppe | kategorie | marke   | id | modell | jahrgang   | km     | farbe    | klima | optionen   |
                            +--------+-----------+---------+----+--------+------------+--------+----------+-------+------------+
                            | G      | G         | Peugeot |  1 | 318-X  | 2001-01-01 | 200000 | Blue     | nein  | NULL       |
                            | J      | J         | Skoda   |  3 | SX-2X  | 2008-07-01 |  20000 | ohne     | nein  | 2. Lenkrad |
                            | NULL   | J         | BWM     |  4 | M-33   | 2008-07-01 |     21 | malfarbe | ja    | mit allem  |
                            | N      | N         | Peugeot |  2 | 328-X  | 2010-07-01 |    200 | Grün     | ja    | Hybrid     |
                            +--------+-----------+---------+----+--------+------------+--------+----------+-------+------------+
                            4 rows in set (0.00 sec)
                            
                            mysql>
                            Die Spalte "Gruppe" entspricht Deiner Kategorie, wenn mehrere Auto mit der gleichen Kategorie hintereinander aufgelistet sind, ist die Gruppe ab der 2. identischen Kategorie mit NULL gefüllt. Siehe Kategorie "J" .

                            Der eigentliche Trick bei der Sache ist die User-Variable @merk_kategorie, mit dem die Kategorie des Vorgängersatzes an den nächsten Datensatz gemeldet wird, um identische Gruppen zu erkennen.

                            Eventuell kannst Du ein paar Testdaten mit CREATE TABLE liefern, dann können wie besser helfen.

                            Ich hoffe, ich habe Deine Frage richtig verstanden.

                            Grüße
                            Thomas

                            Kommentar


                            • #15
                              Also die Tabelle mit den Fahrzeugen:
                              Code:
                              --
                              -- Tabellenstruktur für Tabelle `Fahrzeuge`
                              --
                              
                              CREATE TABLE IF NOT EXISTS `Fahrzeuge` (
                                `ID` int(5) unsigned NOT NULL auto_increment,
                                `MarkenID` int(5) NOT NULL,
                                `Modell` varchar(255) NOT NULL,
                                `KategorieID` int(5) NOT NULL,
                                `1Inv` date NOT NULL,
                                `KMStand` bigint(20) NOT NULL,
                                `Farbe` varchar(20) NOT NULL,
                                `Klima` enum('ja','nein') NOT NULL default 'ja',
                                `Optionen` mediumtext,
                                `bilderID` int(5) default '3',
                                `Preis` float NOT NULL,
                                `aktiv` enum('ja','nein') NOT NULL default 'ja',
                                PRIMARY KEY  (`ID`)
                              ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=22 ;
                              
                              --
                              -- Daten für Tabelle `Fahrzeuge`
                              --
                              
                              INSERT INTO `Fahrzeuge` (`ID`, `MarkenID`, `Modell`, `KategorieID`, `1Inv`, `KMStand`, `Farbe`, `Klima`, `Optionen`, `bilderID`, `Preis`, `aktiv`) VALUES
                              (1, 3, '159 SW 3.2 Q4', 3, '2006-06-01', 92000, 'schwarz', 'ja', 'Leder, Bi-Xenon, PDC, Mehrzonen Klima', 1, 22900, 'ja'),
                              (2, 6, 'A4 2.0', 3, '2002-11-01', 95000, 'blau met.', 'ja', 'Automat, Sportsitze in Buffalo-Leder, Fahrer-Informationssystem', 2, 15800, 'ja'),
                              (3, 6, 'A4 Avant Quattro 3.2 FSI', 3, '2005-10-01', 93500, 'Schwarz met.', 'ja', 'Automat, Navigation Plus, Bose, Leder, Tempomat, Bluetooth PDC, Winterr?der', 3, 29800, 'ja'),
                              (4, 63, '3200 GT', 3, '2000-05-01', 58000, 'grau met.', 'ja', 'El. Gesteuerte Fahrwerksdämpfung, Sitzmemory, Ganzleder, Navigation', 3, 37800, 'ja'),
                              (10, 78, 'Murano 3.5', 3, '2003-07-01', 128000, 'blau met.', 'ja', '', 3, 18900, 'ja'),
                              (7, 68, ' CL 500', 3, '1999-11-01', 140000, 'violett met.', 'ja', 'Keyless go, Abstandregeltempomat, Navigation, 18-Zoll Alur?der', 3, 17900, 'ja'),
                              (6, 68, 'B 180 CDI', 3, '2006-05-01', 78500, 'grau met.', 'ja', 'Automat, Tempomat, PDC, Regensensor, Vordersitze heizbar', 3, 24800, 'ja'),
                              (9, 68, 'Vito 110 CDI', 3, '2002-07-01', 64000, 'weiss', 'ja', 'Holzboden, Winterräder', 3, 11900, 'ja'),
                              (11, 83, 'Bipper 1.4 HDI', 3, '2008-09-01', 23500, 'weiss', 'ja', 'Pack Plus, Schiebetüre rechts, Flügeltüren hinten verglast, R/CD', 3, 12900, 'ja'),
                              (8, 68, 'S 350 4-Matic', 3, '2003-07-01', 128000, 'schwarz met.', 'ja', 'Vorder- und Rücksitze heizbar, SD, PDC, Bildschirm im Fond, Kühlfach', 3, 24800, 'ja'),
                              (12, 98, 'Leon 2.0 TDI', 3, '2006-07-01', 131000, 'schwarz', 'ja', 'Automatisiertes Schaltgetriebe, Bi-Xenon AFS, Leder, Navigation', 3, 14900, 'ja'),
                              (13, 99, 'Fabia 1.9 TDI Elegance', 3, '2007-10-01', 78000, 'silber met.', 'ja', 'Sport-Paket, Winterräder', 3, 15500, 'ja'),
                              (14, 103, 'Outback 2.5i AWD Swiss', 3, '2007-11-01', 35000, 'grau met.', 'ja', 'Automat', 3, 26900, 'ja'),
                              (16, 111, 'XC70 2.5 T AWD Momentum', 3, '2005-06-01', 92000, 'schwarz', 'ja', '', 3, 24900, 'ja'),
                              (15, 111, 'V50 Summum', 3, '2005-12-01', 75000, 'blau met.', 'ja', 'Communication, Telefon, Schiebedach, PDC', 3, 19500, 'ja'),
                              (20, 83, '308 GTI', 1, '2010-00-00', 0, 'schwarz', 'ja', NULL, 3, 36550, 'ja'),
                              (21, 83, '107 1.0i Black&Silver', 2, '2010-06-01', 0, 'silber met.', 'ja', NULL, 3, 15900, 'ja');
                              Dann gibts aber noch eine mit den Automarken, eine mit den Kategorien und eine mit den Bildpfaden. Daraus habe ich dann einen View gemacht, der für die Website benutzt wird.

                              Code:
                              --
                              -- Tabellenstruktur für Tabelle `Kategorie`
                              --
                              
                              CREATE TABLE IF NOT EXISTS `Kategorie` (
                                `ID` int(5) unsigned NOT NULL auto_increment,
                                `Bezeichnung` varchar(255) NOT NULL,
                                PRIMARY KEY  (`ID`)
                              ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
                              
                              --
                              -- Daten für Tabelle `Kategorie`
                              --
                              
                              INSERT INTO `Kategorie` (`ID`, `Bezeichnung`) VALUES
                              (1, 'Neuwagen'),
                              (2, 'Vorführwagen'),
                              (3, 'Occasion');
                              Code:
                              --
                              -- Tabellenstruktur für Tabelle `Marken`
                              --
                              
                              CREATE TABLE IF NOT EXISTS `Marken` (
                                `ID` int(5) unsigned NOT NULL auto_increment,
                                `Marke` varchar(255) NOT NULL,
                                PRIMARY KEY  (`ID`)
                              ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=118 ;
                              
                              --
                              -- Daten für Tabelle `Marken`
                              --
                              
                              INSERT INTO `Marken` (`ID`, `Marke`) VALUES
                              (1, 'Acura'),
                              (2, 'Aixam'),
                              (3, 'Alfa Romeo'),
                              (4, 'Ariel'),
                              (5, 'Aston Martin'),
                              (6, 'Audi'),
                              (7, 'Bentley'),
                              (8, 'Bitter'),
                              (9, 'Brilliance'),
                              (10, 'Bristol'),
                              (11, 'Bugatti'),
                              (12, 'Buick'),
                              (13, 'BMW'),
                              (14, 'Cadilla'),
                              (15, 'Callaway'),
                              (16, 'Caterhem'),
                              (17, 'Chevrolet'),
                              (18, 'CityEL'),
                              (19, 'Chrysler'),
                              (20, 'Citro'),
                              (21, 'CommuterCars'),
                              (22, 'Dacia'),
                              (23, 'Daewoo'),
                              (24, 'Daihatsu'),
                              (25, 'DeTomaso'),
                              (26, 'Dodge'),
                              (27, 'Donkervoort'),
                              (28, 'Ferarri'),
                              (29, 'Fiat'),
                              (30, 'Fisker'),
                              (31, 'Ford'),
                              (32, 'GAS'),
                              (33, 'Ginetta'),
                              (34, 'GMC'),
                              (35, 'Gumpert'),
                              (36, 'Heuliez'),
                              (37, 'Holden'),
                              (38, 'Honda'),
                              (39, 'Hummer'),
                              (40, 'Hyundai'),
                              (41, 'Infiniti'),
                              (42, 'IranKhodro'),
                              (43, 'Isdera'),
                              (44, 'Isuzu'),
                              (45, 'Jaguar'),
                              (46, 'Jeep'),
                              (47, 'Karmann'),
                              (48, 'Kia'),
                              (49, 'Koenigsegg'),
                              (50, 'Lada'),
                              (51, 'Lamborghini'),
                              (52, 'Lancia'),
                              (53, 'LandRover'),
                              (54, 'Lexus'),
                              (55, 'Ligier'),
                              (56, 'Lincoln'),
                              (57, 'Lola'),
                              (58, 'Lotus'),
                              (59, 'LTI'),
                              (60, 'Mahindra'),
                              (61, 'Marcos'),
                              (62, 'Maruti'),
                              (63, 'Maserati'),
                              (64, 'Matra'),
                              (65, 'Maybach'),
                              (66, 'Mazda'),
                              (67, 'McLaren'),
                              (68, 'Mercedes-Benz'),
                              (69, 'Merlin'),
                              (70, 'MG'),
                              (71, 'Microcar'),
                              (72, 'Mini'),
                              (73, 'Mitsubishi'),
                              (74, 'Mitsuoka'),
                              (75, 'Morgan'),
                              (76, 'Moskwitsch'),
                              (77, 'Nanjing'),
                              (78, 'Nissan'),
                              (79, 'Oldsmobile'),
                              (80, 'Opel'),
                              (81, 'Pagani'),
                              (82, 'Panoz'),
                              (83, 'Peugeot'),
                              (84, 'Pininfarina'),
                              (85, 'Pontiac'),
                              (86, 'Porsche'),
                              (87, 'Proton'),
                              (88, 'Radical'),
                              (89, 'Reliant'),
                              (90, 'Renault'),
                              (91, 'Rinspeed'),
                              (92, 'RollsRoyce'),
                              (93, 'Rover'),
                              (94, 'Saab'),
                              (95, 'Saleen'),
                              (96, 'SAS'),
                              (97, 'Scion'),
                              (98, 'Seat'),
                              (99, 'Skoda'),
                              (100, 'Smart'),
                              (101, 'Spyker'),
                              (102, 'SsangYong'),
                              (103, 'Subaru'),
                              (104, 'Suzuki'),
                              (105, 'Tata'),
                              (106, 'Tatra'),
                              (107, 'Toyota'),
                              (108, 'TVR'),
                              (109, 'Twike'),
                              (110, 'Vauxhall'),
                              (111, 'Volvo'),
                              (112, 'VW-Volkswagen'),
                              (113, 'Wiesmann'),
                              (114, 'Zagato'),
                              (115, 'ZAP'),
                              (116, 'Zastava'),
                              (117, 'Zender');
                              Code:
                              --
                              -- Tabellenstruktur für Tabelle `bilder`
                              --
                              
                              CREATE TABLE IF NOT EXISTS `bilder` (
                                `ID` int(5) unsigned NOT NULL auto_increment,
                                `pfad` varchar(255) default NULL,
                                PRIMARY KEY  (`ID`)
                              ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
                              
                              --
                              -- Daten für Tabelle `bilder`
                              --
                              
                              INSERT INTO `bilder` (`ID`, `pfad`) VALUES
                              (1, 'ALFA-ROMEO-159-SW-3.2-Q4.jpg'),
                              (2, 'audi_A4.jpg'),
                              (3, 'no_image.gif');
                              Das ganze wurde dann eben in eine View mit:
                              Code:
                              SELECT 
                              	`fz`.`ID`, 
                              	`m`.`Marke`, 
                              	`fz`.`Modell`,
                              	`fz`.KategorieID` as 'KatID'
                              	`kat`.`Bezeichnung` as 'Kategorie',
                              	DATE_FORMAT(`fz`.`1Inv`, '%m.%Y') as 'Jahrgang',
                              	`fz`.`KMStand` as 'KM', 
                              	`fz`.`Farbe`, 
                              	`fz`.`Klima`, 
                              	`fz`.`Optionen`,
                              	`b`.`pfad` as 'Bild',
                              	`fz`.`Preis`,
                              	`fz`.`aktiv`
                              FROM 
                              	Fahrzeuge fz
                              INNER JOIN Marken m
                              	ON `fz`.`MarkenID` = `m`.`ID`
                              INNER JOIN Kategorie kat
                              	ON `fz`.`KategorieID` = `kat`.`ID`
                              LEFT JOIN bilder b
                              	ON `fz`.`bilderID` = `b`.`ID`
                              WHERE `fz`.`aktiv` = 'JA'
                              ORDER BY `fz`.KategorieID` ASC, `m`.`Marke` ASC

                              Kommentar

                              Lädt...
                              X