Suche über 2 Tabellen

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

  • Suche über 2 Tabellen

    Hallo,
    dann wage ich es auch mal hier als PHP/SQL Neuling eine Frage zu stellen.
    Ich wollte eine Suche über 2 Tabellen realisieren, was mir aber leider nicht so ganz gelingen mag. Kann mir evtl. jemand sagen warum folgender Code nicht so will wie er soll?

    PHP-Code:
    $sucharray explode(' ',$suchen);

    for(
    $i=0$i<count($sucharray); $i++)
    {
        echo 
    $sucharray[$i]";
    }

    // a ist Tabelle antext, ar ist Tabelle artikel
    $query "SELECT a.antext, ar.ueber, ar.autor FROM antext a, artikel ar WHERE "

    for(
    $i=0$i<count($sucharray); $i++)
    {
        
    $query .= "(a.antext like '%".$sucharray[$i]."%' OR ar.autor like '%".$sucharray[$i]."%')";

        if(
    $i<count($sucharray)-1)
        {
            if (
    $op == "AND") {
                
    $query .= ' AND ';   // Verknüpfung der einzelnen Worte mit AND
            
    }
            if (
    $op == "OR") {
                
    $query .= ' OR ';   // Verknüpfung der einzelnen Worte mit ODER
            
    }
        }
    }

    $result mysql_query($query); 
    Gruß nomis

  • #2
    auf jeden fall solltest du noch die verbindung beider tabellen in die query packen.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Original geschrieben von Abraxax
      auf jeden fall solltest du noch die verbindung beider tabellen in die query packen.
      Erstmal danke für die schnelle Antwort.
      Aber, schön und gut, übergebe ich die Verbindung nicht mit "$query"?
      Ich meine dafür definier ich "$query" ja weiter oben.

      Kommentar


      • #4
        Original geschrieben von nomis
        Aber, schön und gut, übergebe ich die Verbindung nicht mit "$query"?
        schon klar. aber da steht ja eben nix....

        dort steht nur FROM antext a, artikel ar aber beim where sehe ich z.b. nichts von a.id=ar.id .
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Original geschrieben von Abraxax
          schon klar. aber da steht ja eben nix....

          dort steht nur FROM antext a, artikel ar aber beim where sehe ich z.b. nichts von a.id=ar.id .
          Hmm, ich würde es ja gerne mal testen, aber der Server will mich grade nicht so ganz (kann das leider nur online machen).
          D.h. das würde also so aussehen oder verstehen wir uns jetzt ganz falsch?
          PHP-Code:
          $query "SELECT a.antext, ar.ueber, ar.autor FROM antext a, artikel ar WHERE antext a, artikel ar"

          Kommentar


          • #6
            nein. denn was habe ich geschrieben?
            a.id=ar.id
            .... also muss das schon mal anders aussehen.


            poste mal deine tabellenstrukturen und sage mal, mit welcher spalte die tabs verbunden sind.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Original geschrieben von Abraxax
              poste mal deine tabellenstrukturen und sage mal, mit welcher spalte die tabs verbunden sind.
              Auch wenn ich mich jetzt lächerlich mache. So ganz genau krieg ich das jetzt nicht auf die Reihe was du genau brauchst.
              Die Tabellen sind wohl wenn ich das richtig deute über eine ID (Spalte 0) verbunden.

              Kommentar


              • #8
                Code:
                [x] du kennst den phpmadmin?
                [x] du hast schon einmal daten exportiert?
                [x] du hast auch gesehen, dass man eine tabellenstruktur exportieren kann?
                [ ] du hast es gefunden und postest in kürze die erforderlichen strukturen.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Code:
                  [x] ich habe es gefunden und poste die erforderlichen strukturen.

                  Code:
                  #
                  # Tabellenstruktur für Tabelle `artikel`
                  #
                  
                  CREATE TABLE artikel (
                    nr int(6) NOT NULL auto_increment,
                    kath varchar(30) NOT NULL default '',
                    ueber varchar(250) NOT NULL default '',
                    datum date NOT NULL default '0000-00-00',
                    uhrzeit varchar(30) NOT NULL default '',
                    autor varchar(30) NOT NULL default '',
                    geladen int(6) NOT NULL default '0',
                    email varchar(60) NOT NULL default '',
                    uebersetz varchar(60) NOT NULL default '',
                    setzemail varchar(80) NOT NULL default '',
                    online varchar(10) NOT NULL default '',
                    archiv varchar(10) NOT NULL default '',
                    PRIMARY KEY  (nr)
                  ) TYPE=MyISAM;
                  Code:
                  #
                  # Tabellenstruktur für Tabelle `antext`
                  #
                  
                  CREATE TABLE antext (
                    nr int(6) NOT NULL auto_increment,
                    artnr int(6) NOT NULL default '0',
                    antext text NOT NULL,
                    PRIMARY KEY  (nr)
                  ) TYPE=MyISAM;

                  Kommentar


                  • #10
                    Code:
                    [x] brav gemacht


                    so. ich frage mich jetzt nur, warum du den text aus der artikel-tabelle ausgegliedert hast. aus meiner sicht macht das bei deiner tabellenstruktur keinen sinn.

                    aber dennoch mal einen abfrage, wie die tabellen richtig verbunden werden sollten.

                    Code:
                    SELECT
                        *
                    
                    FORM
                        artikel A
                            INNER JOIN antext T ON (A.nr=T.artnr)
                            
                    WHERE
                        .......
                    ps. hoffe, dass das INNER JOIN richtig ist.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar

                    Lädt...
                    X