Die include-Funktion mit Auslesen der DB - aber else?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Die include-Funktion mit Auslesen der DB - aber else?

    Hallo, sitze gerade an einem kleinen Problem, bei dem ich nicht die richtige Lösung finde.

    Ich beschreibe mal knapp die Situation, vielleicht fällt jemandem ja etwas dazu ein.

    Ziel ist es Dateien, deren Pfade und Namen in einer DB gespeichert werden, mittels include-Befehl auszugeben, wenn sie gewünscht sind.
    z.B. mittels index.php?area=dieseseiteausderdb

    Hier der vereinfachte Skriptausschnitt:

    PHP-Code:
    if($area==registrieren) {include("registrieren.php");}
    elseif(
    $area==forum) {include("forum/forum.php");}
    else {}

    $abfrage_index="    SELECT
                            id, linkname, url
                        FROM
                            "
    .$prefix."_fl_menuenavi";
    $ergebnis_index=mysql_query($abfrage_index) or die(mysql_errno().": ".mysql_error());
    while (
    $zeile_index=mysql_fetch_array($ergebnis_index))
    {
        if(
    $area==$zeile_index["linkname"]) {include_once($zeile_index["url"]);}
        else {}

    Wie ihr seht möchte ich teils feste Werte drin haben (z.b. Forum) und variable Werte, die mittels oberfläche in die db eingetragen werden können und dann ausgelesen werden können.

    1. Frage, kann man die beiden if-Bedingungen sinnvoll zusammenfassen?

    2. Soweit klappt das ganze ja wunderbar, aber die else-bedingung muss ich bisher leer lassen, da diese sonst immer unter der Datei angezeigt wird, die durch include angezeigt wird.
    Das ist mir wichtig, da sonst bei einem aufruf der index.php nichts angezeigt wird, was bei mir ziemlich blöd aussieht.

    Ich hoffe es ist soweit verständlich von mir geschrieben.

    Hoffe jemand kann mir da einen Denkanstoss geben oder sagen wie ich es machen kann.

    Grüße,
    akrab

  • #2
    hm
    eigendlich macht man URL Variablen mit $_GET['die variable'].

    Aber ich versteh nicht was da willst

    Kommentar


    • #3
      PHP-Code:
      if($area==registrieren) {include("registrieren.php");}
      elseif(
      $area==forum) {include("forum/forum.php");}
      elseif(empty(
      $area)) {include("startseite.php");}
      else
      {
        
      $abfrage_index="SELECT x FROM x WHERE area = $area LIMIT 1";
        
      mysql_query();

        if(
      mysql_num_rows() == 1)
        {
          
      $zeile_index mysql_fetch_();
          include_once(
      $zeile_index["url"]);
        }
        else
          include 
      404;

      Du solltest dir aber auch mal switch() ansehen. und die diversen schon vorhanden threads zu dem thema.

      Kommentar


      • #4
        Ich danke für die Antworten, habe es die ELSE Funktion nun so:

        PHP-Code:
        else {
        $abfrage_index="    SELECT
                                id, linkname, url
                            FROM
                                "
        .$prefix."_fl_menuenavi
                            WHERE
                                linkname = 
        $area
                            LIMIT
                                1"
        ;
        $ergebnis_index=mysql_query($abfrage_index) or die(mysql_errno().": ".mysql_error());

        if (
        mysql_fetch_row($ergebnis_index) == 1)
        {
        $zeile_index=mysql_fetch_array($ergebnis_index);
        include_once(
        $zeile_index["url"]);
        }
          else
         {}
         } 
        Als fehler erscheint:
        1054: Unknown column 'News' in 'where clause'

        Verstehe auch warum, dann eine column News gibt es nicht, aber es gibt in der Tabellensäule "linkname" den Eintrag News (auch gross geschrieben).

        Er soll nun ja die Datenzeile auslesen, wo der linkname = $area ist.
        Wo habe ich da Bockmist gebaut?


        EDIT: Habe die ' ' Zeichen in der where Abfrage vergessen bei $area. Danke euch beiden für die Hilfe!

        Grüße,
        akrab
        Zuletzt geändert von akrab; 06.05.2006, 18:43.

        Kommentar

        Lädt...
        X