Anzeigen:
Results 1 to 5 of 5

Thread: Verschachtelter Wiederholungsbereich

  1. #1
    dreamworker.de Experte
    Join Date
    05/2007
    Posts
    67

    Verschachtelter Wiederholungsbereich

    Ich hoffe ich bin hier in der php-Rubrik richtig mit meinem Anliegen....

    Datenbank 1:
    id - name
    1 - AAA
    2 - BBB

    Datenbank 2:
    id - id1 - name
    1 - 1 - Ich gehöre zu AAA
    2 - 1 - Ich gehöre auch zu AAA
    3 - 2 - Ich gehöre zu BBB
    4 - 2 - Auch ich gehöre zu BBB

    Und jetzt hätte ich gerne eine dynamische Abbildung dieser Datenbank hingebracht, die so aussehen sollte:

    <ul>

    <li>AAA
    <ul>
    <li>Ich gehöre zu AAA</li>
    <li>Ich gehöre auch zu AAA</li>
    </ul>
    </li>
    <li>BBB
    <ul>
    <li>Ich gehöre zu BBB</li>
    <li>Auch ich gehöre zu BBB</li>
    </ul>
    </li>

    </ul>

    Das Ganze für eine dynamische Produkt-Gruppen (und Unter-Produkt-Gruppen)-Navigation

    Ich bekomm's aber nur so hin:

    <ul>
    <li>AAA
    <ul>
    <li>Ich gehöre zu AAA</li>
    </ul>
    </li>
    <li>AAA
    <ul>
    <li>Ich gehöre auch zu AAA</li>
    </ul>
    </li>
    <li>BBB
    <ul>
    <li>Ich gehöre zu BBB</li>
    </ul>
    </li>
    <li>AAA
    <ul>
    <li>Auch ich gehöre zu BBB</li>
    </ul>
    </li>
    </ul>

  2. #2
    waldfex
    Gast

    AW: Verschachtelter Wiederholungsbereich

    Du musst halt die Prüfung auf Produktgruppe mit in die Ausgabeschleife integrieren und beim Wechsel der PG eine neue Liste beginnen.
    Wie sieht denn dein Script jetzt aus?

  3. #3
    dreamworker.de Experte
    Join Date
    05/2007
    Posts
    67

    AW: Verschachtelter Wiederholungsbereich

    Mein Code sieht im Moment so aus:

    PHP Code:
    <?php require_once('../connections/datenbank.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_datenbank$datenbank);
    $query_produktgruppen "SELECT * FROM inn_prodgruppenl1 LEFT OUTER JOIN inn_prodgruppenl2 ON inn_prodgruppenl1.grp1_id =  inn_prodgruppenl2.grp1_id ORDER BY grp1_sort ASC";
    $produktgruppen mysql_query($query_produktgruppen$datenbank) or die(mysql_error());
    $row_produktgruppen mysql_fetch_assoc($produktgruppen);
    $totalRows_produktgruppen mysql_num_rows($produktgruppen);
    ?>
      <?php do { ?>
        
      <ul>
        <li><?php echo $row_produktgruppen['grp1_bezeichnung']; ?>
          <ul>
            <li><?php echo $row_produktgruppen['grp2_bezeichnung']; ?></li>
            </ul>
          </li>
      </ul>
    <?php } while ($row_produktgruppen mysql_fetch_assoc($produktgruppen)); ?>

    <?php mysql_free_result($produktgruppen); ?>
    Was zu dem Ergebnis führt: (also jeder level1-punkt wird wiederholt und immer eine ul li ul erstellt...)
    Innotec-Produkte
    Schmieren
    Innotec-Produkte
    Reinigen
    Innotec-Produkte
    Pflegen
    Innotec-Produkte
    Polieren
    Innotec-Produkte
    Verbinden & Schützen
    Innotec-Produkte
    Beschichten & Schützen
    Innotec-Produkte
    Abdichten & Verkleben
    Innotec-Produkte
    Kleben & Sichern
    Innotec-Produkte
    Scheiben-Verkleben
    Fassadenverklebung
    ÖNORM Fenster- & Türen-Abdichtung
    Reparatur-Systeme
    Kunststoff-Reparatur | Repaplast
    Reparatur-Systeme
    Lack-Oberflächen-Reparatur | Stone Chip Repair
    Reparatur-Systeme
    Velour- und Teppich-Reparatur | Velour Repair
    Reparatur-Systeme
    Kunststoff-Oberflächen-Reparatur | Scratch Repair
    Reparatur-Systeme
    Windschutzscheiben-Reparatur | Windshield Repair
    Reparatur-Systeme
    Alu-Oberflächen-Reparatur | Alu Scratch Repair
    Reparatur-Systeme
    Scheinwerfer-Reparatur | Liquid Glass
    Werkzeuge & Zubehör
    Diverse Sonderartikel
    Kleben & Sichern
    Diverse Sonderartikel
    Arbeitsschutz
    Diverse Sonderartikel
    Beschichten & Schützen
    Diverse Sonderartikel
    Reinigen
    Diverse Sonderartikel
    Werkzeuge
    Promotion

  4. #4
    waldfex
    Gast

    AW: Verschachtelter Wiederholungsbereich

    So, den Rest solltest du selbst fertig bekommen:

    PHP Code:
    <?php

    $objConnect 
    = new mysqli($host$user$password$dbname)
        or die (
    'Could not connect to the database server' mysqli_connect_error());

    $sQuery "SELECT inn_prodgruppen.produkt_name,
             inn_subprodgruppen.subgruppen_name
          FROM test.inn_prodgruppen
          LEFT JOIN test.inn_subprodgruppen
          ON inn_prodgruppen.id = inn_subprodgruppen.id_hauptgruppe
          ORDER BY inn_prodgruppen.id"
    ;

    if (
    $stmt $objConnect->prepare($sQuery)) {
        
    $stmt->execute();
        
    $stmt->bind_result($produkt_name$subgruppen_name);

        
    $sIplodeGlue "</li>\n\t\t\t<li>";

        
    $stmt->fetch();
        
    $sProductGroup $produkt_name;

        
    $sOutputString "<ul>\n\t<li>" $produkt_name "";
        
    $aProductSubGroup = array();
        if (!empty(
    $subgruppen_name)) {
            
    $aProductSubGroup[] = $subgruppen_name;
        }
        while (
    $stmt->fetch()) {
            if (
    $sProductGroup != $produkt_name) {
                if (
    count($aProductSubGroup) > 0) {
                    
    $sOutputString .= "\n\t\t<ul>\n\t\t\t<li>";
                    
    $sOutputString .= implode($sIplodeGlue$aProductSubGroup);
                    
    $sOutputString .= "</li>\n\t\t</ul>\n";
                    
    $aProductSubGroup =array();
                    if (!empty(
    $subgruppen_name)) {
                        
    $aProductSubGroup[] = $subgruppen_name;
                    }
                }
                
    $sOutputString .= "</li>\n\t<li>"  $produkt_name "";
                
    $sProductGroup $produkt_name;
            } else {
                if (!empty(
    $subgruppen_name)) {
                    
    $aProductSubGroup[] = $subgruppen_name;
                }
            }
        }
        
    $sOutputString .= "\t</li>\n</ul>";

        
    $stmt->close();
    }

    $objConnect->close();

    echo 
    $sOutputString;

    ?>

  5. #5
    dreamworker.de Experte
    Join Date
    05/2007
    Posts
    67

    AW: Verschachtelter Wiederholungsbereich

    Anzeigen:
    Hallo Waldfex.

    Spät aber doch: Bin nun endlich dazu gekommen, Deinen Code umzusetzen.

    Vielen lieben Dank - habe ihn soweit umbauen können, dass es nun alles passt!

    Danke nochmal für Deine Bemühungen!

Similar Threads

  1. Gleiche Länge zweier verschachtelter Ebenen
    By Delphin in forum Statisches X/HTML & CSS
    Replies: 4
    Last Post: 02.04.2004, 15:17
  2. Layout: Darstellung verschachtelter frames in NETSCAPE
    By suhaenni in forum Adobe Dreamweaver
    Replies: 2
    Last Post: 24.04.2002, 16:47

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •