+ Antworten
Ergebnis 1 bis 11 von 11

Thema: [php mysql] verschiedene sprachen auslesen

  1. #1
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631

    [php mysql] verschiedene sprachen auslesen

    wie kann ich verschiedene sprachen aus einer tabelle auslesen?
    die sprache wird als var mitgeliefert in form: page.php?lang=de&page=kontakt
    ich möchte, dass je nach 'lang' die jeweilige spalte ausgegeben wird.
    computer tun nur das was man ihnen sagt, meistens

  2. #2
    TP-Moderator Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Avatar von Cybergreek
    Registriert seit
    Nov 2005
    Ort
    Köln
    Beiträge
    1.608
    Du nimmst Dein $_GET["lang"] und baust abhängig davon Deine mySQL-Abfrage auf.

    Also sowas:
    PHP-Code:
    if ($_GET["lang"]=="de")
    {
     
    $abfrage "SELECT spalte_mit_Sprache_de FROM tabelle";
    }
    elseif (
    $_GET["lang"]=="en")
    {
     
    $abfrage "SELECT spalte_mit_Sprache_en FROM tabelle";
    }
    usw.. 
    Grüße vom Griechen,
    Cybergreek!

    everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht

  3. #3
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    und für alle nicht definierten

    else
    {
    $abfrage = "SELECT spalte_mit_Sprache_en FROM tabelle";
    }

    danke. eigentlich logisch.
    computer tun nur das was man ihnen sagt, meistens

  4. #4
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    mal zum aufwärmen, ich habe vor das hier weiter so durchzuziehen:
    tab 1:
    id | sprache
    1 | deutsch
    2 | englisch

    tab 2:
    id | sprach_id | text_id | text
    1 | 1 | 1| Hallo
    2 | 2 | 1| Hello

    dh alle texte untereinander, was haltet ihr davon?
    computer tun nur das was man ihnen sagt, meistens

  5. #5
    DSB
    DSB ist offline
    TP-Veteran DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137
    Da hier immer eine 1:1-Beziehung besteht (zu jeder Text-Id muss es einen entsprechenden Datensatz in der jeweiligen Sprache geben), sehe ich hier nicht die Notwendigkeit einer Normalisierung. Im Gegenteil: die Verknüpfung mittels JOINs macht die Ausgabe eher langsamer. Und da wahrscheinlich auf jeder Seite sprachspezifische Ausgaben gemacht werden sollen, halte ich die Performance hier für das wichtigere Argument.

    Deshalb würde ich die Tabelle so aufbauen:
    id | text_ID | en | de | fr | ....

    Damit sparst Du Dir dann Verknüpfungen mittels JOIN und brauchst nur die sprachspezifische Spalte von mySQL abholen.

    Code:
    SELECT $sprache FROM `texte`
    Eventuell koennte man noch darüber nachdenken die Sprachtabelle in die unterschiedlichen Bereiche der Webseite einzuteilen, um die erzeugte Last am MySQL-Server weiter einzuschränken, indem man nur die Werte für die Kombination aus Sprache und Bereich abholt.

    Um eine neue Sprache anzulegen, muss man dann in der Tabelle lediglich händisch eine weitere Spalte für die neue Sprache anlegen.
    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

  6. #6
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    also doch die erste variante?
    computer tun nur das was man ihnen sagt, meistens

  7. #7
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    ist ne weile her aber ein prob habe ich noch,
    id | de | en | es
    1 | textde1 | texten1 | textes1
    2 | textde2 | texten2 | leer
    3 | textde3 | leer | leer
    4 | textde4 | texten4 | textes4

    deutsch komplett, aber zb für es ist nur 1 und 4 vorhanden, also wenn gefühlt dann zeigen sonst en, wenn auch en leer dann de
    dann müsste sowas rauskommen:

    1 textes1
    2 texten2
    3 textde3
    4 textes4

    hat da jemand nen tipp?
    computer tun nur das was man ihnen sagt, meistens

  8. #8
    TP-Moderator Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Avatar von Cybergreek
    Registriert seit
    Nov 2005
    Ort
    Köln
    Beiträge
    1.608
    Du brauchst dann sowas in der Art:
    Code:
    SELECT
      CASE 
        WHEN es IS NOT NULL THEN es
        ELSE CASE 
              WHEN en IS NOT NULL THEN en
              ELSE de
              END
      END
    FROM tabelle
    PS: "wenn gefühlt dann" ist ein schönes Kriterium
    Grüße vom Griechen,
    Cybergreek!

    everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht

  9. #9
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    das ist das wetter, ich fülle mich auch so

    super, hatte schon was in der richtung gesucht, funzt aber nicht.
    PHP-Code:
    $aktsprache $_GET['lang'];
                    
    $prodnavsub "
                        SELECT 
                            CASE 
                                WHEN $aktsprache IS NOT NULL THEN $aktsprache
                                ELSE CASE 
                                    WHEN en IS NOT NULL THEN en
                                    ELSE de
                                END
                            END
                        FROM 
                            $t_lin
                        WHERE
                            NOT $t_lin.lin_rei_fol='0'
                        GROUP BY 
                            $t_lin.lin_id
                        ORDER BY 
                            $t_lin.lin_rei_fol
                    "
    ;
    echo 
    $rowprodsub[$aktsprache]; 
    computer tun nur das was man ihnen sagt, meistens

  10. #10
    TP-Moderator Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Avatar von Cybergreek
    Registriert seit
    Nov 2005
    Ort
    Köln
    Beiträge
    1.608
    Zitat Zitat von jayjay Beitrag anzeigen
    ...funzt aber nicht.
    Wie äußert sich denn dieses nicht-funzen?
    Grüße vom Griechen,
    Cybergreek!

    everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht

  11. #11
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    kam kein ergebnis
    hab jetzt folgendes gemacht:
    PHP-Code:
    if (($rowprodsub[$aktsprache]) == NULL) {
        
    $aktsprachen $rowprodsub['en'];
        if (
    $rowprodsub['en'] == NULL) {
            
    $aktsprachen $rowprodsub['de'];
        }
    }
    else {
        
    $aktsprachen $rowprodsub[$aktsprache];

    scheint zu laufen
    computer tun nur das was man ihnen sagt, meistens

+ Antworten

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51