suchformular für mysql db

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

  • suchformular für mysql db

    hi ihrs,

    nachdem ich 100e von foren, tutorials ect durchgelesen hab und genauso so viel verstanden hab als wär es polnisch rückwärts, versuch ich doch mal mein glück in diesem forum hier. ja, ich weiß das dieses thema schonmal vorkam.
    aber versteht mich, bin kleines doofes vieh das zwar programmiererin wird, aber dennoch kein plan hab wo ich bei php anfangen muss.

    also:
    ich hab hier eine mysql-db mit lauter server-daten, das ganze soll in einer web-anwendung wiedergegeben werden. So, das wiedergeben ist ja so kein problem aber es soll noch eine Suchfunktion geben mit der man direkt auf bestimmte server-daten zugreifen kann.

    das formular design ist auch schon fertig, wurde in html gemacht (sinnvoll?)

    naja, jedenfalls fehlt mir irgendwie der ansatz.

    also ich muss variablen verteilen für die einzelnen felder.. die dann irgendwie mit den db-einträgen vergleichen. ok.

    aber hä?

    also wenn mir einer mal stichpunktartig schreiben kann wie ich da genau vorgehen muss wäre ich dankbar.

    grüße luci
    Realität ist da, wo der Pizzaman herkommt.

    Drum tanz das Brot wenn du am Boden bist, keine Ahnung warum, denn es bleibt sowieso alles wie es ist!

  • #2
    du brauchst für jedes feld in der DB, das du durchsuchen willst ein eingabe- oder auswahlfeld im suchformular.

    die werte erhält dein php-script. der stellt das query zusammen
    Code:
    "[...]field1 LIKE '%$field1%', field2 LIKE '%$field2%'[...]" usw...
    nun wird das query auf die DB losgelassen und das ergebnis wieder dargestellt...

    wenn du das formular nicht mit HTML machen willst, mit was denn sonst?
    Apache 1.3.27
    PHP 4.2.1
    MySQL 2.5.1
    SuSE Linux 8.1

    Kommentar


    • #3
      Du willst also eine Volltextsuche in deiner ganzen Tabelle, wenn ich dich richtig verstehe.

      Hier die rudimentäre SELECT-Anweisung:
      PHP-Code:
      SELECT FROM tabellenname WHERE spalte1 LIKE '%suchbegriff%' OR spalte2 LIKE '%suchbegriff%' OR ... ORDER BY irgendeine_spalte ASC 
      - dann die Anfrage an die DB senden
      - danach mit mysql_num_rows() die Anzahl der Treffer abfragen
      - und mit einer for-Schleife in eine Tabelle ausgeben lassen.

      - als letztes *freu* weil es klapt oder *heul* weil irgendwo ein Fehler ist
      it's not a bug,
      it's a feature!

      Kommentar


      • #4
        *kopfkratz*

        ähm
        die verbindung von html zur db krieg ich mit der php connection anweisung, gell?
        müssen dann die formularfelder genauso heißen wie die variablen in php-script?...

        un die or's statt ands sind dafür das man beim formular nich jedes feld ausgefüllt haben muss, richtig?

        oh man, ich hätte doch friseuse werden sollen...
        Realität ist da, wo der Pizzaman herkommt.

        Drum tanz das Brot wenn du am Boden bist, keine Ahnung warum, denn es bleibt sowieso alles wie es ist!

        Kommentar


        • #5
          1. mysql_connect (von html gibts natürlich keine verbindung.. des ist php)

          2. Variabeln heissen so wie formular namen

          2. or und ands sind für das da.. genau...
          _____________
          Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
          [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

          Kommentar


          • #6
            Verbindung zum Server aufnehmen:
            PHP-Code:
             $con=  mysql_connect('server','username','passwort') or die(mysql_error()); 
            DB auswählen:
            PHP-Code:
            mysql_select_db("dbname",$con) or die(mysql_error()); 
            Das die Namen der Formularfelder und Variablen gleich sein müssen stimmt.

            Die OR's sind nur dazu da, dass der Suchbegriff nicht in jeder Spalte sein muss, was sie nämlich sein müssten, wenn du AND nimmst.

            Friseuse hätteste nicht werden sollen, es gibt einfach nicht mehr genug Manta's in Deutschland!

            PS: Was bedeutet "FIAE mit FST"?

            EDIT:
            Ich bin heute früh noch etwas langsam mit dem Schreiben habbich grad gemerkt!


            @Secco
            Dein Beruf: Taschenrechner??
            Zuletzt geändert von XGremliN; 23.10.2003, 09:11.
            it's not a bug,
            it's a feature!

            Kommentar


            • #7
              aba, wenn ich "and" nehme dann müssen doch im formular alle felder nen wert haben


              un nochmal zum html formular, kommt dann auf diese seite der php code?
              weil da gibbet dann ja auch ne schaltfläche mit abschicken... irgendwie mussen ja die werte der select-anweisung übergeben werden

              ich glaub ich denke zu kompliziert


              fiae = fachinformatikerin in der anwendungsentwicklung
              fst= fachberater softwaretechniken

              hört sich doll an, aba bin ja auch erst in der ausbildung
              Realität ist da, wo der Pizzaman herkommt.

              Drum tanz das Brot wenn du am Boden bist, keine Ahnung warum, denn es bleibt sowieso alles wie es ist!

              Kommentar


              • #8
                Zum html-Formular:
                Da muss nicht nur der php-Code rein, sondern die Datei muss auch noch die Endung.php haben.

                Das AND steht doch in der SELECT-Anweisung, d.h. dass dann nur die Datensätze ausgegeben werden, in denen jede Zelle den Suchbegriff enthält. Das ist ja nicht das, was du wolltest, wenn ich das richtig verstanden habe.

                Wenn du noch Problem haben solltest, schick mir doch 'ne Mail, mit den entsprechenden Dateien und ich versuche das mal zusammenzubasteln und mit genügend Kommentaren zu versehen.
                it's not a bug,
                it's a feature!

                Kommentar


                • #9
                  1. And = Genau.. es muss was enthalten ->Tipp mach ne schleife und checke ob felder ausgefüllt sind

                  2. PHP-Code.. auf dieser oder der übergebenen Seite <form action = "" oder "dieseite.php">

                  Such doch mal im forum das thema wurde schon öfters behandelt.

                  Dein Beruf: Taschenrechner??
                  Why..? Nicht ganz aber arbeite mit ABACUS Ist so ne art mini SAP für uns schweizer.. und es ist noch schlechter als SAP
                  EDIT:
                  To late...
                  Zuletzt geändert von Seccho; 23.10.2003, 10:11.
                  _____________
                  Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
                  [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

                  Kommentar


                  • #10
                    Ich wäre mit dem Schreiben von vordefinierten Or vorsichtig:

                    Denn was ist denn bei diesen Fällen:
                    1.) Ein User will zwingend das 2 Suchworte vorkommen?
                    2.) Ein User will das ein Suchwort nicht vorkommen soll?

                    Da kommt man um eine dynamische SQL Anweisung nicht drum rum.
                    Erster Fall braucht ein And
                    Zweiter Fall ein Not (so sollte es heissen)

                    Das Or heisst nur sobald ein Argument oder mehrere "wahr" sind zeig an.
                    Und das ist keine Garantie das 2 Suchbegriffe zutreffen.

                    Man könnte es lösen indem der User ins Textfeld "and" oder "or" eingibt und danach den String entsprechend aufteilen und das Sql Statement erzeugen.

                    Zum Stichwort "Ich hab ein HTML-Formular bereits erstellt"
                    Wie willst du es machen?
                    Ich würde vorschlagen du schreibst das als Funktion in einer anderen PHP-File speziell für diese Zwecke. Und includest diese dann ganz einfach.

                    Dann hast einen schönen Überblick ohne HTML geraffel und zweitens wenn igrendwann mal was schief läuft weisst du sofort wo die Form steht nämlich in der Formfunction PHP File.
                    [color=blue]MfG Payne_of_Death[/color]

                    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                    [color=red]Merke:[/color]
                    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                    Murphy`s Importanst LAWS
                    Jede Lösung bringt nur neue Probleme
                    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                    Kommentar


                    • #11
                      Original geschrieben von Payne_of_Death
                      Ich wäre mit dem Schreiben von vordefinierten Or vorsichtig:

                      Denn was ist denn bei diesen Fällen:
                      1.) Ein User will zwingend das 2 Suchworte vorkommen?
                      2.) Ein User will das ein Suchwort nicht vorkommen soll?

                      Da kommt man um eine dynamische SQL Anweisung nicht drum rum.
                      Erster Fall braucht ein And
                      Zweiter Fall ein Not (so sollte es heissen)

                      Das Or heisst nur sobald ein Argument oder mehrere "wahr" sind zeig an.
                      Und das ist keine Garantie das 2 Suchbegriffe zutreffen.

                      ebens.

                      das mit der and/ auswahl ist keine schlechte idee.

                      *seufz* aber irgendwie fehlt mir das verständnis wie die dinge ablaufen, ab den browser. das steht noch nichmal in den dollen büchern die ich hier rumfliegen hab. oder ich find es nicht, kann auch sein.

                      aber muss mich bedanken bei euch, bei den meisten foren wurde man abgewürgt wenn man solch probleme hatte. oder es wurd einfach gesagt les dir die un die seiten durch..
                      hilft einem auch nich wirklich
                      Realität ist da, wo der Pizzaman herkommt.

                      Drum tanz das Brot wenn du am Boden bist, keine Ahnung warum, denn es bleibt sowieso alles wie es ist!

                      Kommentar


                      • #12
                        Dir fällt das Verständnis wie das abläuft.

                        Zunächst einmal PHP ist ein Interpreter d.h. jede Zeile die du programmierst wird Zeile für Zeile in Maschinencode umgewandelt.

                        PHP ist eine Skriptsprache die serverbasierend entsprechend der Anfrage von Clients abgearbeitet wird.

                        HTML ist nur deine grafische Schablone die eingebunden wird um Sachverhalt strukturiert z.B. in Tabellen versch. Schriftarten usw. Darstellen zu können.

                        Um jetzt z.B. ein Adressenliste welche in deiner Mysql DB liegt schön ausgeben zukönnen. Wird mittels einer Schleife Datensatz für Datensatz umschlossen von HTML-Tags ausgegeben. Für das bsp. Tabelle
                        würde <table > ausserhalb am Anfang vor der Schleife stehen
                        und <tr > <td > innerhalb. so würde das aussehen:
                        <tr ><td >echo $name</td ></tr >
                        und wenn die Schleife zu Ende ist kommt noch
                        </table >

                        Soweit verstanden?

                        $name kommt aus der DB......

                        Zunächst einmal schlag ich vor du versuchst es mit der while(); Schleife ist einfacher anstatt der For();.

                        Als Tutorial schlage ich das von Schattenbaum vor. Da wird das auf einfache Weise Anfänger freundlich erklärt.

                        Such einfach nach Schattenbaum Tutorial bei

                        Ich hoffe ich konnte es einigermaßen verständlich erklären.......
                        [color=blue]MfG Payne_of_Death[/color]

                        [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                        [color=red]Merke:[/color]
                        [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                        Murphy`s Importanst LAWS
                        Jede Lösung bringt nur neue Probleme
                        Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                        In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                        Kommentar


                        • #13
                          jupp, allet kapiert.
                          hab zu kompliziert und verstrickt gedacht.
                          nu muss ich noch rausfinden wie man die werte von den auswähl-listen im html-formular bekommt, dann kann ich loslegen.

                          im übrigen weiß ich wie for schleifen funktionieren, programmieren kann ich.
                          weiß auch wie sql funzt und wie php funzt weiß ich auch.
                          hab nur probs in verbindung mit html, also nich ganz doof


                          glaub für euch is das nervenaufreibender als für mich

                          sorry but

                          Realität ist da, wo der Pizzaman herkommt.

                          Drum tanz das Brot wenn du am Boden bist, keine Ahnung warum, denn es bleibt sowieso alles wie es ist!

                          Kommentar


                          • #14
                            Meinst du mit auswähl-listen dropdown-boxen?
                            Wenn ja gehts so:
                            PHP-Code:
                            <select size='1' name='suchliste'>
                                <
                            option value='eintrag1'>eintrag1</option>
                                <
                            option value='eintrag2'>eintrag2</option>
                                <
                            option value='eintrag3'>eintrag3</option>
                                <
                            option value='eintrag4'>eintrag4</option>
                                <
                            option value='eintrag5'>eintrag5</option>
                            </
                            select
                            Und noch die SQL-Abfrage dazu
                            PHP-Code:
                            $sqlab "SELECT * FROM tabelle WHERE ".$_POST['suchliste']." LIKE '%".$_POST['suchbegriff']."%' ORDER BY spalte ASC"
                            Hoffe das hilft Dir.
                            it's not a bug,
                            it's a feature!

                            Kommentar


                            • #15
                              Ich glaub XGremliN versteht dich net

                              nu muss ich noch rausfinden wie man die werte von den auswähl-listen im html-formular bekommt, dann kann ich loslegen.
                              Wenn du von dem Beispiel von ihm ausgehst siehst du im select Tag, was das nennt sich name=Suchliste
                              Wenn das im Formular mit method=post geschickt wird wirst du das was du ausgewählt hast wieder erkennen wenn du das machst:
                              PHP-Code:
                              echo $_POST['Suchliste']; 
                              Der Value Tag gibt wie der Name schon sagt den Wert und damit den Inhalt der Variable an.
                              [color=blue]MfG Payne_of_Death[/color]

                              [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                              [color=red]Merke:[/color]
                              [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                              Murphy`s Importanst LAWS
                              Jede Lösung bringt nur neue Probleme
                              Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                              In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                              Kommentar

                              Lädt...
                              X