Relation von 2 Tabellen im Statement (Anfänger)

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

  • Relation von 2 Tabellen im Statement (Anfänger)

    Hallo!

    Ich habe 2 Tabellen in meiner Datenbank. Eine Tabelle mit Weinen und eine Tabelle mit Ländern. Nun möchte ich die jeweiligen Weine einem Land zuweisen.
    Folgende Tabellen habe ich erstellt.

    PHP-Code:
    CREATE TABLE `zw_weine` (
      `
    idsmallint(6NOT NULL auto_increment,
      `
    artikelnrvarchar(6NOT NULL default '0',
      `
    weinnamevarchar(100NOT NULL default '',
      `
    weingutvarchar(100) default NULL,
      `
    qualitaetvarchar(50) default NULL,
      `
    LIDtinyint(3NOT NULL default '0',
      `
    regionvarchar(100) default NULL,
      `
    klimavarchar(100) default NULL,
      `
    rebsortevarchar(150) default NULL,
      `
    alkoholvarchar(30) default NULL,
      `
    saeurevarchar(30) default NULL,
      `
    restzuckervarchar(30) default NULL,
      `
    servtempvarchar(30) default NULL,
      `
    preisstufetinyint(1) default NULL,
      `
    kurzbeschreibungtext,
      `
    neuvarchar(5) default NULL,
      `
    weinbildvarchar(50) default NULL,
      
    PRIMARY KEY  (`id`)
    TYPE=MyISAM AUTO_INCREMENT=13 ;

    CREATE TABLE `zw_land` (
      `
    idtinyint(4NOT NULL auto_increment,
      `
    laendervarchar(50NOT NULL default '',
      
    PRIMARY KEY  (`id`,`id`)
    TYPE=MyISAM AUTO_INCREMENT=
    Das SQL Statement am Beispiel der Funktion showWeine():

    PHP-Code:
    /**
     * FUNKTIONEN FÜR DEN ADMINBEREICH
     * Anzeigen der Weine
     */
    function showWein ()
    {
        
    /**
         * Absetzen des SQL Statemente
         */
         
    $sql "SELECT * FROM zw_weine, zw_land WHERE LID='laender.id'";
         echo 
    "$sql";
         
    $res mysql_query ("$sql") or die ("Die Tabelle wurde nicht gefunden");
         
    // Tabelle zur Darstellung der ausgelesenen Weine
         
    echo "<table width=\"100%\"  border=\"0\" cellpadding=\"2\" cellspacing=\"1\" bgcolor=\"#000000\">";
         echo 
    "<tr bgcolor=\"#CCCCCC\">";
         echo 
    "<td width=\"65\">Artikelnr.</td>";
         echo 
    "<td>Weinname</td>";
         echo 
    "<td>Land</td>";
         echo 
    "<td>Weingut</td>";
         echo 
    "<td width=\"80\" align=\"center\">Bearbeiten</td>";
         echo 
    "</tr>";
        
    /**
         * Auslesen Reihen
         */
         
    while ($row mysql_fetch_array($res)){
            
    /**
             * Ausgabe der Reihen
             */
             
    echo "<tr bgcolor=\"#FFFFFF\">";
             echo 
    "<td class=\"small\">$row[artikelnr]</td>";
             echo 
    "<td class=\"small\">$row[weinname]</td>";
             echo 
    "<td class=\"small\">$row[laender]</td>";
             echo 
    "<td class=\"small\">$row[weingut]</td>";
             echo 
    "<td class=\"small\" align=\"center\"><a href=\"modul.php?modul=admin_wein&action=show_weinprofil&id=$row[id]\">[auswahl]</a>&nbsp;</td>";
             echo 
    "</tr>";
             }
         echo 
    "</table>";
         }
    /**
     * Ende der Funktion zum Anzeigen der Weine
     */ 
    Ich bekomme die Kopfzeile der Tabelle angezeigt. Leider funzt die while SChleife irgendwie nicht.

    Wäre sehr dankbar für einen TIPP!

    Gruss Jens

  • #2
    "SELECT * FROM zw_weine, zw_land WHERE LID='laender.id'"
    Mhn, was ist leander.id? Bitte um Aufklärung!
    PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

    Kommentar


    • #3
      danke danke danke!

      Für den Zaunpfahl!!!

      Das muss natürlich zw_land.id sein!
      Aber manchmal steht man eben voll aufm Schlauch.

      Danke nochmals!

      Kommentar


      • #4
        Hi nochmal!

        Was kann daran ncht stimmen? Ich habe das nochmal nachgelesen. Das Statement wird doch so geschrieben:

        PHP-Code:
        $sql "SELECT * FROM zw_weine, zw_land WHERE id=$id AND LID=zw_land.id"
        Wenn ich einen Wein mit der übergebenen ID des Weines anzeigen lassen möchte.

        Hier das SQL echo:
        PHP-Code:
        Die Tabelle wurde nicht gefundenSELECT FROM zw_weinezw_land WHERE id=AND LID=zw_land.id 
        Grüsse Jens

        Kommentar


        • #5
          hallo,
          hab zwar keinen grosses plan,
          aber eine abfrage über zwei tabellen würd ich folgendermassen machen:
          PHP-Code:
              $abfrage="SELECT links_links.*, links_category.*  FROM links_links, links_category";

              
          $ergebnis mysql_query($abfrage);
              
          $num_rows mysql_num_rows($ergebnis);
              if (
          $num_rows ==0)
              {
              echo 
          "Kein Ergebnis";
              }
              else
              {
              while(
          $row mysql_fetch_object($ergebnis))
              {

                      echo 
          " ID: ".$row->link_category_id." -  ";
                      echo 
          " Name: ".$row->category_name."   ";
                      echo
          "<br><hr>";
                  }
              } 
          hoffe ich konnte helfen.
          gruss
          b.

          Kommentar


          • #6
            Habs gelöst!

            PHP-Code:
            $sql "SELECT * FROM zw_weine, zw_land WHERE zw_weine.id=$id AND LID=zw_land.id"
            funktioniert!!

            Kommentar

            Lädt...
            X