Antworten
Zitat:
flocke postete
Wenn jemand den Code möchte bitte bescheid sagen.
und wieso postest du ihn nicht gleich?
so wie ich dich verstanden habe, musst du das entsprechende array gleich beim instanzieren mitgeben, anders bekommst du es nicht in die klasse ...
johnpatcher
2.
[code]class navigation {
var $mydb;
var $anzahl;
var $hauptnavpoints;
var $unternavpoints;
var $allenavpoints;
var $aktuellenavpoints;
function __construct($db){
$this->hauptnavpoints=array(); // Array in dem die NavigationsObjekte gespeichert werden sollen
$this->mydb=$db;
$this->unternavpoints=array();
$this->aktuellenavpoints=array();
$this->allenavpoints=array();
$erg=$this->mydb->sql("SELECT * FROM navigation ORDER BY id"); // Holt Daten der Navi aus der Datenbank
while($row = mysql_fetch_object ($erg)) {
$navigationspunkt = new navigationspunkt($row); // Für jede Reihe aus der Datenbank wird ein Objekt erstellt
$this->allenavpoints[$row->id]=$navigationspunkt; // Alle Objekte werden nach und nach in das Array "allenavpoints" gelegt
if ($row->obernavi=="0"){
$this->hauptnavpoints[] = $navigationspunkt; // Objekte die Hauptnavigationen sind werden in das Array hauptnavpoints gelegt
}else if ($row->obernavi > "0"){
$this->unternavpoints[] = $navigationspunkt; // Objekte die Unternavigationen sind werden in das Array unternavpoints gelegt
}
}
}
function loeschen($zu_loeschende_hauptnavi,$zu_loeschende_unternavi){
//echo $zu_loeschende_hauptnavi; echo $zu_loeschende_unternavi;
if ($zu_loeschende_unternavi == ""){
//echo "loeschen Haupt und Unternavi";
$erg=$this->mydb->sql("DELETE FROM navigation WHERE id = '$zu_loeschende_hauptnavi' OR obernavi = '$zu_loeschende_hauptnavi' ");
}
if ($zu_loeschende_unternavi != ""){
//echo "loeschen Unternavi";
$erg=$this->mydb->sql("DELETE FROM navigation WHERE id = '$zu_loeschende_unternavi'");
}
}
function main($besuchte_navi){
echo "<div class=\"navigation\">";
foreach($this->hauptnavpoints as $hauptnavpoint){
$aktuellenavpoints[]=$hauptnavpoint;
//Abgleich ob Obernavi zu unternavi gehört
if ($besuchte_navi != ""){
foreach($this->unternavpoints as $unternavpoint){
if ( $unternavpoint->obernavi == $besuchte_navi){
$aktuellenavpoints[]=$unternavpoint;
}
}
$besuchte_navi2=$besuchte_navi;
$besuchte_navi="";
}
}
natcasesort($aktuellenavpoints);
echo print_r($aktuellenavpoints);
foreach($aktuellenavpoints as $aktuellnavpoint){
$aktuellnavpoint->navipunkt_anzeigen($besuchte_navi2);
}
}
}
?>
3.
das Array entweder gleich beim instantieren mitgeben oder eine Methode in deine Navigationsklasse setzen die dem Navigationspunkt einen weiteren Unterpunkt hinzufügt (ist sauberer)
Ganz nobel wäre natürlich nur Objekte hinzuzufügen. Es gibt dann eine Klasse Navigationspunkt und eine Methode Navpunkt hinzufügen die ein Objekt Navigationspunkt als Parameter akzeptiert.
So könnte jeder Unternavigationspunkt weitere Unterpunkte haben.. un es müsste nicht so streng nach Hauptnavigationspunkt und Unternavigationspunkt unterschieden werden..Nur so nutzt du die Möglichkeiten von OO-Programmierung.
4.
Wie sieht den aber so eine Zuweisung Programmiertechnisch aus ?
Das Prinzip habe ich verstanden !!
Vielen Dank
5.
Welche Zuweisung meinst du? und was genau möchtest du da programmiertechnisch wissen?
6.
So eine Zuweisung zu einem Objekt meine ich !
Ich habe eine Array mit den Hauptnavigation und eine mit den Unternavigation.
Wie sieht nun so eine Zuweisung zu wenn Ich die Unternavigationen der Obernavigation zuweisen.
Danke im vorraus