Anzeige

Vorgangsweise - PHP Script unklar

Vorgangsweise - PHP Script unklar | PSD-Tutorials.de

Erstellt von philipp1988, 13.08.2008.

  1. philipp1988

    philipp1988 Nicht mehr ganz neu hier

    Dabei seit:
    14.09.2005
    Beiträge:
    248
    Geschlecht:
    männlich
    Ort:
    Braunschweig
    Vorgangsweise - PHP Script unklar
    Guten Morgen,

    ich weiss der Titel ist etwas verwirrend - aber ich wusste leider nicht wie ich ihn anders benennen sollte :)

    Es geht um folgendes Problem:

    Ich habe folgene Baumstrucktur

    - Hauptseite
    - Unterseite 1
    - Produktseite 1
    - Produktseite 2
    - Produktseite 3
    - Unterseite 2
    - Produktseite 1
    - Produktseite 2
    - Unterseite 3
    - Produktseite 2


    Dazu gibt es eine Datenbanktabelle die `pages` heisst und beinhaltet folgende Daten:

    uid,pid,title

    Es läuft folgendermaßen ab:

    Hauptseite hat z.B. die UID 14

    Da Hauptseite ( ID : 14 ) 3 Unterseiten hat , haben alle 3 Unterseiten die PID 14

    Die 3 Unterseiten ( PID: 14 ) haben 3 verschiedene UID's ( 20,21,22 )

    Die Produktseiten unter den Unterseiten haben deren UID's als PID's

    So und da es die Endseiten sind! gibt es deren UID's nicht als PID's

    -------------

    Jetzt kommt das Problem

    Ich brauche jetzt alle Produktseiten und muss ein Script schreiben, dass das nur über die Datentabelle `pages` löst.

    Mein jetzige Lösung gibt auch die Endproduktseiten aus

    aber nur eine Unter Kategorie, da er danach abbricht ( soll er auch ) aber er soll dann jede Unterkategorie durchgehen )

    also muss ich ja noch eine 2. Whileschleife drum machen und dann die UID einer Unterkategorie übergeben...
    nur wie ? OO

    Code (Text):
    1.  
    2. <?php
    3. // Das braucht ihr vorübergehend nicht zu beachten
    4.  
    5. $page = mysql_query("SELECT `uid`,`pid`,`title` FROM `pages` where uid='13' AND hidden='0' AND deleted='0' ORDER BY pid");
    6.  
    7. $data = mysql_fetch_array($page);
    8.  
    9. $uid = $data['uid'];
    10. $i=0;
    11. $products = array();
    12.  
    13.  
    14.  
    15. while()
    16.  
    17. $stop = 0;
    18.  
    19. while( $stop == 0)
    20. {
    21. $qry = mysql_query("Select * from pages where pid ='".$uid."' AND hidden='0' AND deleted='0' ORDER BY pid ");
    22. $row = mysql_num_rows($qry);
    23.  
    24.     if($row > 0)
    25.     {
    26.         while($detail = mysql_fetch_array($qry))
    27.         {
    28.  
    29.             $products[$i] = $detail['title'];
    30.             $uid = $detail['uid'];
    31.             $i++;
    32.         }
    33.     }
    34.     else
    35.     {
    36.     $stop = 1;
    37.     }  
    38. }
    39. foreach($products AS $output)
    40. {
    41.     echo $output."<br>";
    42. }
    43. echo "<strong>".count($products)."</strong>";
    44.  
    45.  
    46. ?>
    47.  
    48.  

    Wäre Dankbar für ein Lösungsansatz,

    Grüße,
    Philipp
     
    #1      
  2. gp812

    gp812 Newbster

    Dabei seit:
    23.12.2007
    Beiträge:
    278
    Geschlecht:
    männlich
    Ort:
    Stuttgart
    Software:
    CS3, EditPlus
    Vorgangsweise - PHP Script unklar
    AW: Vorgangsweise - PHP Script unklar

    Wenn deine Produktseiten immer "Tiefe" 2 haben, dann brauchst du nur eine Funktion, die in die Tiefe geht, und dann immer die ID's mit Tiefe 2 ausgibt.
    Etwa so was:
    PHP:
    1.  
    2. function menu($sub_id,$level=0)
    3. {
    4.     $query = "SELECT * FROM pages WHERE ID = '".$sub_id."'";
    5.     $result = mysql_query($query) or die(mysql_error());
    6.     if(mysql_num_rows($result)>0)
    7.     while ($row = mysql_fetch_assoc($result))
    8.     {
    9.         if($level == 1)
    10.         {
    11.             echo $row["ID"]." ".$row["TITLE"]." ";
    12.         }    
    13.        
    14.         $query1 = "SELECT * FROM pages WHERE SID = '".$row["ID"]."'";
    15.         $result1 = mysql_query($query1) or die(mysql_error());
    16.         if(mysql_num_rows($result1)>0)
    17.         {
    18.             while($row1 = mysql_fetch_assoc($result1))
    19.             {                                        
    20.                 menu($row["ID"],$level+1);
    21.             }
    22.         }        
    23.     }
    24. }
    25.  
    26. menu(0);
    27.  
     
    Zuletzt bearbeitet: 13.08.2008
    #2      
  3. splasch

    splasch Nicht mehr ganz neu hier

    Dabei seit:
    12.02.2006
    Beiträge:
    176
    Vorgangsweise - PHP Script unklar
    AW: Vorgangsweise - PHP Script unklar

    Dafür mußt du eine Rekusive Funktion schreiben!

    Sollen allle Untermenüs aufgeklapt sein oder nur die Aktuelle?

    Mfg Splasch
     
    #3      
  4. philipp1988

    philipp1988 Nicht mehr ganz neu hier

    Dabei seit:
    14.09.2005
    Beiträge:
    248
    Geschlecht:
    männlich
    Ort:
    Braunschweig
    Vorgangsweise - PHP Script unklar
    AW: Vorgangsweise - PHP Script unklar

    Es sollen alle Produktseiten ( mit dem Namen , also title ) ausgegben werden und keine Unterkategorien oder Hauptseiten

    mfg ;)


    Edit:

    Es soll dynamisch sein - Es kann sein das neue Produktseiten oder auch neue Unterkategorien und Tiefen hinzugefügt werden.
    Das ja der Scheiss :D

    mfg
     
    #4      
  5. splasch

    splasch Nicht mehr ganz neu hier

    Dabei seit:
    12.02.2006
    Beiträge:
    176
    Vorgangsweise - PHP Script unklar
    AW: Vorgangsweise - PHP Script unklar

    Hmm jetzt bin doch etwas verwirrt. Ohne Gliederung alles auszugeben ist doch ein klax.
    Dazu schreibst du nur einen normalen Select befehl ohne Wehre klausel.

    SELECT * FROM pages

    Mfg Splasch
     
    #5      
  6. gp812

    gp812 Newbster

    Dabei seit:
    23.12.2007
    Beiträge:
    278
    Geschlecht:
    männlich
    Ort:
    Stuttgart
    Software:
    CS3, EditPlus
    Vorgangsweise - PHP Script unklar
    AW: Vorgangsweise - PHP Script unklar

    Wenn die "Tiefen" sich ändern, muss du die Seiten markieren. Z.B. füg noch ein Feld Kategorie zur Tabelle 'pages' hinzu. Und markiere dann deine Seiten (H-Haupt, U-Unter, P-Produkt u.s.w.).
    Meiner Meinung nach, geht es anders nicht. Das System kann ja nicht wissen, was du Unter einem Punkt ausgeben willst, ob es jetzt eine Produktseite wird, oder Unterkategorie von einer Unterkategorie.
     
    #6      
  7. philipp1988

    philipp1988 Nicht mehr ganz neu hier

    Dabei seit:
    14.09.2005
    Beiträge:
    248
    Geschlecht:
    männlich
    Ort:
    Braunschweig
    Vorgangsweise - PHP Script unklar
    AW: Vorgangsweise - PHP Script unklar

    Ne , weil auch alle Unterkategorien und Hauptseiten in pages untergebracht sich nur unterscheiden das deren UID in PId nicht mehr gibt ( -> Produktseite )
     
    #7      
  8. splasch

    splasch Nicht mehr ganz neu hier

    Dabei seit:
    12.02.2006
    Beiträge:
    176
    Vorgangsweise - PHP Script unklar
    AW: Vorgangsweise - PHP Script unklar

    Ich hab keine Ahnug was du da nun wilst. Schau dir mal meine Seite an.
    Dort findest eine Baumstruktur ob das das ist was du dir Vorstellt oder etwas anderes.

    Bsp.
    Hradtezky Arbeitsschutz ( Sommer und Winter )

    Mfg Splasch
     
    #8      
x
×
×