Ankündigung

Einklappen
Keine Ankündigung bisher.

ID gegen Namen ändern

Einklappen

Neue Werbung 2019

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

  • ID gegen Namen ändern

    Hallo zusammen,

    bitte entschuldigt vorweg, dass ich mit einem Problem komme, dass hier schon mehrfach behandelt wurde. Aber als totaler Anfänger habe ich es anhand der genannten Beispiele nicht hinbekommen, daher schildere ich Euch mein Problem mal konkret:

    Ich habe drei Tabellen aus einer Fahrzeugdatenbank, die ich miteinander verknüpft ausgeben möchte:
    Hersteller: tb_herst, mit herstid und herstname
    Fahrzeugtyp: tb_type, mit typeid, typename und weiteren Feldern
    Fahrzeugart: tb_art, mit artid und artname

    Nun möchte ich eine einfache Liste ausgeben, die ich wie folgt angelegt habe:

    <?php

    // Fahrzeugtypen abfragen

    $fahrzeugtyp = @mysql_query("
    SELECT artid, herstid, typename, typecap, typecapm, typeaxle FROM tb_type ORDER by typeaxle DESC, typecap DESC, typename LIMIT 20");

    if (!$fahrzeugtyp)
    {
    exit('
    Fehler bei der Abfrage der Fahrzeugtypen: ' . mysql_error() . '</br>');
    }
    // Fahrzeugtypen anzeigen
    while ($row = mysql_fetch_array($fahrzeugtyp)) {
    echo '<tr><td>' . $row['artid'];'</td>';
    echo '<td>' . $row['herstid'];'</td>';
    echo '<td>' . $row['typename'];'</td>';
    echo '<td>' . $row['typecap'];'</td>';
    echo '<td>' . $row['typecapm'];'</td>';
    echo '<td>' . $row['typeaxle'];'</td></tr>';

    }
    ?>

    Ab anstatt die artid und die herstid auszugeben, möchte ich dass diese bei der Ausgabe durch artname und herstname ersetzt werden. Wie gesagt, ich habe die verschiedenen hier im Forum genannten Beispiele durchprobiert, aber das hat gar nicht geklappt.

    Danke


  • #2
    Re: ID gegen Namen ändern

    Du müsstest deine Tabellen in der Abfrage verknüpfen:
    Code:
    SELECT
        t.artid,
        t.herstid,
        t.typename,
        t.typecap,
        t.typecapm,
        t.typeaxle,
        h.herstname,
        a.artname
    FROM
        tb_type AS t
    INNER JOIN
        tb_art AS a
    ON
        t.artid = a.artid
    INNER JOIN
        tb_herst AS h
    ON
        t.herstid = h.herstid
    ORDER BY
        t.typeaxle DESC,
        t.typecap DESC,
        t.typename
    LIMIT
        20

    Kommentar


    • #3
      Danke dafür, das hat super geklappt!!

      Eine kleine Ergänzung hätte ich aber gerne noch.

      // Fahrzeugtypen anzeigen
      while ($row = mysql_fetch_array($fahrzeugtyp)) {
      echo '<tr><td>' . $row['artid'];'</td>';
      echo '<td>' . $row['herstid'];'</td>';
      echo '<td>' . $row['typename'];'</td>';
      echo '<td>' . $row['typecap'];'</td>';
      echo '<td>' . $row['typecapm'];'</td>';
      echo '<td>' . $row['typeaxle'];'</td></tr>';
      Nach der Ausgabe von typename soll eine weitere Zelle eingefügt werden, die einen Emaillink nach folgendem Muster enthält:

      <a href="mailto:email@email.de?subject=Bitte senden Sie uns Datenblätter für herstname typename>Datenblatt anfordern</a>

      Da aber nicht für alle Fahrzeuge Datenblätter vorliegen, soll der Text/Link nur erscheinen wenn das Feld "Datenblatt" in tb_type auf "1" steht, bei 0 soll kein Link erscheinen.

      Ich habe schon viel probiert, aber auch hierzu reichen meine Fähigkeiten (noch) nicht aus.

      Danke.

      Kommentar


      • #4
        Was hast du alles so ausprobiert?

        Kommentar


        • #5
          Code:
          // Fahrzeugtypen anzeigen
          while ($row = mysql_fetch_array($fahrzeugtyp)) {
          echo '<tr><td>' . $row['artid'];'</td>';
          echo '<td>' . $row['herstid'];'</td>';
          echo '<td>' . $row['typename'];
          
          if($row[datenblatt]==1)
          echo'<a href=mailto:blablabla';
          
          
          echo '</td><td>' . $row['typecap'];'</td>';
          echo '<td>' . $row['typecapm'];'</td>';
          echo '<td>' . $row['typeaxle'];'</td></tr>';
          dann musst du halt in der abfrage noch ein t.datenblatt in den select-teil einbauen

          Kommentar


          • #6
            Danke für Eure Antworten. Habt mir sehr weitergeholfen!!!

            Kommentar


            • #7
              // Fahrzeugtypen anzeigen
              while ($row = mysql_fetch_array($fahrzeugtyp)) {
              echo '<tr><td>' . $row['artid'];'</td>';
              echo '<td>' . $row['herstid'];'</td>';
              echo '<td>' . $row['typename'];

              if($row[datenblatt]==1)
              echo'<a href=mailto:blablabla';


              echo '</td><td>' . $row['typecap'];'</td>';
              echo '<td>' . $row['typecapm'];'</td>';
              echo '<td>' . $row['typeaxle'];'</td></tr>';
              Ich habe da noch eine Frage zu. Hinter die Ausgabe von typecap und typecapm möchte ich noch die Einheiten mit ausgegeben haben ("to" und "m"). Bei '<td>m' funktioniert das, aber nicht beim Tag zum schließen der Zelle. Wie muss ich das dann einfügen?

              Kommentar


              • #8
                statt ; einen . setzen.

                Und lern Grundlagen.
                http://tut.php-q.net

                Kommentar

                Lädt...
                X