wert aus spalte als variable verwenden, nur wie?

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

  • wert aus spalte als variable verwenden, nur wie?

    Hallo Liebe Leute,

    ich hoffe Ihr könnt mir mal wieder helfen.... ich habe ein riesen Problem mit der Ausgabe von Variablen...
    mein erster shop soll ne multi-language funktion besitzen und dafür muss ich einige Variablen in der Datenbank abspeichern....
    was soweit ja kein problem ist, was ich jedoch nicht erreiche ist, daß die aus der datenbank stammenden Varibalen ihren Inhalt ausgeben.
    Stattdessen wird der Variablenname direkt als Text ausgegeben...

    kann mir jemand sagen, wo ich da etwas falsch mache ?

    PHP-Code:

    # Aufruf der Datei : test.php?cat=1&cat_type=1
    ###############################################################################
    ## Diese Werte der 3 folgenden Varibalen stehen sonst in einer sprachdatei und werden über include geladen (de.php)
    ## um das Beispiel zu vereinfach, habe ich das mal mit in diese datei eingefügt.
    $lang_nav[1001] = "Obst"
    $lang_nav[1002] = "Gemüse";
    $lang_nav[1003] = "Früchte";
    ################################################################################
     
    $hostip   "localhost";
     
    $benutzer "";
     
    $passwort "";                                                       
     
    $db       "shop";
    $link =  mysql_connect$hostip$benutzer$passwort  );
    mysql_select_db$db$link ) or die ( "Konnte $db nicht öffnen: ".mysql_error() );
    ###### Anfrage an DB um Kategorienamen zu ermitteln
    $sql_navi mysql_query("SELECT cat_name FROM categories WHERE cat='$cat' & cat_type='1'");
    $row_navi mysql_fetch_array($sql_navi);
    #echo $$row_navi[cat_name]; /* Dieser Ausgabeversuch bleibt bei der Anzeige leer, sollte jedoch "obst" als Text anzeigen*/
     
    echo "$"."$row_navi[cat_name]"/* so erscheint $lang_nav[1001] direkt als Textausgabe,statt dem Inhalt dieser Variable darzustellen
     
     # Browserausgabe sieht dann so aus : $lang_nav[1001], statt dem wert dieser Variablen
     
    ################################################################################
    Datenbank : shop 
     Tabellenstruktur für Tabelle `categories`

    CREATE TABLE `categories` (
      `cat` tinyint(4) NOT NULL default '0',
      `cat_name` text NOT NULL,
      `cat_id` mediumint(9) NOT NULL auto_increment,
      `cat_type` tinyint(4) NOT NULL default '0',
      PRIMARY KEY  (`cat_id`)
    ) TYPE=MyISAM AUTO_INCREMENT=1005 ;
    #
    # Daten für Tabelle `categories`
    #
    INSERT INTO `categories` VALUES (1, 'lang_nav[1001]', 1001, 1);
    INSERT INTO `categories` VALUES (1, 'lang_nav[1002]', 1002, 2);
    INSERT INTO `categories` VALUES (1, 'lang_nav[1003]', 1003, 2);
    INSERT INTO `categories` VALUES (2, 'lang_nav[1004]', 1004, 1);
    */ 
    Coder never die, they just GOSUB without RETURN

    Mein System

  • #2
    Code bitte umbrechen, damit man nicht mehr seitwärst scrollen muss!

    Schon mal so probiert?
    PHP-Code:
    echo $row_navi['cat_name']; 
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Moment,
      jetzt seh ich erst was du da verbringst
      Umständlicher gehts ja kaum noch - wozu verwendest du da ne DB dafür?

      Aber wenn du schon so vorgehen willst, dann machs wenigstens so:
      1. in cat_name in der DB speicherst du nicht lang_nav[1001] sondern nur 1001 usw.
      2. Zugreifen mit
      PHP-Code:
      echo $lang_nav[$row_navi['cat_name']]; 
      Deinen wirren Einsatz von DB, Arrays und variablen Variablen solltest du aber IMHO nochmal gründlich überdenken.
      Zuletzt geändert von Quetschi; 25.08.2005, 11:34.
      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
      Schön - etwas Geschichte kann ja nicht schaden.
      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

      Kommentar


      • #4
        Original geschrieben von Quetschi
        Code bitte umbrechen, damit man nicht mehr seitwärst scrollen muss!

        Schon mal so probiert?
        PHP-Code:
        echo $row_navi['cat_name']; 
        ja klar ! als allererstes.....da bleibt die ausgabe aber auch leer !
        Coder never die, they just GOSUB without RETURN

        Mein System

        Kommentar


        • #5
          Einmal Debugging für Anfänger, bitte sehr
          PHP-Code:
          error_reporting(E_ALL);
          $sql "SELECT cat_name FROM categories WHERE cat='$cat' & cat_type='1'";
          echo 
          'Abfrage: '.$sql.'<hr />';
          $sql_navi mysql_query($sql) or die(mysql_error());
          echo 
          'Ergebnisse: '.mysql_num_rows($sql_navi).'<hr />';
          $row_navi mysql_fetch_array($sql_navi);
          echo 
          '1. Datensatz:<pre>'.print_r($row_navitrue).'</pre>'
          Ausgabe?


          Und brich bitte deinen Code so um, dass man nicht nach rechts scrollen muss
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Original geschrieben von Quetschi
            Moment,
            jetzt seh ich erst was du da verbringst
            Umständlicher gehts ja kaum noch - wozu verwendest du da ne DB dafür?

            Aber wenn du schon so vorgehen willst, dann machs wenigstens so:
            1. in cat_name in der DB speicherst du nicht lang_nav[1001] sondern nur 1001 usw.
            2. Zugreifen mit
            PHP-Code:
            echo $lang_nav[$row_navi['cat_name']]; 
            Deinen wirren Einsatz von DB, Arrays und variablen Variablen solltest du aber IMHO nochmal gründlich überdenken.
            okay.... ich hab die variable in der DB auf ihre nummern reduziert..
            jetzt klappt es !!!!!

            und warum ich das so mache ?

            mir ist kein anderer bzw leichterer weg eingefallen, wie ich es schaffe, meine dynamische navigation mehrsprachig zu steuern..
            bei statischen texten is das ja kein problem....


            wie gesagt....erster anlauf in diese richtung !
            Coder never die, they just GOSUB without RETURN

            Mein System

            Kommentar


            • #7
              Ja die query... hab ich mir noch gar nicht angeschaut.

              @ways
              Für jemanden der seit November 2003 hier registriert ist und vermutlich sich seitdem an PHP versucht sind deine Ansätze - entschuldige bitte - stümperhaft. Irgendwie solltest du dich vielleicht nochmal ein wenig mit Grundlagen befassen und versuchen deine Ansätze einfacher zu strukturieren.

              Es ist IMHO unsinnig ne DB zu verwenden und die Texte für die Navi dann doch im Script in nem Array abzulegen und die DB sozusagen nur zum 'mappen' benutzen - die wären doch über die DB viel schöner zu verwalten.
              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
              Schön - etwas Geschichte kann ja nicht schaden.
              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

              Kommentar


              • #8
                und ignoriere nicht ständig die mehrfache aufforderung, verflixt noch mal deinen code gemäß regeln umzubrechen!

                entweder ist das vor deinem nächsten posting hier im thread passiert - oder er wandert auf den müll!
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X