Wie geht Ausgabe mit ECHO nach JOIN?

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

  • Wie geht Ausgabe mit ECHO nach JOIN?

    Hallo,
    nach ca. 2-3 Stunden Suche in diversen Foren habe ich beschlossen um aktive Hilfe zu bitten.

    Habe, wie zu erwarten beim Topic, zwei Tabellen. "Jobs" & "Mitarbeiter". Erstere ist eine Stellenausschreibung Jobbeschreibung etc.. Unter anderem wird dort der Name eines Betreuers gelistet.

    Um Details, wie Emailadresse, tel.Nr. etc. herauszufinden benutze ich die Tabelle Mitarbeiter.

    Also ist naheliegend folgende Abfrage zu kreieren:
    PHP-Code:
    $SelectString=  'SELECT Jobs.text_deu AS Text, 
    Jobs.thema_deu AS Thema, 
    Jobs.art_deu AS Art, 
    Mitarbeiter.* 
    FROM `Jobs` JOIN `Mitarbeiter` 
    ON Jobs.betreuer_nachname = Mitarbeiter.Nachname 
    WHERE vergeben <1' 
    Klappt wurderbar, auch in MySql kommen alle Daten die ich haben will.
    Ich erhalte für alle Jobs wo vergeben != 1 ist Text, thema, Art und alle Werte der zum Betreuer aus der Tabelle Mitarbeiter.

    Insofern scheint mit der Abfrage alles ok zu sein, auch wenn der Stil vielleicht korrigiert werden mag.

    Das Problem ist nun die Ausgabe mit php.
    Ich benutze normalerweise immer die folgende Notation innerhalb einer while-schleife:
    PHP-Code:
    echo $job->Art
    echo 
    $job->Thema;
    echo 
    $job->Text
    Funktioniert wunderbar, da ich ja jeder Spalte mittels AS einen neuen Namen gebe (damit englische und deutsche Texte im php-script die gleichen Variablen benutzen können).
    Problem ist nun die Ausgabe der Mitarbeiterdaten. Die Notation wie im Select-String geht nicht.
    PHP-Code:
    echo $job->Mitarbeiter.Nachname
    Geht wegen des Punktes nicht. PHP ersetzt jeden Punkt in Variablen durch einen "_" - habe ich herausgefunden.

    Wie kann ich das Problem umgehen ohne auf die Namen der Spalten zu verzichten? Gibt es vielleicht ähnliche zu den folgenden, bereits ausprobierten Möglichkeiten:
    PHP-Code:
    echo $job->[Mitarbeiter][Nachname];
    echo 
    $job->[Mitarbeiter|Nachname];
    echo 
    $job->Mitarbeiter[Nachname]; 
    Ich will nciht jede der 10 Spalten zum Betreuer mit AS umbenennen. da muß es doch was besseres geben.

    Schönen Gruß und "Hallo ich bin der neue".

    karl.ranseier

  • #2
    Re: Wie geht Ausgabe mit ECHO nach JOIN?

    Folgendes sollte "funzen":
    PHP-Code:
    echo $job->{'Mitarbeiter.Nachname'}; 
    Alternativ könntest du auch mysql_fetch_array nehmen, dann musst du dich nicht mit Objekten und Eigenschaften rumschlagen - an einer Stelle, wo OOP um der OOP willen kaum einen Vorteil hat.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: Wie geht Ausgabe mit ECHO nach JOIN?

      Original geschrieben von wahsaga
      Folgendes sollte "funzen":
      PHP-Code:
      echo $job->{'Mitarbeiter.Nachname'}; 
      Das klappt leider nicht. Aber irgendwie kommt dann einfach nichts. Habe uach mal -> weggelassen, statt {} () [] verwendet, nix.
      Finde ich irgendwie unerklärlich.

      Im Gegensatz dazu war ich gerade mit dem array-test dabei.
      Hat auch funktioniert - und zwar wie folgt:

      PHP-Code:
      $SelectString=  'SELECT  Jobs.art_deu AS Art, Mitarbeiter.* 
      FROM `Jobs` JOIN `Mitarbeiter` 
      ON Jobs.betreuer_nachname = Mitarbeiter.Nachname 
      WHERE vergeben <1'
      ;
              
      $Ergebnis=mysql_query($SelectString);
              while(
      $job=mysql_fetch_array($Ergebnis))
              {
              echo 
      $job['Art'].'<br>';
              echo 
      $job['Titel'].'<br>';
              } 
      Wobei $job['Titel'] ein Wert aus der Tabelle Mitarbeiter ist. Offensichtlich fehlt die genaue Zuordnung zu den Tabellen, aber da ich zum Glück kein Problem mit doppelten Benennungen habe, ist das Problem damit für mich fürs erste erledigt.

      Kommentar

      Lädt...
      X