Ich hab' jetzt mal die Klasse soweit fertig geschrieben. Aber irgendwie will das noch nich' so, wie ich das will...z.B. wird in der Tabelle "parentID (ebenen)" nicht die ID gespeichert....und für das Ebenenhochzählen muss ich mir noch 'ne Funktion überlegen...
Ich poste mal die zwei Klassen, vllt habt ihr ja ne Idee warum er die ParentID nicht reinschreibt.
Die ParentID soll quasi die kategorie ID der darüberliegenden Klasse sein:
Klasse Ebenen :
class Ebenen{
private $db;
private $strTabelle;
private $parentID;
private $intEbene;
private $kategorie;
private $intID;
private $kate;
function ebenen(){
$this->db = new Connect();
$this->db = $this->db->gibConnect();
$this->strTabelle = 'ebenen';
}
function sucheEbene($parentID){
if(is_numeric($parentID)){
$sql='SELECT COUNT(DISTINCT ebenenID) as anzahl
FROM ebenen where parentID = '.$parentID;
$result= $this->db->query($sql);
$zeile = $result->fetch_assoc();
if($zeile['anzahl'] == 0){
return false;
}
else{
return true;
}
}else {
echo 'Es ist ein Fehler aufgetreten!';
}
}
function ebenenAdd($parentID){
$sucheEbene = $this->sucheEbene($parentID);
if ($sucheEbene == false){
$sql = "INSERT INTO ebenen
(ebene, parentID)
VALUES
('".$this->intEbene."', '".$this->parentID."')";
$result = $this->db->query($sql);
if(!$result): $ausgabe = "Der Eintrag in der Ebenentabelle ist fehlgeschlagen.";
endif;
return $ausgabe;
}
$sql='SELECT ebenenID from ebenen where parentID = '.$parentID.' LIMIT 0,1';
$result = $this->db->query($sql);
$zeile = $result->fetch_assoc();
return $zeile['ebenenID'];
}
function ebeneHochzaehelen(){
}
Alles anzeigen
Klasse Kategorie:
class Kategorie {
private $intID;
private $intDatum;
private $strKategorie;
private $strBeschreibung;
private $intStatus;
private $strOrdner;
private $strTabelle;
private $db;
private $intEbene;
private $spracheID;
private $ebenen;
function Kategorie(){
$this->db = new Connect();
$this->db = $this->db->gibConnect();
$this->strTabelle = 'kategorie';
$this->ebenen = new Ebenen();
}
function kategorieAdd($kategorie, $eingabe, $parentID){
$this->strKategorie = $kategorie;
$this->strBeschreibung = $eingabe;
$this->spracheID = 1;
$this->intStatus = 0;
$sql = "INSERT INTO kategorie
(kategorieTitel, kategorieBeschreibung, kategorieStatus, spracheID, ebenenID)
VALUES
('".$this->strKategorie."', '".$this->strBeschreibung."','".$this->intStatus."','".$this->spracheID."', '".$this->ebenen->ebenenAdd($parentID)."')";
$result = $this->db->query($sql);
if(!$result): $ausgabe = "Die Kategorie konnte nicht angelegt werden.";
else: $ausgabe = "Die Kategorie wurde angelegt.";
endif;
return $ausgabe;
}
function sucheEbenen($parentID){
$sql = 'SELECT ebenenID from kategorie where '.$parentID. '=' .$id;
$result = $this->db->query($sql);
$zeile = $result->fetch_assoc();
return $parentID;
}
function kategorieGib($id){
$this->intID = $id;
$sql = "SELECT * FROM kategorie WHERE kategorieID = '".$this->intID."'";
$result = $this->db->query($sql);
$zeile = $result->fetch_assoc();
$ausgabe = array($zeile['kategorieID'],$zeile['kategorieTitel'], $zeile['kategorieBeschreibung'], $zeile['ebenenID']);
return $ausgabe;
}
function showMainsite($id, $parentID){
$ausgabe = '';
$sql ="SELECT * from kategorie where kategorieID <> $id";
$result=$this->db->query($sql);
while($zeile = $result->fetch_assoc()){
if ($zeile['kategorieID'] == $parentID){
$ausgabe .= '<option value="'.$zeile['kategorieID'].'" selected>'.$zeile['kategorieTitel'].'</option>';
}else{
$ausgabe .= '<option value="'.$zeile['kategorieID'].'">'.$zeile['kategorieTitel'].'</option>';
}
}
return $ausgabe;
}
Alles anzeigen
Das Formular, wo man dann quasi zu der Kategorie die unterkategorie auswählen kann sieht wie folgt aus:
<script type="text/javascript" language="javascript" src="./admin/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<form id="formular" enctype="multipart/form-data" method="post">
<div class="titel_background">
<div>Kategorie:</div>
<input name="kategorie"<?php if(!empty($ausgabe[1])){ echo 'value="'.$ausgabe[1].'"'; } ?> type="text" class=""/>
<div>Unterkategorie von:</div>
<select class="combobox" name="parentID">
<option value="0">keine</option>
<?php
$id = 0;
if (isset($_GET['kategorie'])): $id = $_GET['kategorie'];
else: $ausgabe[3] = 0;
endif;
$kategorie=new kategorie();
echo $kategorie->showMainsite($id,$ausgabe[3]);
?>
</select>
</div>
<script type="text/javascript" language="javascript">
tinyMCE.init({
language : "de",
mode : "textareas",
theme : "advanced",
plugins : "spellchecker,advhr,table,insertdatetime,preview,fullscreen,noneditable",
theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,fontselect,fontsizeselect,formatselect,cut,copy,paste,fullscreen",
theme_advanced_buttons2 : "outdent,indent,|,undo,redo,|,link,unlink,anchor,image,|,code,preview,|,forecolor,backcolor,|,insertdate,inserttime,|,spellchecker,advhr,removeformat,|,sub,sup",
theme_advanced_buttons3 : "tablecontrols,|,bullist,numlist,|,charmap,|,iespell,media",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom"
});
</script>
<textarea name="eingabe" id="textbox" width="570" cols="60" rows="10"><?php if(!empty($ausgabe[2])){ echo $ausgabe[2]; }?></textarea>
<div class="abschicken"><input name="abschicken" type="submit" value="Speichern" class="form_button" /></div>
</form>
Alles anzeigen