[PHP5] mysql_fetch_object

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

  • [PHP5] mysql_fetch_object

    Hallo,

    ich lese mit mysql_fetch_object Daten aus einer Datenbank aus und gebe sie folgendermaßen aus:

    echo $row->headline;

    In der Datenbank gibt es allerdings zwei Spalten: headline, headline2.
    Ich möchte je nachdem welche Sprache ausgewählt ist, die Daten entweder aus der Spalte headline oder headline2 ausgeben.

    Dafür habe ich folgendes gemacht:

    if ($sprache==de) $x="";
    if ($sprache==en) $x=2;

    Nun schreibe ich bei der Ausgabe der Daten:
    echo $row->headline$x;

    Das funktioniert aber nicht. Was mache ich falsch?

    Danke
    Zuletzt geändert von ffjj; 11.04.2008, 16:37.

  • #2
    PHP-Code:
    echo $row->headline.$x
    Bitte Beachten.
    Foren-Regeln
    Danke

    Kommentar


    • #3
      Das habe ich als erstes probiert, es klappt aber nicht.

      Kommentar


      • #4
        PHP-Code:
        if ($sprache==de$x='headline';
        if (
        $sprache==en$x='headline2';
        echo 
        $row->$x
        ?

        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          PHP-Code:
          echo $row->{headline.$x}; 

          Kommentar


          • #6
            PHP-Code:
            if ($sprache=="de") echo $row->headline;
            if (
            $sprache=="en") echo $row->headline2
            warum nicht so?

            Kommentar


            • #7
              Warum nicht gleich direkt im SQL Query die gewünschte Sprache selektieren?

              Kommentar


              • #8
                Danke für eure zahlreichen Antworten.

                echo $row->{headline.$x};
                Wäre die beste Lösung und genau so eine Lösung möchte ich.
                Leider meldet PHP einen Syntax-Fehler wegen der geschweiften Klammern.

                Warum nicht gleich direkt im SQL Query die gewünschte Sprache selektieren?
                Im SQL-Query wähle ich ja auch die richtigen Spalten (für die jeweilige Sprache) aus.
                Das Problem liegt bei der Ausgabe mit $row->

                if ($sprache=="de") echo $row->headline;
                if ($sprache=="en") echo $row->headline2;
                Wenn alles nicht hilft, muss ich ja diese Lösung nehmen. Allerding genau das möchte ich vermeiden, denn "headline" ist hier nur eine Beispiel. Im eigentlichen Code gibt es viel mehr Variablen, die dann alle doppelt geschrieben werden müssen (einmal für Deutsch und einmal für Englisch).

                Im Moment denke ich, dass
                Code:
                echo $row->{headline.$x};
                die beste Lösung ist, PHP meldet aber einen Syntax-Fehler wegen der geschweiften Klammern!
                Eine Idee??

                Kommentar


                • #9
                  Du solltest der Spalte im Query einen Namen geben, der dann immer eindeutig ist, egal in welcher Sprache. Das ließe sich beispielsweise über ein Alias machen:

                  PHP-Code:
                  SELECT spalte AS meinname FROM tabelle ... 
                  [FONT="Helvetica"]twitter.com/unset[/FONT]

                  Shitstorm Podcast – Wöchentliches Auskotzen

                  Kommentar


                  • #10
                    mit mysql_fetch_assoc() würdest du dir viel leichter tun, dann
                    musst du nicht mit geschweiften klammern rumhantieren

                    aber es wäre doch echt leichter die lokalisierung schon im select zu realisieren.

                    PHP-Code:
                    if($lang == "en"){
                       
                    $query "SELECT headline1 as headline FROM ...";
                    } else {
                       
                    $query "SELECT headline2 as headline FROM ...";
                    }
                    while(
                    $row mysql_fech_assoc($query)){
                       echo 
                    $row["headline"];

                    Kommentar


                    • #11
                      Original geschrieben von BugBite

                      PHP-Code:
                         echo $row["headline"]; 
                      Dann aber auch das Element richtig ansprechen ...

                      PHP-Code:
                         echo $row['headline']; 
                      [FONT="Helvetica"]twitter.com/unset[/FONT]

                      Shitstorm Podcast – Wöchentliches Auskotzen

                      Kommentar


                      • #12
                        Du solltest der Spalte im Query einen Namen geben, der dann immer eindeutig ist, egal in welcher Sprache. Das ließe sich beispielsweise über ein Alias machen:

                        PHP:
                        SELECT spalte AS meinname FROM tabelle ...
                        Danke @unset,
                        ich glaube, ich habe jetzt verstanden, wie ich das Problem lösen soll.
                        Ich muss das Ganze noch durchtesten, es scheint aber zu funktionieren.

                        Besten Dank erst mal.

                        Kommentar


                        • #13
                          Original geschrieben von unset
                          Dann aber auch das Element richtig ansprechen ...
                          Richtig ist beides. Aber schöner ist es mit Single Quotes.

                          Kommentar


                          • #14
                            Wow, bis ich auf die Antwort von @unset geantwortet habe, sind ja hier zwei weitere Lösungsvorschläge erschienen.

                            Ich bin gerade am Testen, und melde mich so bald ich mehr weiss.

                            Das ist ja ein super startes Forum. 1000 Dank an euch allen.

                            Kommentar

                            Lädt...
                            X