Zur Navigation

unset?

1 tomaschko (Gast)

Hi,

ich habe das mit den unterkategorien anders gelöst: ich lasse sie jetzt in der inhaltsspalte anzeigen, danach wenn man eine wählt wird der inhalt der rubrik gezeigt. Nun habe ich folgendes problem:

Wenn man dann den inhalt sieht werden darüber immernoch die Unterkategorien angezeigt; das möchte ich jedoch nicht. wie kann ich das verhindern. Wollte es mit unset machen, so das wenn $subid gegeben ist, $sid nicht mehr gilt, dementsprechend der echobefehl mit link auch nicht mehr, aber das hat nicht funktioniert

Der Code:
<?php
include ('includes/db_connect.inc.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Learn to breath</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" type="text/css" href="includes/style.css">
  </head>
<body>

 <!--Kopf der Website-->
  <div id="head"></div>
  <!--Die Navigation-->
  <div id="navi">
  <div class="menuecontainer">

 <?php
//Auslese Menue:
   $result = mysql_query("SELECT * FROM sections");
 
//Ausgabe Menu:
  while($row = mysql_fetch_array($result)){
 echo "<a  class=\"menue\" href=\"?sid=".$row["id"]."\">";
 echo $row["name"]."</a><br>";
}
?>

</div>
  </div>
  <!--Inhalt-->
  <div id="content">


<?php
//section-id prüfen
 if(isset($sid)){

//Auslese der subsections
  $res =  mysql_query("SELECT * FROM subsections WHERE sid=".$_GET["sid"]); 
//Ausgabe mit subsectons als link und übergabe der ids für content
 while($row =  mysql_fetch_array($res)) { 
    echo "<a href=\"?sid=".$row["sid"]."&subid=".$row["id"]."\">"; 
    echo $row["subname"]."</a><br>"; 

} 
}


//prüfen auf subsection-id
if(isset($subid)){

//auslese contents über section-id und subsection-id
  $res2 = mysql_query("SELECT * FROM content WHERE sid=".$_GET["sid"]." AND subid=".$_GET["subid"]);
//ausgabe content
  while($row=mysql_fetch_array($res2)){
echo "titel:" .$row["title"];
echo "<br>autor:" .$row["user"];
echo "<br>beitrag:" .$row["content"];
}
}


}

//Inhalt des index ohne ids
else echo 'Inhalt für den eigentlichen index';
?>

</div>
  </body>
</html>

14.12.2006 11:47

2 Jörg Kruse

Wenn man dann den inhalt sieht werden darüber immernoch die Unterkategorien angezeigt; das möchte ich jedoch nicht. wie kann ich das verhindern.

Wie ist es, wenn du die betreffende Bedingung so erweiterst, dass kein $subid übergeben wurde?

if(isset($_GET['sid']) && !isset($_GET['subid'])){

//Auslese der subsections
 $res =  mysql_query("SELECT * FROM subsections WHERE sid=".$_GET["sid"]);
//Ausgabe mit subsectons als link und übergabe der ids für content
while($row =  mysql_fetch_array($res)) {
   echo "<a href="?sid=".$row["sid"]."&subid=".$row["id"]."">";
   echo $row["subname"]."</a><br>";

}
}

14.12.2006 12:10 | geändert: 14.12.2006 12:11

3 tomaschko (Gast)


Zitat von Jörg
Wenn man dann den inhalt sieht werden darüber immernoch die Unterkategorien angezeigt; das möchte ich jedoch nicht. wie kann ich das verhindern.

Wie ist es, wenn du die betreffende Bedingung so erweiterst, dass kein $subid übergeben wurde?

if(isset($_GET['sid']) && !isset($_GET['subid'])){

//Auslese der subsections
 $res =  mysql_query("SELECT * FROM subsections WHERE sid=".$_GET["sid"]);
//Ausgabe mit subsectons als link und übergabe der ids für content
while($row =  mysql_fetch_array($res)) {
   echo "<a href="?sid=".$row["sid"]."&subid=".$row["id"]."">";
   echo $row["subname"]."</a><br>";

}
}


Schlecht...
Nun zeigt er wenn eine unterkategorie gewählt wurde den indextext an, also die letzte else-bedinngung

14.12.2006 12:27

4 Jörg Kruse

Wann soll denn der Index angezeigt werden? Aus deinem Code in Beitrag 1 geht das nicht ganz deutlich vor, da dieser fehlerhaft ist und ein } zuviel enthält.

Ups - steht dort ja: //Inhalt des index ohne ids - vielleicht wäre die folgende Verschachtelung sinnvoll:

<?php
//section-id prüfen
if (isset($_GET['sid'])) {
    if (!isset($_GET['subid'])) {
        //Auslese der subsections
        $res =  mysql_query("SELECT * FROM subsections WHERE sid=".$_GET["sid"]);
        //Ausgabe mit subsectons als link und übergabe der ids für content
        while ($row =  mysql_fetch_array($res)) {
            echo "<a href="?sid=".$row["sid"]."&subid=".$row["id"]."">";
            echo $row["subname"]."</a><br>";
        }
    } else {
        //auslese contents über section-id und subsection-id
        $res2 = mysql_query("SELECT * FROM content WHERE sid=".$_GET["sid"]." AND subid=".$_GET["subid"]);
        //ausgabe content
        while ($row=mysql_fetch_array($res2)) {
            echo "titel:" .$row["title"];
            echo "<br>autor:" .$row["user"];
            echo "<br>beitrag:" .$row["content"];
        }
    }
} else { //Inhalt des index ohne ids
    echo 'Inhalt für den eigentlichen index';
}
?>

14.12.2006 12:48 | geändert: 14.12.2006 12:55

5 tomaschko (Gast)

Die Klammer is nicht zuviel, das würde er mir melden...es kann daran liegen das ich den code gekürzt habe für den post. Der Einbau deines Vorschlages klappt auch nich so wirklich, was evt. daran liegt dass ich nicht genau weiss wohin, da mein code eigentlich länger ist. Sorry, wenn durch meine Kurzüng umstände entstanden sind, aber ich dacht, es hilft wenn ich einen unwichtigen teil rausnehm.

Darum nochmal der komplett ausgangscode:

<?php
include ('includes/db_connect.inc.php');
include ('includes/functions.inc.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Learn to breath</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" type="text/css" href="includes/style.css">
  </head>
<body>

 <!--Kopf der Website-->
  <div id="head"></div>
  <!--Die Navigation-->
  <div id="navi">
  <div class="menuecontainer">

 <?php
//Auslese Menue:
   $result = mysql_query("SELECT * FROM sections");
 
//Ausgabe Menu:
  while($row = mysql_fetch_array($result)){
 echo "<a  class=\"menue\" href=\"?sid=".$row["id"]."\">";
 echo $row["name"]."</a>";
}
?>

</div>
  </div>
  <!--Inhalt-->
  <div id="content">


<?php
//section-id prüfen
 if(isset($sid)){
//prüfen auf mitglieder-id
  if($sid==3){
//ausgabe des mitgliedercontents
  $res = mysql_query("SELECT * FROM user ORDER by id");

 while($row = mysql_fetch_object($res)){
 $name = $row -> name;
 $instrument = $row -> instrument;
 $musik = $row -> musik;
 $signature = $row -> signature;
 $hobbies = $row -> hobbies;
?>
 
<h1><?=format($name) ?></h1>
 <p><b><?=format($instrument) ?></b><br>
 <?=format($musik) ?> <br>
 <?=format($hobbies) ?> <br>
 <?=format($signature) ?> <br>


<?php
}

}


//Auslese der subsections
else {
  $res =  mysql_query("SELECT * FROM subsections WHERE sid=".$_GET["sid"]); 
//Ausgabe mit subsectons als link und übergabe der ids für content
 while($row =  mysql_fetch_array($res)) { 
    echo "<a href=\"?sid=".$row["sid"]."&subid=".$row["id"]."\">"; 
    echo $row["subname"]."</a><br>"; 

} 
}


//prüfen auf subsection-id
if(isset($subid)){

//auslese contents über section-id und subsection-id
  $res2 = mysql_query("SELECT * FROM content WHERE sid=".$_GET["sid"]." AND subid=".$_GET["subid"]);
//ausgabe content
  while($row=mysql_fetch_object($res2)){
   $title = $row -> title;
   $user = $row -> user;
   $content = $row -> content;
?>

 <h1><?=format($title) ?></h1>
 <p><?=format($user) ?></p>
 <p><?=format($content) ?></p>

<?php
}
}


}

//Inhalt des index ohne ids
else echo 'hallo';
?>

</div>
  </body>
</html>

14.12.2006 13:26

6 Jörg Kruse

Ja, in dem Gesamtcode sind die Bedingungen schon etwas anders verschachtelt. In dem Fall kannst du die Bedingung, dass die subid Variable nicht gesetzt ist, einfach folgendermaßen einbauen:

<?php
}

}


//Auslese der subsections
else {
if (!isset($_GET['subid'])) {
 $res =  mysql_query("SELECT * FROM subsections WHERE sid=".$_GET["sid"]);
//Ausgabe mit subsectons als link und übergabe der ids für content
while($row =  mysql_fetch_array($res)) {
   echo "<a href="?sid=".$row["sid"]."&subid=".$row["id"]."">";
   echo $row["subname"]."</a><br>";
}
}
}

14.12.2006 14:02 | geändert: 14.12.2006 14:02

7 tomaschko (Gast)

danke! Es läuft...!


Und dann auch noch so einfach.;-)

18.12.2006 09:07

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]